public final class SabrParametersIborCapletFloorletVolatilities extends Object implements BlackSabrIborCapletFloorletVolatilities, org.joda.beans.ImmutableBean, Serializable
The volatility is represented in terms of SABR model parameters.
| Modifier and Type | Class and Description |
|---|---|
static class |
SabrParametersIborCapletFloorletVolatilities.Builder
The bean-builder for
SabrParametersIborCapletFloorletVolatilities. |
static class |
SabrParametersIborCapletFloorletVolatilities.Meta
The meta-bean for
SabrParametersIborCapletFloorletVolatilities. |
| Modifier and Type | Method and Description |
|---|---|
double |
alpha(double expiry)
Calculates the alpha parameter for a pair of time to expiry.
|
double |
beta(double expiry)
Calculates the beta parameter for a pair of time to expiry.
|
static SabrParametersIborCapletFloorletVolatilities.Builder |
builder()
Returns a builder used to create an instance of the bean.
|
boolean |
equals(Object obj) |
<T> Optional<T> |
findData(MarketDataName<T> name) |
Optional<ImmutableList<DoubleArray>> |
getDataSensitivityAlpha()
Gets the sensitivity of the Alpha parameters to the raw data used for calibration.
|
Optional<ImmutableList<DoubleArray>> |
getDataSensitivityBeta()
Gets the sensitivity of the Beta parameters to the raw data used for calibration.
|
Optional<ImmutableList<DoubleArray>> |
getDataSensitivityNu()
Gets the sensitivity of the Nu parameters to the raw data used for calibration.
|
Optional<ImmutableList<DoubleArray>> |
getDataSensitivityRho()
Gets the sensitivity of the Rho parameters to the raw data used for calibration.
|
DayCount |
getDayCount()
Gets the day count used to calculate the expiry year fraction.
|
IborIndex |
getIndex()
Gets the Ibor index.
|
IborCapletFloorletVolatilitiesName |
getName()
Gets the name.
|
double |
getParameter(int parameterIndex) |
int |
getParameterCount() |
ParameterMetadata |
getParameterMetadata(int parameterIndex) |
SabrParameters |
getParameters()
Gets the SABR model parameters.
|
ZonedDateTime |
getValuationDateTime()
Gets the valuation date-time.
|
int |
hashCode() |
static SabrParametersIborCapletFloorletVolatilities.Meta |
meta()
The meta-bean for
SabrParametersIborCapletFloorletVolatilities. |
SabrParametersIborCapletFloorletVolatilities.Meta |
metaBean() |
double |
nu(double expiry)
Calculates the nu parameter for a pair of time to expiry.
|
static SabrParametersIborCapletFloorletVolatilities |
of(IborCapletFloorletVolatilitiesName name,
IborIndex index,
ZonedDateTime valuationDateTime,
SabrParameters parameters)
Obtains an instance from the SABR model parameters and the date-time for which it is valid.
|
CurrencyParameterSensitivities |
parameterSensitivity(PointSensitivities pointSensitivities)
Calculates the parameter sensitivity.
|
double |
price(double expiry,
PutCall putCall,
double strike,
double forward,
double volatility)
Calculates the price.
|
double |
priceDelta(double expiry,
PutCall putCall,
double strike,
double forward,
double volatility)
Calculates the price delta.
|
double |
priceGamma(double expiry,
PutCall putCall,
double strike,
double forward,
double volatility)
Calculates the price gamma.
|
double |
priceTheta(double expiry,
PutCall putCall,
double strike,
double forward,
double volatility)
Calculates the price theta.
|
double |
priceVega(double expiry,
PutCall putCall,
double strike,
double forward,
double volatility)
Calculates the price vega.
|
double |
relativeTime(ZonedDateTime dateTime)
Converts a time and date to a relative year fraction.
|
double |
rho(double expiry)
Calculates the rho parameter for a pair of time to expiry.
|
double |
shift(double expiry)
Calculates the shift parameter for the specified time to expiry.
|
SabrParametersIborCapletFloorletVolatilities.Builder |
toBuilder()
Returns a builder that allows this bean to be mutated.
|
String |
toString() |
double |
volatility(double expiry,
double strike,
double forwardRate)
Calculates the volatility at the specified expiry.
|
ValueDerivatives |
volatilityAdjoint(double expiry,
double strike,
double forward)
Calculates the volatility and associated sensitivities.
|
SabrParametersIborCapletFloorletVolatilities |
withParameter(int parameterIndex,
double newValue) |
SabrParametersIborCapletFloorletVolatilities |
withPerturbation(ParameterPerturbation perturbation) |
clone, finalize, getClass, notify, notifyAll, wait, wait, waitgetVolatilityTypegetValuationDate, parameterSensitivity, volatilityfindParameterIndexpublic static SabrParametersIborCapletFloorletVolatilities of(IborCapletFloorletVolatilitiesName name, IborIndex index, ZonedDateTime valuationDateTime, SabrParameters parameters)
name - the nameindex - the Ibor index for which the data is validvaluationDateTime - the valuation date-timeparameters - the SABR model parameterspublic DayCount getDayCount()
public <T> Optional<T> findData(MarketDataName<T> name)
findData in interface MarketDataViewpublic int getParameterCount()
getParameterCount in interface ParameterizedDatapublic double getParameter(int parameterIndex)
getParameter in interface ParameterizedDatapublic ParameterMetadata getParameterMetadata(int parameterIndex)
getParameterMetadata in interface ParameterizedDatapublic SabrParametersIborCapletFloorletVolatilities withParameter(int parameterIndex, double newValue)
withParameter in interface ParameterizedDatawithParameter in interface IborCapletFloorletVolatilitieswithParameter in interface SabrIborCapletFloorletVolatilitiespublic SabrParametersIborCapletFloorletVolatilities withPerturbation(ParameterPerturbation perturbation)
withPerturbation in interface ParameterizedDatawithPerturbation in interface IborCapletFloorletVolatilitieswithPerturbation in interface SabrIborCapletFloorletVolatilitiespublic double volatility(double expiry,
double strike,
double forwardRate)
IborCapletFloorletVolatilities
This relies on expiry supplied by IborCapletFloorletVolatilities.relativeTime(ZonedDateTime).
volatility in interface IborCapletFloorletVolatilitiesexpiry - the time to expiry as a year fractionstrike - the option strike rateforwardRate - the forward ratepublic ValueDerivatives volatilityAdjoint(double expiry, double strike, double forward)
SabrIborCapletFloorletVolatilitiesThe derivatives are stored in an array with:
volatilityAdjoint in interface SabrIborCapletFloorletVolatilitiesexpiry - the time to expiry as a year fractionstrike - the strikeforward - the forwardpublic double alpha(double expiry)
SabrIborCapletFloorletVolatilitiesalpha in interface SabrIborCapletFloorletVolatilitiesexpiry - the time to expiry as a year fractionpublic double beta(double expiry)
SabrIborCapletFloorletVolatilitiesbeta in interface SabrIborCapletFloorletVolatilitiesexpiry - the time to expiry as a year fractionpublic double rho(double expiry)
SabrIborCapletFloorletVolatilitiesrho in interface SabrIborCapletFloorletVolatilitiesexpiry - the time to expiry as a year fractionpublic double nu(double expiry)
SabrIborCapletFloorletVolatilitiesnu in interface SabrIborCapletFloorletVolatilitiesexpiry - the time to expiry as a year fractionpublic double shift(double expiry)
SabrIborCapletFloorletVolatilitiesshift in interface SabrIborCapletFloorletVolatilitiesexpiry - the time to expiry as a year fractionpublic CurrencyParameterSensitivities parameterSensitivity(PointSensitivities pointSensitivities)
IborCapletFloorletVolatilities
This computes the CurrencyParameterSensitivities associated with the PointSensitivities.
This corresponds to the projection of the point sensitivity to the internal parameters representation.
parameterSensitivity in interface IborCapletFloorletVolatilitiespointSensitivities - the point sensitivitiespublic double price(double expiry,
PutCall putCall,
double strike,
double forward,
double volatility)
IborCapletFloorletVolatilities
This relies on expiry supplied by IborCapletFloorletVolatilities.relativeTime(ZonedDateTime).
This relies on volatility supplied by IborCapletFloorletVolatilities.volatility(double, double, double).
price in interface IborCapletFloorletVolatilitiesexpiry - the time to expiry as a year fractionputCall - whether the option is put or callstrike - the option strike rateforward - the forward ratevolatility - the volatilitypublic double priceDelta(double expiry,
PutCall putCall,
double strike,
double forward,
double volatility)
IborCapletFloorletVolatilitiesThis is the first order sensitivity of the option price to the forward.
This relies on expiry supplied by IborCapletFloorletVolatilities.relativeTime(ZonedDateTime).
This relies on volatility supplied by IborCapletFloorletVolatilities.volatility(double, double, double).
priceDelta in interface IborCapletFloorletVolatilitiesexpiry - the time to expiry as a year fractionputCall - whether the option is put or callstrike - the option strike rateforward - the forward ratevolatility - the volatilitypublic double priceGamma(double expiry,
PutCall putCall,
double strike,
double forward,
double volatility)
IborCapletFloorletVolatilitiesThis is the second order sensitivity of the option price to the forward.
This relies on expiry supplied by IborCapletFloorletVolatilities.relativeTime(ZonedDateTime).
This relies on volatility supplied by IborCapletFloorletVolatilities.volatility(double, double, double).
priceGamma in interface IborCapletFloorletVolatilitiesexpiry - the time to expiry as a year fractionputCall - whether the option is put or callstrike - the option strike rateforward - the forward ratevolatility - the volatilitypublic double priceTheta(double expiry,
PutCall putCall,
double strike,
double forward,
double volatility)
IborCapletFloorletVolatilitiesThis is the driftless sensitivity of the option price to a change in time to maturity.
This relies on expiry supplied by IborCapletFloorletVolatilities.relativeTime(ZonedDateTime).
This relies on volatility supplied by IborCapletFloorletVolatilities.volatility(double, double, double).
priceTheta in interface IborCapletFloorletVolatilitiesexpiry - the time to expiry as a year fractionputCall - whether the option is put or callstrike - the option strike rateforward - the forward ratevolatility - the volatilitypublic double priceVega(double expiry,
PutCall putCall,
double strike,
double forward,
double volatility)
IborCapletFloorletVolatilitiesThis is the sensitivity of the option price to the implied volatility.
This relies on expiry supplied by IborCapletFloorletVolatilities.relativeTime(ZonedDateTime).
This relies on volatility supplied by IborCapletFloorletVolatilities.volatility(double, double, double).
priceVega in interface IborCapletFloorletVolatilitiesexpiry - the time to expiry as a year fractionputCall - whether the option is put or callstrike - the option strike rateforward - the forward ratevolatility - the volatilitypublic double relativeTime(ZonedDateTime dateTime)
IborCapletFloorletVolatilitiesWhen the date is after the valuation date (and potentially time), the returned number is negative.
relativeTime in interface IborCapletFloorletVolatilitiesdateTime - the date-time to find the relative year fraction ofpublic static SabrParametersIborCapletFloorletVolatilities.Meta meta()
SabrParametersIborCapletFloorletVolatilities.public static SabrParametersIborCapletFloorletVolatilities.Builder builder()
public SabrParametersIborCapletFloorletVolatilities.Meta metaBean()
metaBean in interface org.joda.beans.Beanpublic IborCapletFloorletVolatilitiesName getName()
getName in interface IborCapletFloorletVolatilitiespublic IborIndex getIndex()
The data must valid in terms of this Ibor index.
getIndex in interface IborCapletFloorletVolatilitiespublic ZonedDateTime getValuationDateTime()
The volatilities are calibrated for this date-time.
getValuationDateTime in interface IborCapletFloorletVolatilitiespublic SabrParameters getParameters()
Each model parameter of SABR model is a curve. The x-value of the curve is the expiry, as a year fraction.
public Optional<ImmutableList<DoubleArray>> getDataSensitivityAlpha()
The order of the sensitivities have to be coherent with the curve parameter metadata.
public Optional<ImmutableList<DoubleArray>> getDataSensitivityBeta()
The order of the sensitivities have to be coherent with the curve parameter metadata.
public Optional<ImmutableList<DoubleArray>> getDataSensitivityRho()
The order of the sensitivities have to be coherent with the curve parameter metadata.
public Optional<ImmutableList<DoubleArray>> getDataSensitivityNu()
The order of the sensitivities have to be coherent with the curve parameter metadata.
public SabrParametersIborCapletFloorletVolatilities.Builder toBuilder()
Copyright 2009-Present by OpenGamma Inc. and individual contributors
Apache v2 licensed
Additional documentation can be found at strata.opengamma.io.