Class BlendedLocalVolatilityModel

  • All Implemented Interfaces:
    Serializable, LIBORCovarianceModel, LIBORCovarianceModelCalibrateable

    public class BlendedLocalVolatilityModel
    extends AbstractLIBORCovarianceModelParametric
    Blended model (or displaced diffusion model) build on top of a standard covariance model. The model constructed for the i-th factor loading is \[ ( a + (1-a) L_{i}(t) ) F_{i}(t) \text{,} \] or \[ ( a L_{i,0} + (1-a) L_{i}(t) ) F_{i}(t) \text{,} \] if an initial forward curve \( i \mapsto L_{i,0} \) is given, where a is the displacement or blending parameter and Li is the realization of the i-th component of the stochastic process and Fi is the factor loading from the given covariance model. If a forward curve is provided, the deterministic value Li,0 is calculated form this curve (using fixing in Ti), otherwise it is replaced by 1. The parameter of this model is a joint parameter vector, consisting of the parameter vector of the given base covariance model and appending the displacement parameter at the end. If this model is not calibrateable, its parameter vector is that of the covariance model, i.e., only the displacement parameter will be not part of the calibration.
    Version:
    1.0
    Author:
    Christian Fries
    See Also:
    Serialized Form
    • Constructor Detail

      • BlendedLocalVolatilityModel

        public BlendedLocalVolatilityModel​(AbstractLIBORCovarianceModelParametric covarianceModel,
                                           ForwardCurve forwardCurve,
                                           RandomVariable displacement,
                                           boolean isCalibrateable)
        Displaced diffusion model build on top of a standard covariance model. The model constructed is (a L0 + (1-a)L) F where a is the displacement and L is the component of the stochastic process and F is the factor loading from the given covariance model. The parameter of this model is a joint parameter vector, where the first entry is the displacement and the remaining entries are the parameter vector of the given base covariance model. If this model is not calibrateable, its parameter vector is that of the covariance model.
        Parameters:
        covarianceModel - The given covariance model specifying the factor loadings F.
        forwardCurve - The given forward curve L0
        displacement - The displacement a.
        isCalibrateable - If true, the parameter a is a free parameter. Note that the covariance model may have its own parameter calibration settings.
      • BlendedLocalVolatilityModel

        public BlendedLocalVolatilityModel​(RandomVariableFactory abstractRandomVariableFactory,
                                           AbstractLIBORCovarianceModelParametric covarianceModel,
                                           ForwardCurve forwardCurve,
                                           double displacement,
                                           boolean isCalibrateable)
        Displaced diffusion model build on top of a standard covariance model. The model constructed is (a L0 + (1-a)L) F where a is the displacement and L is the component of the stochastic process and F is the factor loading from the given covariance model. The parameter of this model is a joint parameter vector, where the first entry is the displacement and the remaining entries are the parameter vector of the given base covariance model. If this model is not calibrateable, its parameter vector is that of the covariance model.
        Parameters:
        abstractRandomVariableFactory - The factory used to create RandomVariable objects from constants.
        covarianceModel - The given covariance model specifying the factor loadings F.
        forwardCurve - The given forward curve L0
        displacement - The displacement a.
        isCalibrateable - If true, the parameter a is a free parameter. Note that the covariance model may have its own parameter calibration settings.
      • BlendedLocalVolatilityModel

        public BlendedLocalVolatilityModel​(RandomVariableFactory abstractRandomVariableFactory,
                                           AbstractLIBORCovarianceModelParametric covarianceModel,
                                           double displacement,
                                           boolean isCalibrateable)
        Displaced diffusion model build on top of a standard covariance model. The model performs a linear interpolation of a log-normal model (a = 0) and a normal model (a = 1). The model constructed is (a + (1-a)L) F where a is the displacement and L is the component of the stochastic process and F is the factor loading loading from the given covariance model. The parameter of this model is a joint parameter vector, where the first entry is the displacement and the remaining entries are the parameter vector of the given base covariance model. If this model is not calibrateable, its parameter vector is that of the covariance model.
        Parameters:
        abstractRandomVariableFactory - The factory used to create RandomVariable objects from constants.
        covarianceModel - The given covariance model specifying the factor loadings F.
        displacement - The displacement a.
        isCalibrateable - If true, the parameter a is a free parameter. Note that the covariance model may have its own parameter calibration settings.
      • BlendedLocalVolatilityModel

        public BlendedLocalVolatilityModel​(AbstractLIBORCovarianceModelParametric covarianceModel,
                                           ForwardCurve forwardCurve,
                                           double displacement,
                                           boolean isCalibrateable)
        Displaced diffusion model build on top of a standard covariance model. The model constructed is (a L0 + (1-a)L) F where a is the displacement and L is the component of the stochastic process and F is the factor loading from the given covariance model. The parameter of this model is a joint parameter vector, where the first entry is the displacement and the remaining entries are the parameter vector of the given base covariance model. If this model is not calibrateable, its parameter vector is that of the covariance model.
        Parameters:
        covarianceModel - The given covariance model specifying the factor loadings F.
        forwardCurve - The given forward curve L0
        displacement - The displacement a.
        isCalibrateable - If true, the parameter a is a free parameter. Note that the covariance model may have its own parameter calibration settings.
      • BlendedLocalVolatilityModel

        public BlendedLocalVolatilityModel​(AbstractLIBORCovarianceModelParametric covarianceModel,
                                           double displacement,
                                           boolean isCalibrateable)
        Displaced diffusion model build on top of a standard covariance model. The model performs a linear interpolation of a log-normal model (a = 0) and a normal model (a = 1). The model constructed is (a + (1-a)L) F where a is the displacement and L is the component of the stochastic process and F is the factor loading loading from the given covariance model. The parameter of this model is a joint parameter vector, where the first entry is the displacement and the remaining entries are the parameter vector of the given base covariance model. If this model is not calibrateable, its parameter vector is that of the covariance model.
        Parameters:
        covarianceModel - The given covariance model specifying the factor loadings F.
        displacement - The displacement a.
        isCalibrateable - If true, the parameter a is a free parameter. Note that the covariance model may have its own parameter calibration settings.
    • Method Detail

      • getBaseCovarianceModel

        public AbstractLIBORCovarianceModelParametric getBaseCovarianceModel()
        Returns the base covariance model, i.e., the model providing the factor loading F such that this model's i-th factor loading is (a Li,0 + (1-a)Li(t)) Fi(t) where a is the displacement and Li is the realization of the i-th component of the stochastic process and Fi is the factor loading loading from the given covariance model.
        Returns:
        The base covariance model.
      • getFactorLoading

        public RandomVariable[] getFactorLoading​(int timeIndex,
                                                 int component,
                                                 RandomVariable[] realizationAtTimeIndex)
        Description copied from interface: LIBORCovarianceModel
        Return the factor loading for a given time index and component index. The factor loading is the vector fi such that the scalar product
        fjfk = fj,1fk,1 + ... + fj,mfk,m
        is the instantaneous covariance of the component j and k.
        Specified by:
        getFactorLoading in interface LIBORCovarianceModel
        Specified by:
        getFactorLoading in class AbstractLIBORCovarianceModel
        Parameters:
        timeIndex - The time index at which factor loading is requested.
        component - The index of the component i.
        realizationAtTimeIndex - The realization of the stochastic process (may be used to implement local volatility/covariance/correlation models).
        Returns:
        The factor loading fi(t).
      • getFactorLoadingPseudoInverse

        public RandomVariable getFactorLoadingPseudoInverse​(int timeIndex,
                                                            int component,
                                                            int factor,
                                                            RandomVariable[] realizationAtTimeIndex)
        Description copied from interface: LIBORCovarianceModel
        Returns the pseudo inverse of the factor matrix.
        Specified by:
        getFactorLoadingPseudoInverse in interface LIBORCovarianceModel
        Specified by:
        getFactorLoadingPseudoInverse in class AbstractLIBORCovarianceModel
        Parameters:
        timeIndex - The time index at which factor loading inverse is requested.
        component - The index of the component i.
        factor - The index of the factor j.
        realizationAtTimeIndex - The realization of the stochastic process (may be used to implement local volatility/covariance/correlation models).
        Returns:
        The entry of the pseudo-inverse of the factor loading matrix.
      • getCloneWithModifiedData

        public AbstractLIBORCovarianceModelParametric getCloneWithModifiedData​(Map<String,​Object> dataModified)
                                                                        throws CalculationException
        Description copied from interface: LIBORCovarianceModel
        Returns a clone of this model where the specified properties have been modified. Note that there is no guarantee that a model reacts on a specification of a properties in the parameter map dataModified. If data is provided which is ignored by the model no exception may be thrown. Furthermore the structure of the covariance model has to match changed data. A change of the time discretizations may requires a change in the parameters but this function will just insert the new time discretization without changing the parameters. An exception may not be thrown.
        Specified by:
        getCloneWithModifiedData in interface LIBORCovarianceModel
        Specified by:
        getCloneWithModifiedData in class AbstractLIBORCovarianceModel
        Parameters:
        dataModified - Key-value-map of parameters to modify.
        Returns:
        A clone of this model (or a new instance of this model if no parameter was modified).
        Throws:
        CalculationException - Thrown when the model could not be created.