Class InterpolatingCPICapFloorEngine
- Namespace
- NanoQL.Experimental
- Assembly
- NanoQL.dll
Prices a CPI cap or floor off a CPI cap and floor price surface: QuantLib's InterpolatingCPICapFloorEngine.
[Experimental("NQL0001")]
public static class InterpolatingCPICapFloorEngine
- Inheritance
-
InterpolatingCPICapFloorEngine
- Inherited Members
Remarks
The surface's time axis is its quoted instruments' maturities, so the instrument's payment date moves back by the
difference between its observation lag and the surface's, which must be non-negative. A flat observation reads the
surface at the start of the effective maturity's inflation period, where the fixing can't change; a linear one
interpolates between that period's start and the next period's by days. The value is the surface's price, on the
surface's nominal, as QuantLib's. The lag difference of periods in units QuantLib's period arithmetic can't subtract,
years from weeks for one, is refused, QuantLib's own refusal (its \TODO).
Methods
Calculate(CPICapFloor, EvaluationContext, CPICapFloorTermPriceSurface)
Prices a CPI cap or floor.
public static InstrumentResults Calculate(CPICapFloor capFloor, EvaluationContext context, CPICapFloorTermPriceSurface priceSurface)
Parameters
capFloorCPICapFloorThe instrument.
contextEvaluationContextThe evaluation context.
priceSurfaceCPICapFloorTermPriceSurfaceThe price surface.
Returns
- InstrumentResults
The results: the expired results when the instrument has expired.
Exceptions
- ArgumentNullException
An argument is null.
- ArgumentException
The two observation lags' units can't be subtracted, with QuantLib's text.
- NanoQLException
The lag difference is negative, with QuantLib's text, or the surface can't price.