Table of Contents

Class VolatilityCube

Namespace
NanoQL.Experimental
Assembly
NanoQL.dll

A volatility cube of interest-rate volatility surfaces and abcd at-the-money curves on one reference date.

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

Remarks

Immutable. QuantLib's minIndexTenor() and maxIndexTenor() are declared and never defined, so they aren't ported.

Constructors

VolatilityCube(IEnumerable<InterestRateVolSurface>, IEnumerable<AbcdAtmVolCurve>)

Initializes a new instance of the VolatilityCube class.

public VolatilityCube(IEnumerable<InterestRateVolSurface> surfaces, IEnumerable<AbcdAtmVolCurve> curves)

Parameters

surfaces IEnumerable<InterestRateVolSurface>

The surfaces, at least two.

curves IEnumerable<AbcdAtmVolCurve>

The at-the-money curves.

Exceptions

ArgumentNullException

An argument or an element is null.

NanoQLException

There are fewer than two surfaces ("at least 2 surfaces are needed"), or the reference dates differ ("different reference dates").

Properties

Curves

Gets the at-the-money curves.

public ImmutableArray<AbcdAtmVolCurve> Curves { get; }

Property Value

ImmutableArray<AbcdAtmVolCurve>

Surfaces

Gets the surfaces.

public ImmutableArray<InterestRateVolSurface> Surfaces { get; }

Property Value

ImmutableArray<InterestRateVolSurface>