Class MultiCurveBootstrap

java.lang.Object
com.quantfinlib.rates.MultiCurveBootstrap

public final class MultiCurveBootstrap extends Object
Multi-curve bootstrap: an OIS discount curve fitted to its own instruments, then projection curves (3M, 6M, ...) fitted with the OIS curve held fixed for discounting (Ametrano and Bianchetti 2013, SSRN 2219548, sections 3-4).

One pillar per instrument, at its CurveInstrument.pillarDate(); pillar dates must be distinct and after the valuation date. The unknowns are y_i = -ln P(t_i). The solve has two stages:

  1. Pillar by pillar: for instrument k, a one-dimensional Newton iteration on y_k with the earlier pillars fixed and the curve extrapolated past pillar k. Exact for CurveInterpolation.LOG_LINEAR_DISCOUNT, whose interpolation is local.
  2. A global Newton solve on all pillars together (finite-difference Jacobian, Gaussian elimination with partial pivoting), needed for CurveInterpolation.MONOTONE_CONVEX, whose node forwards couple neighbouring intervals.

The result reprices every input instrument: |implied - quote| is at most TOLERANCE, else the bootstrap throws.