net.finmath.montecarlo.interestrate.modelplugins
Class LIBORVolatilityModelFourParameterExponentialFormIntegrated
- java.lang.Object
-
- net.finmath.montecarlo.interestrate.modelplugins.LIBORVolatilityModel
-
- net.finmath.montecarlo.interestrate.modelplugins.LIBORVolatilityModelFourParameterExponentialFormIntegrated
-
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.
-
-
Constructor Summary
Constructors Constructor and Description LIBORVolatilityModelFourParameterExponentialFormIntegrated(TimeDiscretizationInterface timeDiscretization, TimeDiscretizationInterface 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{.} \]
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description java.lang.Objectclone()double[]getParameter()RandomVariableInterfacegetVolatility(int timeIndex, int liborIndex)Implement this method to complete the implementation.voidsetParameter(double[] parameter)-
Methods inherited from class net.finmath.montecarlo.interestrate.modelplugins.LIBORVolatilityModel
getLiborPeriodDiscretization, getTimeDiscretization
-
-
-
-
Constructor Detail
-
LIBORVolatilityModelFourParameterExponentialFormIntegrated
public LIBORVolatilityModelFourParameterExponentialFormIntegrated(TimeDiscretizationInterface timeDiscretization, TimeDiscretizationInterface 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 Detail
-
getParameter
public double[] getParameter()
- Specified by:
getParameterin classLIBORVolatilityModel
-
setParameter
public void setParameter(double[] parameter)
- Specified by:
setParameterin classLIBORVolatilityModel
-
getVolatility
public RandomVariableInterface getVolatility(int timeIndex, int liborIndex)
Description copied from class:LIBORVolatilityModelImplement this method to complete the implementation.- Specified by:
getVolatilityin classLIBORVolatilityModel- Parameters:
timeIndex- The time index (for timeDiscretization)liborIndex- The libor index (for liborPeriodDiscretization)- Returns:
- A random variable (e.g. as a vector of doubles) representing the volatility for each path.
-
clone
public java.lang.Object clone()
- Specified by:
clonein classLIBORVolatilityModel
-
-
DataMelt 3.0 © DataMelt by jWork.ORG