public final class SabrExtrapolationRightFunction extends Object
The form of the extrapolation as a function of the strike is \begin{equation*} f(K) = K^{-\mu} \exp\left( a + \frac{b}{K} + \frac{c}{K^2} \right). \end{equation*}
Benaim, S., Dodgson, M., and Kainth, D. (2008). An arbitrage-free method for smile extrapolation. Technical report, Royal Bank of Scotland.
OpenGamma implementation note: Smile extrapolation, version 1.2, May 2011.
| Modifier and Type | Method and Description |
|---|---|
double |
getCutOffStrike()
Gets the cut-off strike.
|
double |
getMu()
Gets the tail thickness parameter.
|
double[] |
getParameter()
Gets the three fitting parameters.
|
double[] |
getParameterDerivativeForward()
Gets the three fitting parameters derivatives with respect to the forward.
|
double[][] |
getParameterDerivativeSabr()
Gets the three fitting parameters derivatives with respect to the SABR parameters.
|
SabrFormulaData |
getSabrData()
Gets the underlying SABR data.
|
double |
getTimeToExpiry()
Gets the time to expiry.
|
static SabrExtrapolationRightFunction |
of(double forward,
double timeToExpiry,
SabrFormulaData sabrData,
double cutOffStrike,
double mu)
Obtains an instance with default volatility provider.
|
static SabrExtrapolationRightFunction |
of(double forward,
SabrFormulaData sabrData,
double cutOffStrike,
double timeToExpiry,
double mu,
VolatilityFunctionProvider<SabrFormulaData> volatilityFunction)
Obtains an instance with volatility provider specified.
|
double |
price(double strike,
PutCall putCall)
Computes the option price with numeraire=1.
|
ValueDerivatives |
priceAdjointSabr(double strike,
PutCall putCall)
Computes the option price derivative with respect to the SABR parameters.
|
double |
priceDerivativeForward(double strike,
PutCall putCall)
Computes the option price derivative with respect to the forward.
|
double |
priceDerivativeStrike(double strike,
PutCall putCall)
Computes the option price derivative with respect to the strike.
|
public static SabrExtrapolationRightFunction of(double forward, double timeToExpiry, SabrFormulaData sabrData, double cutOffStrike, double mu)
The default volatility provider is SabrHaganVolatilityFunctionProvider.
forward - the forwardtimeToExpiry - the time to expirationsabrData - the SABR formula datacutOffStrike - the cut-off-strikemu - the mu parameterpublic static SabrExtrapolationRightFunction of(double forward, SabrFormulaData sabrData, double cutOffStrike, double timeToExpiry, double mu, VolatilityFunctionProvider<SabrFormulaData> volatilityFunction)
forward - the forwardsabrData - the SABR formula datacutOffStrike - the cut-off-striketimeToExpiry - the time to expirationmu - the mu parametervolatilityFunction - the volatility functionpublic double price(double strike,
PutCall putCall)
The price is SABR below the cut-off strike and extrapolated beyond.
strike - the strike of the optionputCall - whether the option is put or callpublic double priceDerivativeStrike(double strike,
PutCall putCall)
The price is SABR below the cut-off strike and extrapolated beyond.
strike - the strike of the optionputCall - whether the option is put or callpublic double priceDerivativeForward(double strike,
PutCall putCall)
The price is SABR below the cut-off strike and extrapolated beyond.
strike - the strike of the optionputCall - whether the option is put or callpublic ValueDerivatives priceAdjointSabr(double strike, PutCall putCall)
The price is SABR below the cut-off strike and extrapolated beyond.
strike - the strike of the optionputCall - whether the option is put or callpublic SabrFormulaData getSabrData()
public double getCutOffStrike()
The smile is extrapolated above that level.
public double getMu()
public double getTimeToExpiry()
public double[] getParameter()
public double[] getParameterDerivativeForward()
public double[][] getParameterDerivativeSabr()
Copyright 2009-Present by OpenGamma Inc. and individual contributors
Apache v2 licensed
Additional documentation can be found at strata.opengamma.io.