Go to Deriscope's documentation start page

Vol_Curve__Vol_Input

Vol Input refers to List of possible ways that the volatility may be specified.
Available Vol Input types:
Flat
The volatility bears no dependence on
Key Vol::Peg Date or any other relevant parameter and may thus be entered as a single number.
It is implemented either through the QuantLib BlackConstantVol or ConstantSwaptionVolatility or ConstantCapFloorVolatility, depending on the referenced quantity.
Maturity
The volatility depends only on
Key Vol::Peg Date
It is specified by a
Set object consisting of 2 columns that contain volatilities for various maturities.
The first column must bear the title #Maturity and contain the maturities, entered either as dates or steps.
The second column must bear the title #Vol and contain the respective volatilities.
It is implemented through the QuantLib BlackVarianceCurve, which models the variance as a function of time.
Regarding the maturities that do not appear in the Set a separately supplied user-defined interpolation scheme is also needed.
Note that since the initial variance is always zero, such an interpolation cannot be log based, since the logarithm of the initial zero value does not exist.
Maturity-Strike
The volatility depends on both
Key Vol::Peg Date and strike.
It is specified by a
Table2D object containing volatilities for various (maturity,strike) combinations.
The first dimension must span the maturities and the second the strikes.
Note this type only makes sense if the entry
Key Vol Spec::Vol Type defined within Vol Spec supports the notion of "strike".
It is implemented either through the QuantLib CapFloorTermVolSurface or BlackVarianceSurface, depending on the referenced quantity.
In the BlackVarianceSurface case, a separately supplied user-defined two-dimensional interpolation scheme is also needed for those dates and tenors that do not appear in the Table2D
Otherwise linear interpolation and flat extrapolation is assumed.
Swaption Cube
This type is exclusively used to describe the volatility of forward interest rate swap rates.
It thus only makes sense if the entry
Key Vol Spec::Ref Quotable defined within Vol Spec relates to a Swap Rate.
The fundamental assumption is that for a fixed expiry T1 and underlying swap maturity T2, the forward rate F(T1,T2) is a martingale diffused as dF = σ(F^β)dw according to the stochastic volatility model
SABR Model

Note that we do not assume that the same SABR parameters apply to all different combinations of T1 and T2.
In other words, for each pair T1, T2, we allow the respective forward rate F(T1,T2) to diffuse as dF = σ(F^β)dw, but with parameters α, β, ν, ρ that depend on T1, T2.

All this gives rise to a non-flat Black volatility structure in the following sense:
For any pair T1, T2, the respective European swaption with strike K would have a theoretical price P(K,T1,T2).
In general, there must exist a Black vol σB that would lead to the exact same price P when the lognormal Black diffusion dF = (σB)Fdw had been assumed instead.
This defines the vol σB as a function of K, T1, T2, of which the graphical display requires 3 axes for the independent parameters.

The exact same argument applies with regard to the
Vol Spec::Vol Type::Normal vol σN and Vol Spec::Vol Type::Shifted Lognormal vol σL associated with a normal and shifted lognormal diffusion of the forward rate F respectively.

We could perhaps specify the SABR vol structure through an array of quartets α, β, ν, ρ, where each quartet corresponds to a pair T1, T2 and specifies the stochastic vol diffusion of the respective forward rate F(T1,T2).
A far simpler method adopted by Deriscope is to specify instead the 3-dimensional grid of market vols as defined above.
Such an input grid is referred as "vol cube" and may consist by the σB, σN or σL.
In addition, certain SABR model switches, such as initial guesses of SABR parameters, may be specified in an optional input object of type
SABR Model

The 3-dimensional grid is specified by a
HyperTable object containing volatilities for various combinations of strike spread, expiry and swap tenor.
Typically the first cube dimension spans the strike spreads (differences from the atm rate level), the second the option expiries and the third the swap tenors.
The strike spread coordinate must include the number 0 and the corresponding 2-dimensioal sub-table must contain the at-the-money swaption vols.
The 2-dimensioal sub-tables associated with the non-zero strike spread coordinates should not contain the absolute vol levels but rather the vol spreads, defined as the differences between the vol levels for the respective strike and the atm vol levels.
Bilinear interpolation is assumed for any missing entries in the supplied tables.
The QuantLib implementation is the SwaptionVolCube1.
Swaption Surface
This type is exclusively used to describe the volatility of forward interest rate swap rates.
It thus only makes sense if the entry
Key Vol Spec::Ref Quotable defined within Vol Spec relates to a Swap Rate.
The fundamental assumption is that for a fixed expiry T1 and underlying swap maturity T2, the forward rate F(T1,T2) is diffused in a
Vol Spec::Vol Type::Black, Vol Spec::Vol Type::Normal or Vol Spec::Vol Type::Shifted Lognormal fashion.

Note that we do not assume that the same diffusion parameters apply to all different combinations of T1 and T2.
In other words, for each pair T1, T2, we allow the respective forward rate F(T1,T2) to diffuse with a different vol parameter σ that depends on T1, T2.

This gives rise to a non-flat volatility surface σ(T1,T2).
For a given discrete collection of pairs T1, T2, the surface becomes a 2-dimensional grid.

Deriscope allows you to specify this grid of market vols as a
Table2D object containing volatilities for various T1, T2 combinations.
One dimension must span the option expiries (entered as dates or steps) and the second the swap tenors (entered as steps).
Bilinear interpolation is assumed for any missing entries in the supplied table.
The extrapolation type is controlled by a separate input.
The QuantLib implementation is the SwaptionVolatilityMatrix.