Class SabrIborCapletFloorletVolatilityBootstrapDefinition
- java.lang.Object
-
- com.opengamma.strata.pricer.capfloor.SabrIborCapletFloorletVolatilityBootstrapDefinition
-
- All Implemented Interfaces:
IborCapletFloorletVolatilityDefinition
,Serializable
,org.joda.beans.Bean
,org.joda.beans.ImmutableBean
public final class SabrIborCapletFloorletVolatilityBootstrapDefinition extends Object implements IborCapletFloorletVolatilityDefinition, org.joda.beans.ImmutableBean, Serializable
Definition of caplet volatilities calibration.This definition is used with
SabrIborCapletFloorletVolatilityBootstrapper
. The SABR parameters are computed by bootstrap along the time direction, thus the interpolation and left extrapolation for the time dimension must be local.Either rho or beta must be fixed. Then the calibration is computed to the other three SABR parameter curves. The resulting volatilities object will be
SabrParametersIborCapletFloorletVolatilities
.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SabrIborCapletFloorletVolatilityBootstrapDefinition.Builder
The bean-builder forSabrIborCapletFloorletVolatilityBootstrapDefinition
.static class
SabrIborCapletFloorletVolatilityBootstrapDefinition.Meta
The meta-bean forSabrIborCapletFloorletVolatilityBootstrapDefinition
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static SabrIborCapletFloorletVolatilityBootstrapDefinition.Builder
builder()
Returns a builder used to create an instance of the bean.SurfaceMetadata
createMetadata(RawOptionData capFloorData)
Creates surface metadata.ImmutableList<CurveMetadata>
createSabrParameterMetadata()
Creates curve metadata for SABR parameters.boolean
equals(Object obj)
Optional<Curve>
getBetaCurve()
Gets the beta (elasticity) curve.DayCount
getDayCount()
Gets the day count to measure the time in the expiry dimension.CurveExtrapolator
getExtrapolatorLeft()
Gets the left extrapolator for the SABR parameter curves.CurveExtrapolator
getExtrapolatorRight()
Gets the right extrapolator for the SABR parameter curves.IborIndex
getIndex()
Gets the Ibor index for which the data is valid.CurveInterpolator
getInterpolator()
Gets the interpolator for the SABR parameter curves.IborCapletFloorletVolatilitiesName
getName()
Gets the name of the volatilities.Optional<Curve>
getRhoCurve()
Gets the rho (correlation) curve.SabrVolatilityFormula
getSabrVolatilityFormula()
Gets the SABR formula.Curve
getShiftCurve()
Gets the shift curve.int
hashCode()
static SabrIborCapletFloorletVolatilityBootstrapDefinition.Meta
meta()
The meta-bean forSabrIborCapletFloorletVolatilityBootstrapDefinition
.SabrIborCapletFloorletVolatilityBootstrapDefinition.Meta
metaBean()
static SabrIborCapletFloorletVolatilityBootstrapDefinition
ofFixedBeta(IborCapletFloorletVolatilitiesName name, IborIndex index, DayCount dayCount, double beta, double shift, CurveInterpolator interpolator, CurveExtrapolator extrapolatorLeft, CurveExtrapolator extrapolatorRight, SabrVolatilityFormula sabrVolatilityFormula)
Obtains an instance with constant beta and shift.static SabrIborCapletFloorletVolatilityBootstrapDefinition
ofFixedBeta(IborCapletFloorletVolatilitiesName name, IborIndex index, DayCount dayCount, double beta, CurveInterpolator interpolator, CurveExtrapolator extrapolatorLeft, CurveExtrapolator extrapolatorRight, SabrVolatilityFormula sabrVolatilityFormula)
Obtains an instance with zero shift and constant beta.static SabrIborCapletFloorletVolatilityBootstrapDefinition
ofFixedRho(IborCapletFloorletVolatilitiesName name, IborIndex index, DayCount dayCount, double rho, double shift, CurveInterpolator interpolator, CurveExtrapolator extrapolatorLeft, CurveExtrapolator extrapolatorRight, SabrVolatilityFormula sabrVolatilityFormula)
Obtains an instance with constant beta and shift.static SabrIborCapletFloorletVolatilityBootstrapDefinition
ofFixedRho(IborCapletFloorletVolatilitiesName name, IborIndex index, DayCount dayCount, double rho, CurveInterpolator interpolator, CurveExtrapolator extrapolatorLeft, CurveExtrapolator extrapolatorRight, SabrVolatilityFormula sabrVolatilityFormula)
Obtains an instance with zero shift and constant beta.SabrIborCapletFloorletVolatilityBootstrapDefinition.Builder
toBuilder()
Returns a builder that allows this bean to be mutated.String
toString()
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.opengamma.strata.pricer.capfloor.IborCapletFloorletVolatilityDefinition
createCap
-
-
-
-
Method Detail
-
ofFixedBeta
public static SabrIborCapletFloorletVolatilityBootstrapDefinition ofFixedBeta(IborCapletFloorletVolatilitiesName name, IborIndex index, DayCount dayCount, double beta, CurveInterpolator interpolator, CurveExtrapolator extrapolatorLeft, CurveExtrapolator extrapolatorRight, SabrVolatilityFormula sabrVolatilityFormula)
Obtains an instance with zero shift and constant beta.- Parameters:
name
- the name of volatilitiesindex
- the Ibor indexdayCount
- the day countbeta
- the beta valueinterpolator
- the interpolatorextrapolatorLeft
- the left extrapolatorextrapolatorRight
- the right extrapolatorsabrVolatilityFormula
- the SABR formula- Returns:
- the instance
-
ofFixedBeta
public static SabrIborCapletFloorletVolatilityBootstrapDefinition ofFixedBeta(IborCapletFloorletVolatilitiesName name, IborIndex index, DayCount dayCount, double beta, double shift, CurveInterpolator interpolator, CurveExtrapolator extrapolatorLeft, CurveExtrapolator extrapolatorRight, SabrVolatilityFormula sabrVolatilityFormula)
Obtains an instance with constant beta and shift.- Parameters:
name
- the name of volatilitiesindex
- the Ibor indexdayCount
- the day countbeta
- the beta valueshift
- the shift valueinterpolator
- the interpolatorextrapolatorLeft
- the left extrapolatorextrapolatorRight
- the right extrapolatorsabrVolatilityFormula
- the SABR formula- Returns:
- the instance
-
ofFixedRho
public static SabrIborCapletFloorletVolatilityBootstrapDefinition ofFixedRho(IborCapletFloorletVolatilitiesName name, IborIndex index, DayCount dayCount, double rho, CurveInterpolator interpolator, CurveExtrapolator extrapolatorLeft, CurveExtrapolator extrapolatorRight, SabrVolatilityFormula sabrVolatilityFormula)
Obtains an instance with zero shift and constant beta.- Parameters:
name
- the name of volatilitiesindex
- the Ibor indexdayCount
- the day countrho
- the rho valueinterpolator
- the interpolatorextrapolatorLeft
- the left extrapolatorextrapolatorRight
- the right extrapolatorsabrVolatilityFormula
- the SABR formula- Returns:
- the instance
-
ofFixedRho
public static SabrIborCapletFloorletVolatilityBootstrapDefinition ofFixedRho(IborCapletFloorletVolatilitiesName name, IborIndex index, DayCount dayCount, double rho, double shift, CurveInterpolator interpolator, CurveExtrapolator extrapolatorLeft, CurveExtrapolator extrapolatorRight, SabrVolatilityFormula sabrVolatilityFormula)
Obtains an instance with constant beta and shift.- Parameters:
name
- the name of volatilitiesindex
- the Ibor indexdayCount
- the day countrho
- the rho valueshift
- the shift valueinterpolator
- the interpolatorextrapolatorLeft
- the left extrapolatorextrapolatorRight
- the right extrapolatorsabrVolatilityFormula
- the SABR formula- Returns:
- the instance
-
createMetadata
public SurfaceMetadata createMetadata(RawOptionData capFloorData)
Description copied from interface:IborCapletFloorletVolatilityDefinition
Creates surface metadata.- Specified by:
createMetadata
in interfaceIborCapletFloorletVolatilityDefinition
- Parameters:
capFloorData
- the cap/floor data- Returns:
- the surface metadata
-
createSabrParameterMetadata
public ImmutableList<CurveMetadata> createSabrParameterMetadata()
Creates curve metadata for SABR parameters.- Returns:
- the curve metadata
-
meta
public static SabrIborCapletFloorletVolatilityBootstrapDefinition.Meta meta()
The meta-bean forSabrIborCapletFloorletVolatilityBootstrapDefinition
.- Returns:
- the meta-bean, not null
-
builder
public static SabrIborCapletFloorletVolatilityBootstrapDefinition.Builder builder()
Returns a builder used to create an instance of the bean.- Returns:
- the builder, not null
-
metaBean
public SabrIborCapletFloorletVolatilityBootstrapDefinition.Meta metaBean()
- Specified by:
metaBean
in interfaceorg.joda.beans.Bean
-
getName
public IborCapletFloorletVolatilitiesName getName()
Gets the name of the volatilities.- Specified by:
getName
in interfaceIborCapletFloorletVolatilityDefinition
- Returns:
- the value of the property, not null
-
getIndex
public IborIndex getIndex()
Gets the Ibor index for which the data is valid.- Specified by:
getIndex
in interfaceIborCapletFloorletVolatilityDefinition
- Returns:
- the value of the property, not null
-
getDayCount
public DayCount getDayCount()
Gets the day count to measure the time in the expiry dimension.- Specified by:
getDayCount
in interfaceIborCapletFloorletVolatilityDefinition
- Returns:
- the value of the property, not null
-
getBetaCurve
public Optional<Curve> getBetaCurve()
Gets the beta (elasticity) curve.This represents the beta parameter of SABR model.
The beta will be treated as one of the calibration parameters if this field is not specified.
- Returns:
- the optional value of the property, not null
-
getRhoCurve
public Optional<Curve> getRhoCurve()
Gets the rho (correlation) curve.This represents the rho parameter of SABR model.
The rho will be treated as one of the calibration parameters if this field is not specified.
- Returns:
- the optional value of the property, not null
-
getShiftCurve
public Curve getShiftCurve()
Gets the shift curve.This represents the shift parameter of shifted SABR model. The x value of the curve is the expiry.
The shift is set to be zero if this field is not specified.
- Returns:
- the value of the property, not null
-
getInterpolator
public CurveInterpolator getInterpolator()
Gets the interpolator for the SABR parameter curves.The x value of the interpolated curves is the expiry.
- Returns:
- the value of the property, not null
-
getExtrapolatorLeft
public CurveExtrapolator getExtrapolatorLeft()
Gets the left extrapolator for the SABR parameter curves.The x value of the interpolated curves is the expiry.
- Returns:
- the value of the property, not null
-
getExtrapolatorRight
public CurveExtrapolator getExtrapolatorRight()
Gets the right extrapolator for the SABR parameter curves.The x value of the interpolated curves is the expiry.
- Returns:
- the value of the property, not null
-
getSabrVolatilityFormula
public SabrVolatilityFormula getSabrVolatilityFormula()
Gets the SABR formula.- Returns:
- the value of the property, not null
-
toBuilder
public SabrIborCapletFloorletVolatilityBootstrapDefinition.Builder toBuilder()
Returns a builder that allows this bean to be mutated.- Returns:
- the mutable builder, not null
-
-