Class VarianceGammaJumpComponent

java.lang.Object
net.finmath.finitedifference.assetderivativevaluation.models.AbstractStateIndependentJumpComponent
net.finmath.finitedifference.assetderivativevaluation.models.VarianceGammaJumpComponent
All Implemented Interfaces:
Serializable, JumpComponent

public class VarianceGammaJumpComponent extends AbstractStateIndependentJumpComponent
Jump component for the Variance Gamma model.

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 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 parameter C of the Levy density.
      g - The parameter G governing negative jumps.
      m - The parameter M governing 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 parameter C of the Levy density.
      g - The parameter G governing negative jumps.
      m - The parameter M governing 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: AbstractStateIndependentJumpComponent
      Returns 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:
      getLevyDensity in class AbstractStateIndependentJumpComponent
      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 parameter C.
      Returns:
      The parameter C.
    • getG

      public double getG()
      Returns the parameter G.
      Returns:
      The parameter G.
    • getM

      public double getM()
      Returns the parameter M.
      Returns:
      The parameter M.