Module net.finmath.lib
Class LIBORVolatilityModelFourParameterExponentialFormIntegrated
java.lang.Object
net.finmath.montecarlo.interestrate.models.covariance.LIBORVolatilityModel
net.finmath.montecarlo.interestrate.models.covariance.LIBORVolatilityModelFourParameterExponentialFormIntegrated
- All Implemented Interfaces:
Serializable
public class LIBORVolatilityModelFourParameterExponentialFormIntegrated
extends LIBORVolatilityModel
Implements the volatility model
\[
\sigma_{i}(t_{j}) = \sqrt{ \frac{1}{t_{j+1}-t_{j}} \int_{t_{j}}^{t_{j+1}} \left( ( a + b (T_{i}-t) ) exp(-c (T_{i}-t)) + d \right)^{2} \ \mathrm{d}t } \text{.}
\]
The parameters here have some interpretation:
- The parameter a: an initial volatility level.
- The parameter b: the slope at the short end (shortly before maturity).
- The parameter c: exponential decay of the volatility in time-to-maturity.
- The parameter d: if c > 0 this is the very long term volatility level.
- Version:
- 1.1
- Author:
- Christian Fries
- See Also:
- Serialized Form
-
Constructor Summary
ConstructorsConstructorDescriptionLIBORVolatilityModelFourParameterExponentialFormIntegrated(RandomVariableFactory randomVariableFactory, TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, double a, double b, double c, double d, boolean isCalibrateable)
Creates the volatility model \[ \sigma_{i}(t_{j}) = \sqrt{ \frac{1}{t_{j+1}-t_{j}} \int_{t_{j}}^{t_{j+1}} \left( ( a + b (T_{i}-t) ) \exp(-c (T_{i}-t)) + d \right)^{2} \ \mathrm{d}t } \text{.} \]LIBORVolatilityModelFourParameterExponentialFormIntegrated(TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, double a, double b, double c, double d, boolean isCalibrateable)
Creates the volatility model \[ \sigma_{i}(t_{j}) = \sqrt{ \frac{1}{t_{j+1}-t_{j}} \int_{t_{j}}^{t_{j+1}} \left( ( a + b (T_{i}-t) ) \exp(-c (T_{i}-t)) + d \right)^{2} \ \mathrm{d}t } \text{.} \]LIBORVolatilityModelFourParameterExponentialFormIntegrated(TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, RandomVariable a, RandomVariable b, RandomVariable c, RandomVariable d, boolean isCalibrateable)
Creates the volatility model \[ \sigma_{i}(t_{j}) = \sqrt{ \frac{1}{t_{j+1}-t_{j}} \int_{t_{j}}^{t_{j+1}} \left( ( a + b (T_{i}-t) ) \exp(-c (T_{i}-t)) + d \right)^{2} \ \mathrm{d}t } \text{.} \] -
Method Summary
Modifier and TypeMethodDescriptionclone()
getCloneWithModifiedData(Map<String,Object> dataModified)
Returns a clone of this model where the specified properties have been modified.getCloneWithModifiedParameter(RandomVariable[] parameter)
getVolatility(int timeIndex, int liborIndex)
Implement this method to complete the implementation.Methods inherited from class net.finmath.montecarlo.interestrate.models.covariance.LIBORVolatilityModel
getLiborPeriodDiscretization, getParameterAsDouble, getTimeDiscretization
-
Constructor Details
-
LIBORVolatilityModelFourParameterExponentialFormIntegrated
public LIBORVolatilityModelFourParameterExponentialFormIntegrated(RandomVariableFactory randomVariableFactory, TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, double a, double b, double c, double d, boolean isCalibrateable)Creates the volatility model \[ \sigma_{i}(t_{j}) = \sqrt{ \frac{1}{t_{j+1}-t_{j}} \int_{t_{j}}^{t_{j+1}} \left( ( a + b (T_{i}-t) ) \exp(-c (T_{i}-t)) + d \right)^{2} \ \mathrm{d}t } \text{.} \]- Parameters:
randomVariableFactory
- The random variable factor used to construct random variables from the parameters.timeDiscretization
- The simulation time discretization tj.liborPeriodDiscretization
- The period time discretization Ti.a
- The parameter a: an initial volatility level.b
- The parameter b: the slope at the short end (shortly before maturity).c
- The parameter c: exponential decay of the volatility in time-to-maturity.d
- The parameter d: if c > 0 this is the very long term volatility level.isCalibrateable
- Set this to true, if the parameters are available for calibration.
-
LIBORVolatilityModelFourParameterExponentialFormIntegrated
public LIBORVolatilityModelFourParameterExponentialFormIntegrated(TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, RandomVariable a, RandomVariable b, RandomVariable c, RandomVariable d, boolean isCalibrateable)Creates the volatility model \[ \sigma_{i}(t_{j}) = \sqrt{ \frac{1}{t_{j+1}-t_{j}} \int_{t_{j}}^{t_{j+1}} \left( ( a + b (T_{i}-t) ) \exp(-c (T_{i}-t)) + d \right)^{2} \ \mathrm{d}t } \text{.} \]- Parameters:
timeDiscretization
- The simulation time discretization tj.liborPeriodDiscretization
- The period time discretization Ti.a
- The parameter a: an initial volatility level.b
- The parameter b: the slope at the short end (shortly before maturity).c
- The parameter c: exponential decay of the volatility in time-to-maturity.d
- The parameter d: if c > 0 this is the very long term volatility level.isCalibrateable
- Set this to true, if the parameters are available for calibration.
-
LIBORVolatilityModelFourParameterExponentialFormIntegrated
public LIBORVolatilityModelFourParameterExponentialFormIntegrated(TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, double a, double b, double c, double d, boolean isCalibrateable)Creates the volatility model \[ \sigma_{i}(t_{j}) = \sqrt{ \frac{1}{t_{j+1}-t_{j}} \int_{t_{j}}^{t_{j+1}} \left( ( a + b (T_{i}-t) ) \exp(-c (T_{i}-t)) + d \right)^{2} \ \mathrm{d}t } \text{.} \]- Parameters:
timeDiscretization
- The simulation time discretization tj.liborPeriodDiscretization
- The period time discretization Ti.a
- The parameter a: an initial volatility level.b
- The parameter b: the slope at the short end (shortly before maturity).c
- The parameter c: exponential decay of the volatility in time-to-maturity.d
- The parameter d: if c > 0 this is the very long term volatility level.isCalibrateable
- Set this to true, if the parameters are available for calibration.
-
-
Method Details
-
getParameter
- Specified by:
getParameter
in classLIBORVolatilityModel
-
getCloneWithModifiedParameter
public LIBORVolatilityModelFourParameterExponentialFormIntegrated getCloneWithModifiedParameter(RandomVariable[] parameter)- Specified by:
getCloneWithModifiedParameter
in classLIBORVolatilityModel
-
getVolatility
Description copied from class:LIBORVolatilityModel
Implement this method to complete the implementation.- Specified by:
getVolatility
in classLIBORVolatilityModel
- Parameters:
timeIndex
- The time index (for timeDiscretizationFromArray)liborIndex
- The libor index (for liborPeriodDiscretization)- Returns:
- A random variable (e.g. as a vector of doubles) representing the volatility for each path.
-
clone
- Specified by:
clone
in classLIBORVolatilityModel
-
getCloneWithModifiedData
Description copied from class:LIBORVolatilityModel
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 mapdataModified
. If data is provided which is ignored by the model no exception may be thrown. Furthermore the structure of the correlation 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 classLIBORVolatilityModel
- 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).
-