finMath lib documentation
net.finmath.singleswaprate.model.volatilities

## Class VolVolCube

• All Implemented Interfaces:
VolatilityCube

public class VolVolCube
extends Object
implements VolatilityCube
This cube provides the volatility of the stochastic driver for each sub-tenor of the swap rate's schedule in the Piterbarg model of the annuity mapping. They are linked to normal volatilities via $\frac{\tau_j}{1+\tau_j S_j(0)} \rho_{i,j} \sigma_j ]\, where $$\tau$$ is the accrual fraction, $$S_j(0)$$ is the swap rate of the j-th subtenor evaluated at time 0, $$\sigma_j$$ the volatility of the j-th subtenor at the strike and $$\rho_{i,j}$$ is the correlation between the swap rates of the two tenors. We assume a correlation according to \[ \rho_{i,j} = e^{d(T_j - T_i)}$, where d is some decay parameter, given by the underlying cube.
Author:
Christian Fries, Roland Bachl
• ### Constructor Summary

Constructors
Constructor and Description
VolVolCube(String name, LocalDate referenceDate, String referenceCubeName, Schedule schedule, double[] initialSwapRates)
Create the volvol cube.
• ### Method Summary

All Methods
Modifier and Type Method and Description
double getCorrelationDecay()
Return the correlation decay parameter of the cube.
double getIborOisDecorrelation()
Return the IBOR vs OIS decorrelation parameter.
double getLowestStrike(VolatilityCubeModel model)
Returns the lowest possible value of strike that can be evaluated by this cube.
String getName()
Returns the name of the volatility cube.
Map<String,Object> getParameters()
Returns a map with all implementation dependent parameters of this volatility cube.
String getReferenceCubeName()
LocalDate getReferenceDate()
Return the reference date of this cube, i.e. the date associated with t=0.
double getValue(double tenorLength, double maturity, double strike, VolatilitySurface.QuotingConvention quotingConvention)
Return the volatility at the specified coordinates in the desired quotation.
double getValue(VolatilityCubeModel model, double termination, double maturity, double strike, VolatilitySurface.QuotingConvention quotingConvention)
Return the volatility at the specified coordinates in the desired quotation.
String toString()
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
• ### Constructor Detail

• #### VolVolCube

public VolVolCube(String name,
LocalDate referenceDate,
String referenceCubeName,
Schedule schedule,
double[] initialSwapRates)
Create the volvol cube.
Parameters:
name - The name of the cube.
referenceDate - The referenceDate of the cube.
referenceCubeName - The name of the underlying cube.
schedule - The schedule of the swap rate.
initialSwapRates - Initial swap rates of all sub-tenors.
• ### Method Detail

• #### getValue

public double getValue(VolatilityCubeModel model,
double termination,
double maturity,
double strike,
VolatilitySurface.QuotingConvention quotingConvention)
Description copied from interface: VolatilityCube
Return the volatility at the specified coordinates in the desired quotation.
Specified by:
getValue in interface VolatilityCube
Parameters:
model - A model providing context.
termination - End date of the underlying.
maturity - Maturity date of the option.
strike - Strike rate of the option.
quotingConvention - Desired quoting convention.
Returns:
The volatility.
• #### getName

public String getName()
Description copied from interface: VolatilityCube
Returns the name of the volatility cube.
Specified by:
getName in interface VolatilityCube
Returns:
The name of the volatility cube.
• #### getReferenceDate

public LocalDate getReferenceDate()
Description copied from interface: VolatilityCube
Return the reference date of this cube, i.e. the date associated with t=0.
Specified by:
getReferenceDate in interface VolatilityCube
Returns:
The date identified as t=0.
• #### getReferenceCubeName

public String getReferenceCubeName()
• #### toString

public String toString()
Overrides:
toString in class Object
• #### getValue

public double getValue(double tenorLength,
double maturity,
double strike,
VolatilitySurface.QuotingConvention quotingConvention)
Description copied from interface: VolatilityCube
Return the volatility at the specified coordinates in the desired quotation.
Specified by:
getValue in interface VolatilityCube
Parameters:
tenorLength - End date of the underlying.
maturity - Maturity date of the option.
strike - Strike rate of the option.
quotingConvention - Desired quoting convention.
Returns:
The volatility.
• #### getCorrelationDecay

public double getCorrelationDecay()
Description copied from interface: VolatilityCube
Return the correlation decay parameter of the cube. This is used to determine the correlation between tenors in a derived volvol cube.
Specified by:
getCorrelationDecay in interface VolatilityCube
Returns:
The correlation decay parameter.
• #### getParameters

public Map<String,Object> getParameters()
Description copied from interface: VolatilityCube
Returns a map with all implementation dependent parameters of this volatility cube.
Specified by:
getParameters in interface VolatilityCube
Returns:
A map of all parameters.
• #### getLowestStrike

public double getLowestStrike(VolatilityCubeModel model)
Description copied from interface: VolatilityCube
Returns the lowest possible value of strike that can be evaluated by this cube. This is relevant for instance when an implementation uses a SABR model with displacement.
Specified by:
getLowestStrike in interface VolatilityCube
Parameters:
model - A model for context.
Returns:
Lowest possible strike this volatility cube supports.
• #### getIborOisDecorrelation

public double getIborOisDecorrelation()
Description copied from interface: VolatilityCube
Return the IBOR vs OIS decorrelation parameter. This parameter scales the convexity adjustment in a multi curve model, using different curves for forward rates and discounting.
Specified by:
getIborOisDecorrelation in interface VolatilityCube
Returns:
The IBOR vs OIS decorrelation parameter.