Table of Contents

Class StrippedYoYOptionlets

Namespace
NanoQL.Experimental
Assembly
NanoQL.dll

Year-on-year optionlet volatilities stripped along each strike: a volatility curve per strike, what QuantLib's YoYOptionletStripper holds after its initialize.

[Experimental("NQL0001")]
public sealed class StrippedYoYOptionlets
Inheritance
StrippedYoYOptionlets
Inherited Members

Remarks

Slice(Date) is QuantLib's slice, each curve read at the date through its own observation lag; Slice(double) reads each curve at a time on its own clock, with no lag, which KInterpolatedYoYOptionletVolatilitySurface<TInterpolator> reads.

Constructors

StrippedYoYOptionlets(IEnumerable<double>, IEnumerable<YoYOptionletVolatilitySurface>)

Initializes a new instance of the StrippedYoYOptionlets class.

public StrippedYoYOptionlets(IEnumerable<double> strikes, IEnumerable<YoYOptionletVolatilitySurface> curves)

Parameters

strikes IEnumerable<double>

The strikes, increasing.

curves IEnumerable<YoYOptionletVolatilitySurface>

The volatility curve stripped at each strike, one per strike.

Exceptions

ArgumentNullException

An argument or a curve is null.

ArgumentException

The curves aren't one per strike, or there is no strike.

Properties

Curves

Gets the volatility curve stripped at each strike, one per strike.

public ImmutableArray<YoYOptionletVolatilitySurface> Curves { get; }

Property Value

ImmutableArray<YoYOptionletVolatilitySurface>

MaxStrike

Gets the highest strike.

public double MaxStrike { get; }

Property Value

double

MinStrike

Gets the lowest strike.

public double MinStrike { get; }

Property Value

double

Strikes

Gets the strikes.

public ImmutableArray<double> Strikes { get; }

Property Value

ImmutableArray<double>

Methods

Slice(Date)

The volatilities at a date, each strike's curve read at the date and its strike: QuantLib's slice.

public (ImmutableArray<double> Strikes, ImmutableArray<double> Volatilities) Slice(Date d)

Parameters

d Date

The date, observed through each curve's lag.

Returns

(ImmutableArray<double> Times, ImmutableArray<double> Rates)

The strikes and the volatilities.

Exceptions

NanoQLException

A curve can't give a volatility at the date.

Slice(double)

The volatilities at a time, each strike's curve read at the time and its strike.

public (ImmutableArray<double> Strikes, ImmutableArray<double> Volatilities) Slice(double t)

Parameters

t double

The time on the curves' clock, already observed: no lag is applied.

Returns

(ImmutableArray<double> Times, ImmutableArray<double> Rates)

The strikes and the volatilities.

Exceptions

NanoQLException

A curve can't give a volatility at the time.