public class LIBORMarketModel extends AbstractModel implements LIBORMarketModelInterface
AbstractLIBORCovarianceModel for the specification of
(λ1,j,...,λm,j) as a covariance model.
See AbstractModelInterface for details on the implemented interface
property.set("stateSpace","NORMAL"))
AbstractModelInterface for details on the implemented interface.
AbstractLIBORCovarianceModel as a covariance model.
If the covariance model is of type AbstractLIBORCovarianceModelParametric
a calibration to swaptions can be performed.
properties allows to configure the model. The following keys may be used:
measure: Possible values:
SPOT: Simulate under spot measure. In this case, the single curve numeraire
is \( N(T_{i}) = \prod_{j=0}^{i-1} (1 + L(T_{j},T_{j+1};T_{j}) (T_{j+1}-T_{j})) \).
TERMINAL: Simulate under terminal measure. In this case, the single curve numeraire
is \( N(T_{i}) = P(T_{n};T_{i}) = \prod_{j=i}^{n-1} (1 + L(T_{j},T_{j+1};T_{i}) (T_{j+1}-T_{j}))^{-1} \).
stateSpace: Possible values:
LOGNORMAL: The state space transform is set to exp, i.e., L = exp(Y). When the covariance model is deterministic, then this is the classical lognormal LIBOR market model. Note that the covariance model may still provide a local volatility function.
NORMAL: The state space transform is set to identity, i.e., L = Y. When the covariance model is deterministic, then this is a normal LIBOR market model. Note that the covariance model may still provide a local volatility function.
liborCap: An optional Double value applied as a cap to the LIBOR rates.
May be used to limit the simulated valued to prevent values attaining POSITIVE_INFINITY and
numerical problems. To disable the cap, set liborCap to Double.POSITIVE_INFINITY.
AbstractLIBORCovarianceModelParametric.getCloneCalibrated(LIBORMarketModelInterface, AbstractLIBORMonteCarloProduct[], double[], double[], Map).| Modifier and Type | Class and Description |
|---|---|
static class |
LIBORMarketModel.CalibrationItem |
static class |
LIBORMarketModel.Driftapproximation |
static class |
LIBORMarketModel.Measure |
static class |
LIBORMarketModel.StateSpace |
| Constructor and Description |
|---|
LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization,
AnalyticModelInterface analyticModel,
ForwardCurveInterface forwardRateCurve,
DiscountCurveInterface discountCurve,
AbstractLIBORCovarianceModel covarianceModel,
LIBORMarketModel.CalibrationItem[] calibrationItems,
Map<String,?> properties)
Creates a LIBOR Market Model for given covariance.
|
LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization,
ForwardCurveInterface forwardRateCurve,
AbstractLIBORCovarianceModel covarianceModel)
Creates a LIBOR Market Model for given covariance.
|
LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization,
ForwardCurveInterface forwardRateCurve,
AbstractLIBORCovarianceModel covarianceModel,
AbstractSwaptionMarketData swaptionMarketData)
Creates a LIBOR Market Model using a given covariance model and calibrating this model
to given swaption volatility data.
|
LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization,
ForwardCurveInterface forwardRateCurve,
DiscountCurveInterface discountCurve,
AbstractLIBORCovarianceModel covarianceModel)
Creates a LIBOR Market Model for given covariance.
|
LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization,
ForwardCurveInterface forwardRateCurve,
DiscountCurveInterface discountCurve,
AbstractLIBORCovarianceModel covarianceModel,
AbstractSwaptionMarketData swaptionMarketData)
Creates a LIBOR Market Model for given covariance.
|
LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization,
ForwardCurveInterface forwardRateCurve,
DiscountCurveInterface discountCurve,
AbstractLIBORCovarianceModel covarianceModel,
AbstractSwaptionMarketData swaptionMarketData,
Map<String,?> properties)
Creates a LIBOR Market Model for given covariance.
|
LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization,
ForwardCurveInterface forwardRateCurve,
DiscountCurveInterface discountCurve,
AbstractLIBORCovarianceModel covarianceModel,
LIBORMarketModel.CalibrationItem[] calibrationItems,
Map<String,?> properties)
Creates a LIBOR Market Model for given covariance.
|
| Modifier and Type | Method and Description |
|---|---|
RandomVariableInterface |
applyStateSpaceTransform(int componentIndex,
RandomVariableInterface randomVariable)
Applied the state space transform fi to the given state random variable
such that Yi → fi(Yi) =: Xi.
|
Object |
clone() |
AnalyticModelInterface |
getAnalyticModel()
Return the associated analytic model, a collection of market date object like discount curve, forward curve
and volatility surfaces.
|
LIBORMarketModel |
getCloneWithModifiedCovarianceModel(AbstractLIBORCovarianceModel covarianceModel)
Create a new object implementing LIBORMarketModelInterface, using the new covariance model.
|
LIBORMarketModel |
getCloneWithModifiedData(Map<String,Object> dataModified)
Create a new object implementing LIBORMarketModelInterface, using the new data.
|
AbstractLIBORCovarianceModel |
getCovarianceModel()
Return the covariance model.
|
DiscountCurveInterface |
getDiscountCurve()
Return the discount curve associated the forwards.
|
RandomVariableInterface[] |
getDrift(int timeIndex,
RandomVariableInterface[] realizationAtTimeIndex,
RandomVariableInterface[] realizationPredictor)
Return the complete vector of the drift for the time index timeIndex, given that current state is realizationAtTimeIndex.
|
LIBORMarketModel.Driftapproximation |
getDriftApproximationMethod() |
RandomVariableInterface[] |
getFactorLoading(int timeIndex,
int componentIndex,
RandomVariableInterface[] realizationAtTimeIndex)
This method has to be implemented to return the factor loadings, i.e.
|
ForwardCurveInterface |
getForwardRateCurve()
Return the initial forward rate curve.
|
RandomVariableInterface[] |
getInitialState()
Returns the initial value of the state variable of the process Y, not to be
confused with the initial value of the model X (which is the state space transform
applied to this state value.
|
double[][][] |
getIntegratedLIBORCovariance()
Returns the integrated instantaneous log-forward rate covariance, i.e.,
\int_0^t_i d log(L_j) d log(L_k) dt.
|
RandomVariableInterface |
getLIBOR(int timeIndex,
int liborIndex) |
double |
getLiborPeriod(int timeIndex)
The period start corresponding to a given forward rate discretization index.
|
TimeDiscretizationInterface |
getLiborPeriodDiscretization()
The tenor time discretization of the forward rate curve.
|
int |
getLiborPeriodIndex(double time)
Same as java.util.Arrays.binarySearch(liborPeriodDiscretization,time).
|
LIBORMarketModel.Measure |
getMeasure() |
int |
getNumberOfComponents()
Returns the number of components
|
int |
getNumberOfLibors()
Get the number of LIBORs in the LIBOR discretization.
|
RandomVariableInterface |
getNumeraire(double time)
Return the numeraire at a given time.
|
AbstractSwaptionMarketData |
getSwaptionMarketData()
Return the swaption market data used for calibration (if any, may be null).
|
String |
toString() |
getInitialValue, getMonteCarloWeights, getNumberOfFactors, getProcess, getProcessValue, getTime, getTimeDiscretization, getTimeIndex, setProcessequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetNumberOfFactors, getProcess, getTimeDiscretization, setProcesspublic LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization, AnalyticModelInterface analyticModel, ForwardCurveInterface forwardRateCurve, DiscountCurveInterface discountCurve, AbstractLIBORCovarianceModel covarianceModel, LIBORMarketModel.CalibrationItem[] calibrationItems, Map<String,?> properties) throws CalculationException
properties allows to configure the model. The following keys may be used:
measure: Possible values:
SPOT (String): Simulate under spot measure.
TERMINAL (String): Simulate under terminal measure.
stateSpace: Possible values:
LOGNORMAL (String): Simulate L = exp(Y).
NORMAL (String): Simulate L = Y.
liborCap: An optional Double value applied as a cap to the LIBOR rates.
May be used to limit the simulated valued to prevent values attaining POSITIVE_INFINITY and
numerical problems. To disable the cap, set liborCap to Double.POSITIVE_INFINITY.
calibrationParameters: Possible values:
Map<String,Object> a parameter map with the following key/value pairs:
accuracy: Double specifying the required solver accuracy.
maxIterations: Integer specifying the maximum iterations for the solver.
liborPeriodDiscretization - The discretization of the interest rate curve into forward rates (tenor structure).analyticModel - The associated analytic model of this model (containing the associated market data objects like curve).forwardRateCurve - The initial values for the forward rates.discountCurve - The discount curve to use. This will create an LMM model with a deterministic zero-spread discounting adjustment.covarianceModel - The covariance model to use.calibrationItems - The vector of calibration items (a union of a product, target value and weight) for the objective function sum weight(i) * (modelValue(i)-targetValue(i).properties - Key value map specifying properties like measure and stateSpace.CalculationException - Thrown if the valuation fails, specific cause may be available via the cause() method.public LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization, ForwardCurveInterface forwardRateCurve, AbstractLIBORCovarianceModel covarianceModel) throws CalculationException
liborPeriodDiscretization - The discretization of the interest rate curve into forward rates (tenor structure).forwardRateCurve - The initial values for the forward rates.covarianceModel - The covariance model to use.CalculationException - Thrown if the valuation fails, specific cause may be available via the cause() method.public LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization, ForwardCurveInterface forwardRateCurve, DiscountCurveInterface discountCurve, AbstractLIBORCovarianceModel covarianceModel) throws CalculationException
liborPeriodDiscretization - The discretization of the interest rate curve into forward rates (tenor structure).forwardRateCurve - The initial values for the forward rates.discountCurve - The discount curve to use. This will create an LMM model with a deterministic zero-spread discounting adjustment.covarianceModel - The covariance model to use.CalculationException - Thrown if the valuation fails, specific cause may be available via the cause() method.public LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization, ForwardCurveInterface forwardRateCurve, AbstractLIBORCovarianceModel covarianceModel, AbstractSwaptionMarketData swaptionMarketData) throws CalculationException
liborPeriodDiscretization - The discretization of the interest rate curve into forward rates (tenor structure).forwardRateCurve - The initial values for the forward rates.covarianceModel - The covariance model to use.swaptionMarketData - The set of swaption values to calibrate to.CalculationException - Thrown if the valuation fails, specific cause may be available via the cause() method.public LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization, ForwardCurveInterface forwardRateCurve, DiscountCurveInterface discountCurve, AbstractLIBORCovarianceModel covarianceModel, AbstractSwaptionMarketData swaptionMarketData) throws CalculationException
liborPeriodDiscretization - The discretization of the interest rate curve into forward rates (tenor structure).forwardRateCurve - The initial values for the forward rates.discountCurve - The discount curve to use. This will create an LMM model with a deterministic zero-spread discounting adjustment.covarianceModel - The covariance model to use.swaptionMarketData - The set of swaption values to calibrate to.CalculationException - Thrown if the valuation fails, specific cause may be available via the cause() method.public LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization, ForwardCurveInterface forwardRateCurve, DiscountCurveInterface discountCurve, AbstractLIBORCovarianceModel covarianceModel, AbstractSwaptionMarketData swaptionMarketData, Map<String,?> properties) throws CalculationException
liborPeriodDiscretization - The discretization of the interest rate curve into forward rates (tenor structure).forwardRateCurve - The initial values for the forward rates.discountCurve - The discount curve to use. This will create an LMM model with a deterministic zero-spread discounting adjustment.covarianceModel - The covariance model to use.swaptionMarketData - The set of swaption values to calibrate to.properties - Key value map specifying properties like measure and stateSpace.CalculationException - Thrown if the valuation fails, specific cause may be available via the cause() method.public LIBORMarketModel(TimeDiscretizationInterface liborPeriodDiscretization, ForwardCurveInterface forwardRateCurve, DiscountCurveInterface discountCurve, AbstractLIBORCovarianceModel covarianceModel, LIBORMarketModel.CalibrationItem[] calibrationItems, Map<String,?> properties) throws CalculationException
properties allows to configure the model. The following keys may be used:
measure: Possible values:
SPOT (String): Simulate under spot measure.
TERMINAL (String): Simulate under terminal measure.
stateSpace: Possible values:
LOGNORMAL (String): Simulate L = exp(Y).
NORMAL (String): Simulate L = Y.
calibrationParameters: Possible values:
Map<String,Object> a parameter map with the following key/value pairs:
accuracy: Double specifying the required solver accuracy.
maxIterations: Integer specifying the maximum iterations for the solver.
liborPeriodDiscretization - The discretization of the interest rate curve into forward rates (tenor structure).forwardRateCurve - The initial values for the forward rates.discountCurve - The discount curve to use. This will create an LMM model with a deterministic zero-spread discounting adjustment.covarianceModel - The covariance model to use.calibrationItems - The vector of calibration items (a union of a product, target value and weight) for the objective function sum weight(i) * (modelValue(i)-targetValue(i).properties - Key value map specifying properties like measure and stateSpace.CalculationException - Thrown if the valuation fails, specific cause may be available via the cause() method.public RandomVariableInterface getNumeraire(double time) throws CalculationException
getNumeraire in interface AbstractModelInterfacetime - Time time t for which the numeraire should be returned N(t).RandomVariableInterfaceCalculationException - Thrown if the valuation fails, specific cause may be available via the cause() method.public RandomVariableInterface[] getInitialState()
AbstractModelInterfacegetInitialState in interface AbstractModelInterfacepublic RandomVariableInterface[] getDrift(int timeIndex, RandomVariableInterface[] realizationAtTimeIndex, RandomVariableInterface[] realizationPredictor)
getDrift in interface AbstractModelInterfacetimeIndex - Time index i for which the drift should be returned μ(ti).realizationAtTimeIndex - Time current forward rate vector at time index i which should be used in the calculation.realizationPredictor - The given realization at timeIndex+1 or null of no predictor is available.RandomVariable[]The calculation of the drift is consistent with the calculation of the numeraire in getNumeraire.public RandomVariableInterface[] getFactorLoading(int timeIndex, int componentIndex, RandomVariableInterface[] realizationAtTimeIndex)
AbstractModelInterfacegetFactorLoading in interface AbstractModelInterfacetimeIndex - The time index (related to the model times discretization).componentIndex - The index j of the driven component.realizationAtTimeIndex - The realization of X at the time corresponding to timeIndex (in order to implement local and stochastic volatlity models).public RandomVariableInterface applyStateSpaceTransform(int componentIndex, RandomVariableInterface randomVariable)
AbstractModelInterfaceapplyStateSpaceTransform in interface AbstractModelInterfacecomponentIndex - The component index i.randomVariable - The state random variable Yi.public LIBORMarketModel.Driftapproximation getDriftApproximationMethod()
public RandomVariableInterface getLIBOR(int timeIndex, int liborIndex) throws CalculationException
getLIBOR in interface LIBORMarketModelInterfaceCalculationExceptionpublic int getNumberOfComponents()
AbstractModelInterfacegetNumberOfComponents in interface AbstractModelInterfacepublic int getNumberOfLibors()
LIBORMarketModelInterfacegetNumberOfLibors in interface LIBORMarketModelInterfacepublic double getLiborPeriod(int timeIndex)
LIBORMarketModelInterfacegetLiborPeriod in interface LIBORMarketModelInterfacetimeIndex - The index corresponding to a given time (interpretation is start of period)public int getLiborPeriodIndex(double time)
LIBORMarketModelInterfacegetLiborPeriodIndex in interface LIBORMarketModelInterfacetime - The period start.public TimeDiscretizationInterface getLiborPeriodDiscretization()
LIBORMarketModelInterfacegetLiborPeriodDiscretization in interface LIBORMarketModelInterfacepublic LIBORMarketModel.Measure getMeasure()
public double[][][] getIntegratedLIBORCovariance()
LIBORMarketModelInterfaceintegratedLIBORCovariance[timeIndex][componentIndex1][componentIndex2].getIntegratedLIBORCovariance in interface LIBORMarketModelInterfacepublic AnalyticModelInterface getAnalyticModel()
LIBORMarketModelInterfacegetAnalyticModel in interface LIBORMarketModelInterfacepublic DiscountCurveInterface getDiscountCurve()
LIBORMarketModelInterfacegetDiscountCurve in interface LIBORMarketModelInterfacepublic ForwardCurveInterface getForwardRateCurve()
LIBORMarketModelInterfacegetForwardRateCurve in interface LIBORMarketModelInterfacepublic AbstractSwaptionMarketData getSwaptionMarketData()
public AbstractLIBORCovarianceModel getCovarianceModel()
LIBORMarketModelInterfacegetCovarianceModel in interface LIBORMarketModelInterfacepublic LIBORMarketModel getCloneWithModifiedCovarianceModel(AbstractLIBORCovarianceModel covarianceModel)
LIBORMarketModelInterfacegetCloneWithModifiedCovarianceModel in interface LIBORMarketModelInterfacecovarianceModel - A covariance modelLIBORMarketModel using the specified covariance model.public LIBORMarketModel getCloneWithModifiedData(Map<String,Object> dataModified) throws CalculationException
LIBORMarketModelInterfacegetCloneWithModifiedData in interface LIBORMarketModelInterfacedataModified - A map with values to be used in constructions (keys are identical to parameter names of the constructors).CalculationException - Thrown if the valuation fails, specific cause may be available via the cause() method.Copyright © 2015. All rights reserved.