public final class DirectIborCapletFloorletVolatilityDefinition extends Object implements IborCapletFloorletVolatilityDefinition, org.joda.beans.ImmutableBean, Serializable
This definition is used with DirectIborCapletFloorletVolatilityCalibrator.
The volatilities of the constituent caplets in the market caps are "model parameters"
and calibrated to the market data under a certain penalty constraint.
The resulting volatilities object will be a set of caplet volatilities interpolated by GridSurfaceInterpolator.
The penalty defined in this class is based on the finite difference approximation of the second order derivatives
along time and strike directions. See PenaltyMatrixGenerator for detail.
| Modifier and Type | Class and Description |
|---|---|
static class |
DirectIborCapletFloorletVolatilityDefinition.Builder
The bean-builder for
DirectIborCapletFloorletVolatilityDefinition. |
static class |
DirectIborCapletFloorletVolatilityDefinition.Meta
The meta-bean for
DirectIborCapletFloorletVolatilityDefinition. |
| Modifier and Type | Method and Description |
|---|---|
static DirectIborCapletFloorletVolatilityDefinition.Builder |
builder()
Returns a builder used to create an instance of the bean.
|
DoubleMatrix |
computePenaltyMatrix(DoubleArray strikes,
DoubleArray expiries)
Computes penalty matrix.
|
SurfaceMetadata |
createMetadata(RawOptionData capFloorData)
Creates surface metadata.
|
boolean |
equals(Object obj) |
DayCount |
getDayCount()
Gets the day count to measure the time in the expiry dimension.
|
IborIndex |
getIndex()
Gets the Ibor index for which the data is valid.
|
GridSurfaceInterpolator |
getInterpolator()
Gets the interpolator for the caplet volatilities.
|
double |
getLambdaExpiry()
Gets penalty intensity parameter for expiry dimension.
|
double |
getLambdaStrike()
Gets penalty intensity parameter for strike dimension.
|
IborCapletFloorletVolatilitiesName |
getName()
Gets the name of the volatilities.
|
Optional<Curve> |
getShiftCurve()
Gets the shift parameter of shifted Black model.
|
int |
hashCode() |
static DirectIborCapletFloorletVolatilityDefinition.Meta |
meta()
The meta-bean for
DirectIborCapletFloorletVolatilityDefinition. |
DirectIborCapletFloorletVolatilityDefinition.Meta |
metaBean() |
static DirectIborCapletFloorletVolatilityDefinition |
of(IborCapletFloorletVolatilitiesName name,
IborIndex index,
DayCount dayCount,
double lambdaExpiry,
double lambdaStrike,
GridSurfaceInterpolator interpolator)
Obtains an instance with zero shift.
|
static DirectIborCapletFloorletVolatilityDefinition |
of(IborCapletFloorletVolatilitiesName name,
IborIndex index,
DayCount dayCount,
double lambdaExpiry,
double lambdaStrike,
GridSurfaceInterpolator interpolator,
Curve shiftCurve)
Obtains an instance with shift curve.
|
DirectIborCapletFloorletVolatilityDefinition.Builder |
toBuilder()
Returns a builder that allows this bean to be mutated.
|
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, waitcreateCappublic static DirectIborCapletFloorletVolatilityDefinition of(IborCapletFloorletVolatilitiesName name, IborIndex index, DayCount dayCount, double lambdaExpiry, double lambdaStrike, GridSurfaceInterpolator interpolator)
name - the name of the volatilitiesindex - the Ibor indexdayCount - the day count to uselambdaExpiry - the penalty intensity parameter for time dimensionlambdaStrike - the penalty intensity parameter for strike dimensioninterpolator - the surface interpolatorpublic static DirectIborCapletFloorletVolatilityDefinition of(IborCapletFloorletVolatilitiesName name, IborIndex index, DayCount dayCount, double lambdaExpiry, double lambdaStrike, GridSurfaceInterpolator interpolator, Curve shiftCurve)
name - the name of the volatilitiesindex - the Ibor indexdayCount - the day count to uselambdaExpiry - the penalty intensity parameter for time dimensionlambdaStrike - the penalty intensity parameter for strike dimensioninterpolator - the surface interpolatorshiftCurve - the shift surfacepublic SurfaceMetadata createMetadata(RawOptionData capFloorData)
IborCapletFloorletVolatilityDefinitioncreateMetadata in interface IborCapletFloorletVolatilityDefinitioncapFloorData - the cap/floor datapublic DoubleMatrix computePenaltyMatrix(DoubleArray strikes, DoubleArray expiries)
The penalty matrix is based on the second order finite difference differentiation in PenaltyMatrixGenerator.
The number of node points in each direction must be greater than 2 in order to compute the second order derivative.
strikes - the strikesexpiries - the expiriespublic static DirectIborCapletFloorletVolatilityDefinition.Meta meta()
DirectIborCapletFloorletVolatilityDefinition.public static DirectIborCapletFloorletVolatilityDefinition.Builder builder()
public DirectIborCapletFloorletVolatilityDefinition.Meta metaBean()
metaBean in interface org.joda.beans.Beanpublic IborCapletFloorletVolatilitiesName getName()
getName in interface IborCapletFloorletVolatilityDefinitionpublic IborIndex getIndex()
getIndex in interface IborCapletFloorletVolatilityDefinitionpublic DayCount getDayCount()
getDayCount in interface IborCapletFloorletVolatilityDefinitionpublic double getLambdaExpiry()
public double getLambdaStrike()
public GridSurfaceInterpolator getInterpolator()
public Optional<Curve> getShiftCurve()
The x value of the curve is the expiry. The market volatilities are calibrated to shifted Black model if this field is not null.
public DirectIborCapletFloorletVolatilityDefinition.Builder toBuilder()
Copyright 2009-Present by OpenGamma Inc. and individual contributors
Apache v2 licensed
Additional documentation can be found at strata.opengamma.io.