Docs / nablatensor-quant / com.nablatensor.quant

record

CurveSet

A post-LIBOR curve stack: one OIS discount curve plus one or more tenor-indexed forecast curves. Cash flows are always discounted on discount(); floating-leg forwards come off the forecast curve of the relevant tenor, so a fixed-for-float swap is only at par when the two curves differ — that gap is the tenor basis.

Produced by MultiCurveBootstrap, which also returns the full d(zero rate) / d(quote) Jacobian across both curves (a forecast zero rate depends on the OIS quotes through the discount factors in its par-swap equation).

This is the stylised annual construction textbooks use to introduce OIS discounting: fixed and floating legs share an annual grid, so a swap of maturity N adds exactly one forecast pillar. Sub-annual float frequencies and interpolation inside the solve are a later refinement.

Record components

discount
YieldCurve
forecast
Map<String, YieldCurve>

Methods

YieldCurve forecast(String tenor)
double df(double t)

Discount factor P_d(0, t) off the OIS curve.

double forwardRate(String tenor, double t1, double t2)

Simple-compounded forward (P_fc(t1)/P_fc(t2) - 1) / (t2 - t1) off a forecast curve.

double annuity(int maturityYears)

Annual fixed-leg annuity sum_{i=1}^{N} P_d(i).

double parSwapRate(String tenor, int maturityYears)

Par rate of the stylised annual multi-curve swap of maturity N: sum_i (P_fc(i-1)/P_fc(i) - 1) P_d(i) / sum_i P_d(i).

java.util.Set<String> tenors()

The tenor labels present, for iteration.

String toString()