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
ConstructorDescriptionMertonModel
(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.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. -
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:CharacteristicFunctionModel
Returns the characteristic function of X(t), where X isthis
stochastic process.- Specified by:
apply
in interfaceCharacteristicFunctionModel
- Parameters:
time
- The time at which the stochastic process is observed.- Returns:
- The characteristic function of X(t).
-
getReferenceDate
- Returns:
- the referenceDate
-
getInitialValue
public double getInitialValue()- Returns:
- the initialValue
-
getDiscountCurveForForwardRate
- Returns:
- the discountCurveForForwardRate
-
getRiskFreeRate
public double getRiskFreeRate()- Returns:
- the riskFreeRate
-
getDiscountCurveForDiscountRate
- Returns:
- the discountCurveForDiscountRate
-
getDiscountRate
public double getDiscountRate()- 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
-