Class MultiCurveBootstrap
java.lang.Object
com.quantfinlib.rates.MultiCurveBootstrap
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:
- Pillar by pillar: for instrument k, a one-dimensional Newton
iteration on
y_kwith the earlier pillars fixed and the curve extrapolated past pillar k. Exact forCurveInterpolation.LOG_LINEAR_DISCOUNT, whose interpolation is local. - 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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doubleMaximum absolute repricing error accepted, in rate units. -
Method Summary
Modifier and TypeMethodDescriptionstatic DiscountCurvebootstrap(LocalDate valuationDate, List<CurveInstrument> instruments, CurveInterpolation interpolation) A self-discounting curve (OIS: deposits on the overnight rate and OIS swaps).static DiscountCurvebootstrapProjection(LocalDate valuationDate, List<CurveInstrument> instruments, CurveInterpolation interpolation, DiscountCurve discount) A projection curve, discounting on the fixeddiscountcurve.
-
Field Details
-
TOLERANCE
public static final double TOLERANCEMaximum absolute repricing error accepted, in rate units.- See Also:
-
-
Method Details
-
bootstrap
public static DiscountCurve bootstrap(LocalDate valuationDate, List<CurveInstrument> instruments, CurveInterpolation interpolation) A self-discounting curve (OIS: deposits on the overnight rate and OIS swaps). Every instrument is evaluated asimpliedQuote(curve, curve). -
bootstrapProjection
public static DiscountCurve bootstrapProjection(LocalDate valuationDate, List<CurveInstrument> instruments, CurveInterpolation interpolation, DiscountCurve discount) A projection curve, discounting on the fixeddiscountcurve.OisSwapis rejected: it does not depend on the projection curve.
-