Table of Contents

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

capFloor CPICapFloor

The instrument.

context EvaluationContext

The evaluation context.

priceSurface CPICapFloorTermPriceSurface

The 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.