Docs / nablatensor-quant / com.nablatensor.quant

final class

CurveBootstrap

Sequential single-curve bootstrap from cash deposits, FRAs and annual par swaps, plus the analytic Jacobian d(zeroRate_i)/d(quote_j).

Each instrument introduces exactly one new pillar (its maturity), solved in closed form:

  • deposit: P(0,T) = 1 / (1 + r T)
  • FRA [t1,t2]: P(0,t2) = P(0,t1) / (1 + r (t2 - t1))
  • par swap: P(0,T) = (1 - r * annuity_{<T}) / (1 + r * tau)
and the Jacobian is the exact derivative of that recursion, chained through the earlier discount factors (lower triangular). Deposits and FRAs sit at the short end; par swaps must land on consecutive integer-year pillars so every fixed-leg payment coincides with a pillar (no interpolated payment DFs). Multi-curve (OIS discounting + tenor basis) is Phase 2.

Methods

static Builder builder()
static CurveBootstrap fromAnnualParSwaps(double[] parRates)

Convenience: annual par swaps for maturities 1..n years.

YieldCurve curve()
double[][] zeroRateJacobian()

J[i][j] = d zeroRate_i / d quote_j; lower triangular in instrument order.

double[] pillars()