Interface SwaptionVolatilities
-
- All Superinterfaces:
MarketDataView,ParameterizedData
- All Known Subinterfaces:
BlackSwaptionVolatilities,NormalSwaptionVolatilities,SabrSwaptionVolatilities
- All Known Implementing Classes:
BlackSwaptionExpiryTenorVolatilities,NormalSwaptionExpirySimpleMoneynessVolatilities,NormalSwaptionExpiryStrikeVolatilities,NormalSwaptionExpiryTenorVolatilities,SabrParametersSwaptionVolatilities
public interface SwaptionVolatilities extends MarketDataView, ParameterizedData
Volatilities for pricing swaptions.This provides access to the volatilities for various pricing models, such as normal, Black and SABR. The price and derivatives are also made available.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description FixedFloatSwapConventiongetConvention()Gets the convention of the swap for which the data is valid.SwaptionVolatilitiesNamegetName()Gets the name of these volatilities.default LocalDategetValuationDate()Gets the valuation date.ZonedDateTimegetValuationDateTime()Gets the valuation date-time.ValueTypegetVolatilityType()Gets the type of volatility returned by thevolatility(java.time.ZonedDateTime, double, double, double)method.CurrencyParameterSensitivitiesparameterSensitivity(PointSensitivities pointSensitivities)Calculates the parameter sensitivity.default CurrencyParameterSensitivitiesparameterSensitivity(PointSensitivity... pointSensitivities)Calculates the parameter sensitivity.doubleprice(double expiry, double tenor, PutCall putCall, double strike, double forward, double volatility)Calculates the price.doublepriceDelta(double expiry, double tenor, PutCall putCall, double strike, double forward, double volatility)Calculates the price delta.doublepriceGamma(double expiry, double tenor, PutCall putCall, double strike, double forward, double volatility)Calculates the price gamma.doublepriceTheta(double expiry, double tenor, PutCall putCall, double strike, double forward, double volatility)Calculates the price theta.doublepriceVega(double expiry, double tenor, PutCall putCall, double strike, double forward, double volatility)Calculates the price vega.doublerelativeTime(ZonedDateTime dateTime)Converts a time and date to a relative year fraction.doubletenor(LocalDate startDate, LocalDate endDate)Calculates the tenor of the swap based on its start date and end date.doublevolatility(double expiry, double tenor, double strike, double forward)Calculates the volatility at the specified expiry.default doublevolatility(ZonedDateTime expiryDateTime, double tenor, double strike, double forward)Calculates the volatility at the specified expiry.SwaptionVolatilitieswithParameter(int parameterIndex, double newValue)Returns a copy of the data with the value at the specified index altered.SwaptionVolatilitieswithPerturbation(ParameterPerturbation perturbation)Returns a perturbed copy of the data.-
Methods inherited from interface com.opengamma.strata.market.MarketDataView
findData
-
Methods inherited from interface com.opengamma.strata.market.param.ParameterizedData
findParameterIndex, getParameter, getParameterCount, getParameterMetadata
-
-
-
-
Method Detail
-
getName
SwaptionVolatilitiesName getName()
Gets the name of these volatilities.- Returns:
- the name
-
getConvention
FixedFloatSwapConvention getConvention()
Gets the convention of the swap for which the data is valid.- Returns:
- the convention
-
getVolatilityType
ValueType getVolatilityType()
Gets the type of volatility returned by thevolatility(java.time.ZonedDateTime, double, double, double)method.- Returns:
- the type
-
getValuationDate
default LocalDate getValuationDate()
Gets the valuation date.The volatilities are calibrated for this date.
- Specified by:
getValuationDatein interfaceMarketDataView- Returns:
- the valuation date
-
getValuationDateTime
ZonedDateTime getValuationDateTime()
Gets the valuation date-time.The volatilities are calibrated for this date-time.
- Returns:
- the valuation date-time
-
withParameter
SwaptionVolatilities withParameter(int parameterIndex, double newValue)
Description copied from interface:ParameterizedDataReturns a copy of the data with the value at the specified index altered.This instance is immutable and unaffected by this method call.
- Specified by:
withParameterin interfaceParameterizedData- Parameters:
parameterIndex- the zero-based index of the parameter to getnewValue- the new value for the specified parameter- Returns:
- a parameterized data instance based on this with the specified parameter altered
-
withPerturbation
SwaptionVolatilities withPerturbation(ParameterPerturbation perturbation)
Description copied from interface:ParameterizedDataReturns a perturbed copy of the data.The perturbation instance will be invoked once for each parameter in this instance, returning the perturbed value for that parameter. The result of this method is a new instance that is based on those perturbed values.
This instance is immutable and unaffected by this method call.
- Specified by:
withPerturbationin interfaceParameterizedData- Parameters:
perturbation- the perturbation to apply- Returns:
- a parameterized data instance based on this with the specified perturbation applied
-
volatility
default double volatility(ZonedDateTime expiryDateTime, double tenor, double strike, double forward)
Calculates the volatility at the specified expiry.This relies on tenor supplied by
tenor(LocalDate, LocalDate).- Parameters:
expiryDateTime- the option expirytenor- the tenor of the instrument as a year fractionstrike- the option strike rateforward- the forward rate of the underlying swap- Returns:
- the volatility
- Throws:
RuntimeException- if the value cannot be obtained
-
volatility
double volatility(double expiry, double tenor, double strike, double forward)Calculates the volatility at the specified expiry.This relies on expiry supplied by
relativeTime(ZonedDateTime). This relies on tenor supplied bytenor(LocalDate, LocalDate).- Parameters:
expiry- the time to expiry as a year fractiontenor- the tenor of the instrument as a year fractionstrike- the option strike rateforward- the forward rate of the underlying swap- Returns:
- the volatility
- Throws:
RuntimeException- if the value cannot be obtained
-
parameterSensitivity
default CurrencyParameterSensitivities parameterSensitivity(PointSensitivity... pointSensitivities)
Calculates the parameter sensitivity.This computes the
CurrencyParameterSensitivitiesassociated with thePointSensitivities. This corresponds to the projection of the point sensitivity to the internal parameters representation.- Parameters:
pointSensitivities- the point sensitivities- Returns:
- the sensitivity to the underlying parameters
-
parameterSensitivity
CurrencyParameterSensitivities parameterSensitivity(PointSensitivities pointSensitivities)
Calculates the parameter sensitivity.This computes the
CurrencyParameterSensitivitiesassociated with thePointSensitivities. This corresponds to the projection of the point sensitivity to the internal parameters representation.- Parameters:
pointSensitivities- the point sensitivities- Returns:
- the sensitivity to the underlying parameters
-
price
double price(double expiry, double tenor, PutCall putCall, double strike, double forward, double volatility)Calculates the price.This relies on expiry supplied by
relativeTime(ZonedDateTime). This relies on tenor supplied bytenor(LocalDate, LocalDate). This relies on volatility supplied byvolatility(double, double, double, double).- Parameters:
expiry- the time to expiry as a year fractiontenor- the tenor of the instrument as a year fractionputCall- whether the option is put or callstrike- the option strike rateforward- the forward rate of the underlying swapvolatility- the volatility- Returns:
- the price
- Throws:
RuntimeException- if the value cannot be obtained
-
priceDelta
double priceDelta(double expiry, double tenor, PutCall putCall, double strike, double forward, double volatility)Calculates the price delta.This is the forward driftless delta.
This relies on expiry supplied by
relativeTime(ZonedDateTime). This relies on tenor supplied bytenor(LocalDate, LocalDate). This relies on volatility supplied byvolatility(double, double, double, double).- Parameters:
expiry- the time to expiry as a year fractiontenor- the tenor of the instrument as a year fractionputCall- whether the option is put or callstrike- the option strike rateforward- the forward rate of the underlying swapvolatility- the volatility- Returns:
- the delta
- Throws:
RuntimeException- if the value cannot be obtained
-
priceGamma
double priceGamma(double expiry, double tenor, PutCall putCall, double strike, double forward, double volatility)Calculates the price gamma.This is the second order sensitivity of the forward option value to the forward.
This relies on expiry supplied by
relativeTime(ZonedDateTime). This relies on tenor supplied bytenor(LocalDate, LocalDate). This relies on volatility supplied byvolatility(double, double, double, double).- Parameters:
expiry- the time to expiry as a year fractiontenor- the tenor of the instrument as a year fractionputCall- whether the option is put or callstrike- the option strike rateforward- the forward rate of the underlying swapvolatility- the volatility- Returns:
- the gamma
- Throws:
RuntimeException- if the value cannot be obtained
-
priceTheta
double priceTheta(double expiry, double tenor, PutCall putCall, double strike, double forward, double volatility)Calculates the price theta.This is the driftless sensitivity of the present value to a change in time to maturity.
This relies on expiry supplied by
relativeTime(ZonedDateTime). This relies on tenor supplied bytenor(LocalDate, LocalDate). This relies on volatility supplied byvolatility(double, double, double, double).- Parameters:
expiry- the time to expiry as a year fractiontenor- the tenor of the instrument as a year fractionputCall- whether the option is put or callstrike- the option strike rateforward- the forward rate of the underlying swapvolatility- the volatility- Returns:
- the theta
- Throws:
RuntimeException- if the value cannot be obtained
-
priceVega
double priceVega(double expiry, double tenor, PutCall putCall, double strike, double forward, double volatility)Calculates the price vega.This is the sensitivity of the option forward price to the implied volatility.
This relies on expiry supplied by
relativeTime(ZonedDateTime). This relies on tenor supplied bytenor(LocalDate, LocalDate). This relies on volatility supplied byvolatility(double, double, double, double).- Parameters:
expiry- the time to expiry as a year fractiontenor- the tenor of the instrument as a year fractionputCall- whether the option is put or callstrike- the option strike rateforward- the forward rate of the underlying swapvolatility- the volatility- Returns:
- the vega
- Throws:
RuntimeException- if the value cannot be obtained
-
relativeTime
double relativeTime(ZonedDateTime dateTime)
Converts a time and date to a relative year fraction.When the date is after the valuation date (and potentially time), the returned number is negative.
- Parameters:
dateTime- the date-time to find the relative year fraction of- Returns:
- the relative year fraction
-
-