public class SabrIborCapletFloorletVolatilityBootstrapper extends Object
The SABR model parameters are computed by bootstrapping along the expiry time dimension.
The result is a complete set of curves for the SABR parameters spanned by the expiry time.
The position of the node points on the resultant curves corresponds to market cap expiries,
and are interpolated by a local interpolation scheme.
See SabrIborCapletFloorletVolatilityBootstrapDefinition
for detail.
The calibration to SABR is computed once the option volatility date is converted to prices. Thus we should note that
the error values in RawOptionData
are applied in the price space rather than the volatility space.
Modifier and Type | Field and Description |
---|---|
static SabrIborCapletFloorletVolatilityBootstrapper |
DEFAULT
Default implementation.
|
public static final SabrIborCapletFloorletVolatilityBootstrapper DEFAULT
public static SabrIborCapletFloorletVolatilityBootstrapper of(VolatilityIborCapFloorLegPricer pricer, SabrIborCapletFloorletPeriodPricer sabrPeriodPricer, double epsilon, ReferenceData referenceData)
The epsilon is the parameter used in NonLinearLeastSquare
, where the iteration stops when certain
quantities are smaller than this parameter.
pricer
- the cap/floor pricer to convert quoted volatilities to pricessabrPeriodPricer
- the SABR pricerepsilon
- the epsilon parameterreferenceData
- the reference datapublic IborCapletFloorletVolatilityCalibrationResult calibrate(IborCapletFloorletVolatilityDefinition definition, ZonedDateTime calibrationDateTime, RawOptionData capFloorData, RatesProvider ratesProvider)
definition
- the caplet volatility definitioncalibrationDateTime
- the calibration timecapFloorData
- the cap dataratesProvider
- the rates providerprotected ReferenceData getReferenceData()
protected VolatilityIborCapFloorLegPricer getLegPricer()
protected void reduceRawData(IborCapletFloorletVolatilityDefinition definition, RatesProvider ratesProvider, DoubleArray strikes, DoubleArray volatilityData, DoubleArray errors, LocalDate startDate, LocalDate endDate, SurfaceMetadata metadata, Function<Surface,IborCapletFloorletVolatilities> volatilityFunction, List<Double> timeList, List<Double> strikeList, List<Double> volList, List<ResolvedIborCapFloorLeg> capList, List<Double> priceList, List<Double> errorList)
protected Function<Surface,IborCapletFloorletVolatilities> volatilitiesFunction(IborCapletFloorletVolatilityDefinition definition, ZonedDateTime calibrationDateTime, RawOptionData capFloorData)
Copyright 2009-Present by OpenGamma Inc. and individual contributors
Apache v2 licensed
Additional documentation can be found at strata.opengamma.io.