public class MertonModel extends AbstractProcessModel
MonteCarloProcess via the specification of
\( f = exp \), \( \mu = r - \frac{1}{2} \sigma^2 - (exp(a)-1) \lambda \), \( \lambda_{1,1} = \sigma, \lambda_{1,2} = a - \frac{1}{2} b^2, \lambda_{1,3} = b \), i.e.,
of the SDE
\[
dX = \mu dt + \lambda_{1,1} dW + \lambda_{1,2} dN + \lambda_{1,3} Z dN, \quad X(0) = \log(S_{0}),
\]
with \( S = f(X) \). See MonteCarloProcess for the notation.
For an example on the construction of the three factors \( dW \), \( dN \), and \( Z dN \) see MonteCarloMertonModel.MonteCarloMertonModel,
The interface for numerical schemes.,
The interface for models provinding parameters to numerical schemes.| Constructor and Description |
|---|
MertonModel(double initialValue,
double riskFreeRate,
double volatility,
double jumpIntensity,
double jumpSizeMean,
double jumpSizeStDev)
Create a Heston model.
|
| Modifier and Type | Method and Description |
|---|---|
RandomVariable |
applyStateSpaceTransform(int componentIndex,
RandomVariable randomVariable)
Applies the state space transform fi to the given state random variable
such that Yi → fi(Yi) =: Xi.
|
RandomVariable |
applyStateSpaceTransformInverse(int componentIndex,
RandomVariable randomVariable) |
ProcessModel |
getCloneWithModifiedData(Map<String,Object> dataModified)
Returns a clone of this model where the specified properties have been modified.
|
RandomVariable[] |
getDrift(int timeIndex,
RandomVariable[] realizationAtTimeIndex,
RandomVariable[] realizationPredictor)
This method has to be implemented to return the drift, i.e.
|
RandomVariable[] |
getFactorLoading(int timeIndex,
int componentIndex,
RandomVariable[] realizationAtTimeIndex)
This method has to be implemented to return the factor loadings, i.e.
|
RandomVariable[] |
getInitialState()
Returns the initial value of the state variable of the process Y, not to be
confused with the initial value of the model X (which is the state space transform
applied to this state value.
|
double |
getJumpIntensity() |
double |
getJumpSizeMean() |
double |
getJumpSizeStdDev() |
int |
getNumberOfComponents()
Returns the number of components
|
RandomVariable |
getNumeraire(double time)
Return the numeraire at a given time index.
|
RandomVariable |
getRandomVariableForConstant(double value)
Return a random variable initialized with a constant using the models random variable factory.
|
double |
getRiskFreeRate() |
double |
getVolatility() |
getInitialValue, getMonteCarloWeights, getNumberOfFactors, getProcess, getProcessValue, getReferenceDate, getTime, getTimeDiscretization, getTimeIndex, setProcesspublic MertonModel(double initialValue,
double riskFreeRate,
double volatility,
double jumpIntensity,
double jumpSizeMean,
double jumpSizeStDev)
initialValue - Spot value.riskFreeRate - The risk free rate.volatility - The log volatility.jumpIntensity - The intensity parameter lambda of the compound Poisson process.jumpSizeMean - The mean jump size of the normal distributes jump sizes of the compound Poisson process.jumpSizeStDev - The standard deviation of the normal distributes jump sizes of the compound Poisson process.public int getNumberOfComponents()
ProcessModelpublic RandomVariable applyStateSpaceTransform(int componentIndex, RandomVariable randomVariable)
ProcessModelcomponentIndex - The component index i.randomVariable - The state random variable Yi.public RandomVariable applyStateSpaceTransformInverse(int componentIndex, RandomVariable randomVariable)
public RandomVariable[] getInitialState()
ProcessModelpublic RandomVariable getNumeraire(double time) throws CalculationException
ProcessModeltime - The time t for which the numeraire N(t) should be returned.RandomVariableFromDoubleArrayCalculationException - Thrown if the valuation fails, specific cause may be available via the cause() method.public RandomVariable[] getDrift(int timeIndex, RandomVariable[] realizationAtTimeIndex, RandomVariable[] realizationPredictor)
ProcessModeltimeIndex - The time index (related to the model times discretization).realizationAtTimeIndex - The given realization at timeIndexrealizationPredictor - The given realization at timeIndex+1 or null if no predictor is available.public RandomVariable[] getFactorLoading(int timeIndex, int componentIndex, RandomVariable[] realizationAtTimeIndex)
ProcessModeltimeIndex - The time index (related to the model times discretization).componentIndex - The index j of the driven component.realizationAtTimeIndex - The realization of X at the time corresponding to timeIndex (in order to implement local and stochastic volatlity models).public RandomVariable getRandomVariableForConstant(double value)
ProcessModelvalue - The constant value.public ProcessModel getCloneWithModifiedData(Map<String,Object> dataModified)
ProcessModeldataModified. If data is provided which is ignored by the model
no exception may be thrown.dataModified - Key-value-map of parameters to modify.public double getRiskFreeRate()
public double getVolatility()
public double getJumpIntensity()
public double getJumpSizeMean()
public double getJumpSizeStdDev()
Copyright © 2019. All rights reserved.