Class VarianceGammaJumpComponent
- All Implemented Interfaces:
Serializable, JumpComponent
The jump part acts on one selected state variable through multiplicative
jumps
of the form
\[ x \mapsto x \cdot exp(y), \]
where y denotes the log-jump size. The associated Levy density is
\[ \nu(y) = \left\{
\begin{array}{ll}
C \cdot exp(-M y) / y, & \text{for} \, y > 0, \\
C \cdot exp(-G |y|) / |y|, & \text{for} \, y < 0.
\end{array} \right. \]
This is the standard Variance Gamma Levy density in (C,G,M)
parameterization. The process has infinite activity and finite variation.
A convenience factory is also provided for the usual Variance Gamma
parameters (sigma, nu, theta). In that case,
C = 1 / nu, G = (sqrt(theta^2 + 2 sigma^2 / nu) + theta) / sigma^2, M = (sqrt(theta^2 + 2 sigma^2 / nu) - theta) / sigma^2.
- Author:
- Alessandro Gnoatto
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionVarianceGammaJumpComponent(double lowerIntegrationBound, double upperIntegrationBound, double c, double g, double m) Creates a Variance Gamma jump component acting on the first state variable.VarianceGammaJumpComponent(int stateVariableIndex, double lowerIntegrationBound, double upperIntegrationBound, double c, double g, double m) Creates a Variance Gamma jump component. -
Method Summary
Modifier and TypeMethodDescriptiondoublegetC()Returns the parameterC.doublegetG()Returns the parameterG.protected doublegetLevyDensity(double time, double jumpSize) Returns the Levy density at the given log-jump size.doublegetM()Returns the parameterM.static VarianceGammaJumpComponentofSigmaNuTheta(double lowerIntegrationBound, double upperIntegrationBound, double sigma, double nu, double theta) Creates a Variance Gamma jump component from the standard(sigma, nu, theta)parameterization, acting on the first state variable.static VarianceGammaJumpComponentofSigmaNuTheta(int stateVariableIndex, double lowerIntegrationBound, double upperIntegrationBound, double sigma, double nu, double theta) Creates a Variance Gamma jump component from the standard(sigma, nu, theta)parameterization.
-
Constructor Details
-
VarianceGammaJumpComponent
public VarianceGammaJumpComponent(double lowerIntegrationBound, double upperIntegrationBound, double c, double g, double m) Creates a Variance Gamma jump component acting on the first state variable.- Parameters:
lowerIntegrationBound- Lower integration bound for the log-jump variable.upperIntegrationBound- Upper integration bound for the log-jump variable.c- The parameterCof the Levy density.g- The parameterGgoverning negative jumps.m- The parameterMgoverning positive jumps.
-
VarianceGammaJumpComponent
public VarianceGammaJumpComponent(int stateVariableIndex, double lowerIntegrationBound, double upperIntegrationBound, double c, double g, double m) Creates a Variance Gamma jump component.- Parameters:
stateVariableIndex- Index of the affected state variable.lowerIntegrationBound- Lower integration bound for the log-jump variable.upperIntegrationBound- Upper integration bound for the log-jump variable.c- The parameterCof the Levy density.g- The parameterGgoverning negative jumps.m- The parameterMgoverning positive jumps.
-
-
Method Details
-
ofSigmaNuTheta
public static VarianceGammaJumpComponent ofSigmaNuTheta(double lowerIntegrationBound, double upperIntegrationBound, double sigma, double nu, double theta) Creates a Variance Gamma jump component from the standard(sigma, nu, theta)parameterization, acting on the first state variable.- Parameters:
lowerIntegrationBound- Lower integration bound for the log-jump variable.upperIntegrationBound- Upper integration bound for the log-jump variable.sigma- The volatility parameter of the Variance Gamma model.nu- The variance-of-time-change parameter of the Variance Gamma model.theta- The asymmetry parameter of the Variance Gamma model.- Returns:
- The corresponding Variance Gamma jump component.
-
ofSigmaNuTheta
public static VarianceGammaJumpComponent ofSigmaNuTheta(int stateVariableIndex, double lowerIntegrationBound, double upperIntegrationBound, double sigma, double nu, double theta) Creates a Variance Gamma jump component from the standard(sigma, nu, theta)parameterization.- Parameters:
stateVariableIndex- Index of the affected state variable.lowerIntegrationBound- Lower integration bound for the log-jump variable.upperIntegrationBound- Upper integration bound for the log-jump variable.sigma- The volatility parameter of the Variance Gamma model.nu- The variance-of-time-change parameter of the Variance Gamma model.theta- The asymmetry parameter of the Variance Gamma model.- Returns:
- The corresponding Variance Gamma jump component.
-
getLevyDensity
protected double getLevyDensity(double time, double jumpSize) Description copied from class:AbstractStateIndependentJumpComponentReturns the Levy density at the given log-jump size.Implementations only need to provide the state-independent density
nu(y). Dependence on the PDE state variables is intentionally excluded from this base class.- Specified by:
getLevyDensityin classAbstractStateIndependentJumpComponent- Parameters:
time- The evaluation time.jumpSize- The log-relative jump size.- Returns:
- The Levy density at the given jump size.
-
getC
public double getC()Returns the parameterC.- Returns:
- The parameter
C.
-
getG
public double getG()Returns the parameterG.- Returns:
- The parameter
G.
-
getM
public double getM()Returns the parameterM.- Returns:
- The parameter
M.
-