Class FDMBatesModel
- All Implemented Interfaces:
FiniteDifferenceBoundary, FiniteDifferenceEquityModel, FiniteDifferenceModel, Model
State variables are (S, v) where S is the spot and v
is the instantaneous variance.
The local part of the model coincides with the Heston model, while the jump
part is supplied separately through getJumpComponent().
Hence:
FDMHestonModel.getDrift(double, double...)returns the local drift vector of the state variables, inherited fromFDMHestonModel,FDMHestonModel.getFactorLoading(double, double...)returns the local factor loading matrix, inherited fromFDMHestonModel,getJumpComponent()returns the finite-activity Bates jump component acting on the spot variable.
The constructor argument order follows the Heston constructors first and then appends the jump parameters.
- Author:
- Alessandro Gnoatto
-
Constructor Summary
ConstructorsConstructorDescriptionFDMBatesModel(double initialSpot, double initialVariance, double riskFreeRate, double dividendYieldRate, double kappa, double thetaV, double sigma, double rho, double jumpIntensity, double jumpMean, double jumpStdDev, double lowerIntegrationBound, double upperIntegrationBound, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model from constant rates and jump parameters.FDMBatesModel(double initialSpot, double initialVariance, double riskFreeRate, double kappa, double thetaV, double sigma, double rho, double jumpIntensity, double jumpMean, double jumpStdDev, double lowerIntegrationBound, double upperIntegrationBound, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model from a constant risk-free rate and zero dividend yield, using jump parameters.FDMBatesModel(double initialSpot, double initialVariance, double riskFreeRate, double dividendYieldRate, double kappa, double thetaV, double sigma, double rho, BatesJumpComponent jumpComponent, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model from constant rates and an explicit jump component.FDMBatesModel(double initialSpot, double initialVariance, double riskFreeRate, double kappa, double thetaV, double sigma, double rho, BatesJumpComponent jumpComponent, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model from a constant risk-free rate and zero dividend yield, using an explicit jump component.FDMBatesModel(double initialSpot, double initialVariance, DiscountCurve riskFreeCurve, double kappa, double thetaV, double sigma, double rho, double jumpIntensity, double jumpMean, double jumpStdDev, double lowerIntegrationBound, double upperIntegrationBound, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model without dividend yield curve, using jump parameters.FDMBatesModel(double initialSpot, double initialVariance, DiscountCurve riskFreeCurve, double kappa, double thetaV, double sigma, double rho, BatesJumpComponent jumpComponent, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model without dividend yield curve, using an explicit jump component.FDMBatesModel(double initialSpot, double initialVariance, DiscountCurve riskFreeCurve, DiscountCurve dividendYieldCurve, double kappa, double thetaV, double sigma, double rho, double jumpIntensity, double jumpMean, double jumpStdDev, double lowerIntegrationBound, double upperIntegrationBound, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model from discount curves and jump parameters.FDMBatesModel(double initialSpot, double initialVariance, DiscountCurve riskFreeCurve, DiscountCurve dividendYieldCurve, double kappa, double thetaV, double sigma, double rho, BatesJumpComponent jumpComponent, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model from discount curves and an explicit jump component. -
Method Summary
Modifier and TypeMethodDescriptionReturns the Bates jump component.getCloneWithModifiedSpaceTimeDiscretization(SpaceTimeDiscretization newSpaceTimeDiscretization) Returns a clone of this model with a modified space-time discretization.Returns the optional jump component of the infinitesimal generator.Methods inherited from class FDMHestonModel
getBoundaryConditionsAtLowerBoundary, getBoundaryConditionsAtUpperBoundary, getCovariance, getDividendYieldCurve, getDrift, getFactorLoading, getInitialValue, getKappa, getRho, getRiskFreeCurve, getSigma, getSpaceTimeDiscretization, getThetaVMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface FiniteDifferenceEquityModel
getDividendYieldCurves
-
Constructor Details
-
FDMBatesModel
public FDMBatesModel(double initialSpot, double initialVariance, DiscountCurve riskFreeCurve, DiscountCurve dividendYieldCurve, double kappa, double thetaV, double sigma, double rho, BatesJumpComponent jumpComponent, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model from discount curves and an explicit jump component.- Parameters:
initialSpot- Initial spot price.initialVariance- Initial variance.riskFreeCurve- Risk-free discount curve.dividendYieldCurve- Dividend yield discount curve.kappa- Mean reversion speed of variance.thetaV- Long-term mean of variance.sigma- Vol-of-vol parameter.rho- Correlation between the Brownian motions.jumpComponent- Bates jump component.spaceTimeDiscretization- Grid object defining the spatial discretization.
-
FDMBatesModel
public FDMBatesModel(double initialSpot, double initialVariance, DiscountCurve riskFreeCurve, DiscountCurve dividendYieldCurve, double kappa, double thetaV, double sigma, double rho, double jumpIntensity, double jumpMean, double jumpStdDev, double lowerIntegrationBound, double upperIntegrationBound, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model from discount curves and jump parameters.- Parameters:
initialSpot- Initial spot price.initialVariance- Initial variance.riskFreeCurve- Risk-free discount curve.dividendYieldCurve- Dividend yield discount curve.kappa- Mean reversion speed of variance.thetaV- Long-term mean of variance.sigma- Vol-of-vol parameter.rho- Correlation between the Brownian motions.jumpIntensity- Jump intensity.jumpMean- Mean of the log-jump size.jumpStdDev- Standard deviation of the log-jump size.lowerIntegrationBound- Lower integration bound for the log-jump variable.upperIntegrationBound- Upper integration bound for the log-jump variable.spaceTimeDiscretization- Grid object defining the spatial discretization.
-
FDMBatesModel
public FDMBatesModel(double initialSpot, double initialVariance, DiscountCurve riskFreeCurve, double kappa, double thetaV, double sigma, double rho, BatesJumpComponent jumpComponent, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model without dividend yield curve, using an explicit jump component.- Parameters:
initialSpot- Initial spot price.initialVariance- Initial variance.riskFreeCurve- Risk-free discount curve.kappa- Mean reversion speed of variance.thetaV- Long-term mean of variance.sigma- Vol-of-vol parameter.rho- Correlation between the Brownian motions.jumpComponent- Bates jump component.spaceTimeDiscretization- Grid object defining the spatial discretization.
-
FDMBatesModel
public FDMBatesModel(double initialSpot, double initialVariance, DiscountCurve riskFreeCurve, double kappa, double thetaV, double sigma, double rho, double jumpIntensity, double jumpMean, double jumpStdDev, double lowerIntegrationBound, double upperIntegrationBound, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model without dividend yield curve, using jump parameters.- Parameters:
initialSpot- Initial spot price.initialVariance- Initial variance.riskFreeCurve- Risk-free discount curve.kappa- Mean reversion speed of variance.thetaV- Long-term mean of variance.sigma- Vol-of-vol parameter.rho- Correlation between the Brownian motions.jumpIntensity- Jump intensity.jumpMean- Mean of the log-jump size.jumpStdDev- Standard deviation of the log-jump size.lowerIntegrationBound- Lower integration bound for the log-jump variable.upperIntegrationBound- Upper integration bound for the log-jump variable.spaceTimeDiscretization- Grid object defining the spatial discretization.
-
FDMBatesModel
public FDMBatesModel(double initialSpot, double initialVariance, double riskFreeRate, double dividendYieldRate, double kappa, double thetaV, double sigma, double rho, BatesJumpComponent jumpComponent, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model from constant rates and an explicit jump component.- Parameters:
initialSpot- Initial spot price.initialVariance- Initial variance.riskFreeRate- Constant risk-free rate.dividendYieldRate- Constant dividend yield rate.kappa- Mean reversion speed of variance.thetaV- Long-term mean of variance.sigma- Vol-of-vol parameter.rho- Correlation between the Brownian motions.jumpComponent- Bates jump component.spaceTimeDiscretization- Grid object defining the spatial discretization.
-
FDMBatesModel
public FDMBatesModel(double initialSpot, double initialVariance, double riskFreeRate, double dividendYieldRate, double kappa, double thetaV, double sigma, double rho, double jumpIntensity, double jumpMean, double jumpStdDev, double lowerIntegrationBound, double upperIntegrationBound, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model from constant rates and jump parameters.- Parameters:
initialSpot- Initial spot price.initialVariance- Initial variance.riskFreeRate- Constant risk-free rate.dividendYieldRate- Constant dividend yield rate.kappa- Mean reversion speed of variance.thetaV- Long-term mean of variance.sigma- Vol-of-vol parameter.rho- Correlation between the Brownian motions.jumpIntensity- Jump intensity.jumpMean- Mean of the log-jump size.jumpStdDev- Standard deviation of the log-jump size.lowerIntegrationBound- Lower integration bound for the log-jump variable.upperIntegrationBound- Upper integration bound for the log-jump variable.spaceTimeDiscretization- Grid object defining the spatial discretization.
-
FDMBatesModel
public FDMBatesModel(double initialSpot, double initialVariance, double riskFreeRate, double kappa, double thetaV, double sigma, double rho, BatesJumpComponent jumpComponent, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model from a constant risk-free rate and zero dividend yield, using an explicit jump component.- Parameters:
initialSpot- Initial spot price.initialVariance- Initial variance.riskFreeRate- Constant risk-free rate.kappa- Mean reversion speed of variance.thetaV- Long-term mean of variance.sigma- Vol-of-vol parameter.rho- Correlation between the Brownian motions.jumpComponent- Bates jump component.spaceTimeDiscretization- Grid object defining the spatial discretization.
-
FDMBatesModel
public FDMBatesModel(double initialSpot, double initialVariance, double riskFreeRate, double kappa, double thetaV, double sigma, double rho, double jumpIntensity, double jumpMean, double jumpStdDev, double lowerIntegrationBound, double upperIntegrationBound, SpaceTimeDiscretization spaceTimeDiscretization) Constructs a Bates finite difference model from a constant risk-free rate and zero dividend yield, using jump parameters.- Parameters:
initialSpot- Initial spot price.initialVariance- Initial variance.riskFreeRate- Constant risk-free rate.kappa- Mean reversion speed of variance.thetaV- Long-term mean of variance.sigma- Vol-of-vol parameter.rho- Correlation between the Brownian motions.jumpIntensity- Jump intensity.jumpMean- Mean of the log-jump size.jumpStdDev- Standard deviation of the log-jump size.lowerIntegrationBound- Lower integration bound for the log-jump variable.upperIntegrationBound- Upper integration bound for the log-jump variable.spaceTimeDiscretization- Grid object defining the spatial discretization.
-
-
Method Details
-
getJumpComponent
Description copied from interface:FiniteDifferenceEquityModelReturns the optional jump component of the infinitesimal generator.The default implementation returns
Optional.empty(), corresponding to a purely diffusive model.If present, the returned
JumpComponentprovides the data needed to assemble the non-local jump part of the generator. The local coefficients returned byFiniteDifferenceEquityModel.getDrift(double, double...)andFiniteDifferenceEquityModel.getFactorLoading(double, double...)keep their current meaning and should remain consistent with the PDE state variables used by the finite-difference discretization.In particular, under the stock-coordinate convention intended for jump models in this framework,
FiniteDifferenceEquityModel.getDrift(double, double...)should continue to return the drift of the local first-order term, while the jump component defines the non-local operator in compensated form.For a one-dimensional spot variable
S, the jump contribution is understood in the formintegral [ f(S exp(y)) - f(S) - S (exp(y) - 1) f'(S) ] nu(dy).
The interpretation of the jump data must remain consistent with the chosen PDE state variables.
- Returns:
- An
Optionalcontaining the jump component of the infinitesimal generator, orOptional.empty()if the model has no jump part.
-
getBatesJumpComponent
Returns the Bates jump component.- Returns:
- The Bates jump component.
-
getCloneWithModifiedSpaceTimeDiscretization
public FiniteDifferenceEquityModel getCloneWithModifiedSpaceTimeDiscretization(SpaceTimeDiscretization newSpaceTimeDiscretization) Description copied from interface:FiniteDifferenceEquityModelReturns a clone of this model with a modified space-time discretization.The returned model should represent the same stochastic dynamics and market data as the original one, but on the provided discretization.
- Specified by:
getCloneWithModifiedSpaceTimeDiscretizationin interfaceFiniteDifferenceEquityModel- Overrides:
getCloneWithModifiedSpaceTimeDiscretizationin classFDMHestonModel- Parameters:
newSpaceTimeDiscretization- The new space-time discretization.- Returns:
- A clone of this model with the modified discretization.
-