Class MertonModel
java.lang.Object
net.finmath.fouriermethod.models.MertonModel
- All Implemented Interfaces:
CharacteristicFunctionModel, Model
Implements the characteristic function of a Merton jump diffusion model.
The model is
\[
dS = \mu S dt + \sigma S dW + S dJ, \quad S(0) = S_{0},
\]
\[
dN = r N dt, \quad N(0) = N_{0},
\]
where \( W \) is Brownian motion and \( J \) is a jump process (compound Poisson process).
The process \( J \) is given by \( J(t) = \sum_{i=1}^{N(t)} (Y_{i}-1) \), where
\( \log(Y_{i}) \) are i.i.d. normals with mean \( a - \frac{1}{2} b^{2} \) and standard deviation \( b \).
Here \( a \) is the jump size mean and \( b \) is the jump size std. dev.
- Version:
- 1.0
- Author:
- Alessandro Gnoatto
-
Constructor Summary
ConstructorsConstructorDescriptionMertonModel(double initialValue, double riskFreeRate, double volatility, double jumpIntensity, double jumpSizeMean, double jumpSizeStdDev) Construct a single curve Merton jump diffusion model.MertonModel(double initialValue, double riskFreeRate, double discountRate, double volatility, double jumpIntensity, double jumpSizeMean, double jumpSizeStdDev) Construct a Merton jump diffusion model with constant rates for the forward price (i.e. repo rate minus dividend yield) and for the discount curve.MertonModel(LocalDate referenceDate, double initialValue, DiscountCurve discountCurveForForwardRate, DiscountCurve discountCurveForDiscountRate, double volatility, double jumpIntensity, double jumpSizeMean, double jumpSizeStdDev) Construct a Merton jump diffusion model with discount curves for the forward price (i.e. repo rate minus dividend yield) and for discounting. -
Method Summary
-
Constructor Details
-
MertonModel
public MertonModel(LocalDate referenceDate, double initialValue, DiscountCurve discountCurveForForwardRate, DiscountCurve discountCurveForDiscountRate, double volatility, double jumpIntensity, double jumpSizeMean, double jumpSizeStdDev) Construct a Merton jump diffusion model with discount curves for the forward price (i.e. repo rate minus dividend yield) and for discounting.- Parameters:
referenceDate- The date representing the time t = 0. All other double times are followingFloatingpointDate.initialValue- \( S_{0} \) - spot - initial value of SdiscountCurveForForwardRate- The curve specifying \( t \mapsto exp(- r^{\text{c}}(t) \cdot t) \) - with \( r^{\text{c}}(t) \) the risk free ratediscountCurveForDiscountRate- The curve specifying \( t \mapsto exp(- r^{\text{d}}(t) \cdot t) \) - with \( r^{\text{d}}(t) \) the discount ratevolatility- \( \sigma \) the initial volatility leveljumpIntensity- Coefficients of for the jump intensity.jumpSizeMean- Jump size meanjumpSizeStdDev- Jump size variance.
-
MertonModel
public MertonModel(double initialValue, double riskFreeRate, double discountRate, double volatility, double jumpIntensity, double jumpSizeMean, double jumpSizeStdDev) Construct a Merton jump diffusion model with constant rates for the forward price (i.e. repo rate minus dividend yield) and for the discount curve.- Parameters:
initialValue- \( S_{0} \) - spot - initial value of SriskFreeRate- The constant risk free rate for the drift (repo rate of the underlying).discountRate- The constant rate used for discounting.volatility- \( \sigma \) the initial volatility leveljumpIntensity- Coefficients of for the jump intensity.jumpSizeMean- Jump size meanjumpSizeStdDev- Jump size variance.
-
MertonModel
public MertonModel(double initialValue, double riskFreeRate, double volatility, double jumpIntensity, double jumpSizeMean, double jumpSizeStdDev) Construct a single curve Merton jump diffusion model.- Parameters:
initialValue- \( S_{0} \) - spot - initial value of SriskFreeRate- The constant risk free rate for the drift (repo rate of the underlying). It is also used for discounting.volatility- \( \sigma \) the initial volatility leveljumpIntensity- Coefficients of for the jump intensity.jumpSizeMean- Jump size meanjumpSizeStdDev- Jump size variance.
-
-
Method Details
-
apply
Description copied from interface:CharacteristicFunctionModelReturns the characteristic function of X(t), where X isthisstochastic process.- Specified by:
applyin interfaceCharacteristicFunctionModel- Parameters:
time- The time at which the stochastic process is observed.- Returns:
- The characteristic function of X(t).
-
getReferenceDate
- Specified by:
getReferenceDatein interfaceCharacteristicFunctionModel- Returns:
- the referenceDate
-
getInitialValue
public double getInitialValue()- Specified by:
getInitialValuein interfaceCharacteristicFunctionModel- Returns:
- the initialValue
-
getDiscountCurveForForwardRate
- Specified by:
getDiscountCurveForForwardRatein interfaceCharacteristicFunctionModel- Returns:
- the discountCurveForForwardRate
-
getRiskFreeRate
public double getRiskFreeRate()- Specified by:
getRiskFreeRatein interfaceCharacteristicFunctionModel- Returns:
- the riskFreeRate
-
getDiscountCurveForDiscountRate
- Specified by:
getDiscountCurveForDiscountRatein interfaceCharacteristicFunctionModel- Returns:
- the discountCurveForDiscountRate
-
getDiscountRate
public double getDiscountRate()- Specified by:
getDiscountRatein interfaceCharacteristicFunctionModel- Returns:
- the discountRate
-
getVolatility
public double getVolatility()- Returns:
- the volatility
-
getJumpIntensity
public double getJumpIntensity()- Returns:
- the jumpIntensity
-
getJumpSizeMean
public double getJumpSizeMean()- Returns:
- the jumpSizeMean
-
getJumpSizeStdDev
public double getJumpSizeStdDev()- Returns:
- the jumpSizeStdDev
-
toString
-