Interface JumpComponent

All Superinterfaces:
Serializable
All Known Implementing Classes:
AbstractStateIndependentJumpComponent, BatesJumpComponent, MertonJumpComponent, VarianceGammaJumpComponent

public interface JumpComponent extends Serializable
Describes the jump part of the infinitesimal generator used by a finite- difference equity model.

This interface is intentionally narrow: it does not attempt to expose a fully generic non-local operator, but only the ingredients needed to assemble the jump term in the pricing PIDE.

The current convention is that jumps act on one selected state variable through a log-relative jump size y. In the standard stock-coordinate case, this means the affected state variable x is mapped to x * exp(y).

For an affected state variable x, the jump contribution is interpreted as

integral [ u(..., x exp(y), ...) - u(..., x, ...)
         - x (exp(y) - 1) partial_x u(..., x, ...) ] nu(dy),

where the compensation term is part of the integral definition.

This interface therefore complements, but does not modify, the meaning of FiniteDifferenceEquityModel.getDrift(double, double...).

Author:
Alessandro Gnoatto
  • Method Summary

    Modifier and Type
    Method
    Description
    double
    getLevyDensity(double time, double jumpSize, double... stateVariables)
    Returns the Levy density evaluated at the given jump size.
    double
    getLowerIntegrationBound(double time, double... stateVariables)
    Returns the lower integration bound for the jump variable.
    default int
    Returns the index of the state variable affected by the jump operator.
    double
    getUpperIntegrationBound(double time, double... stateVariables)
    Returns the upper integration bound for the jump variable.
    default boolean
    Returns whether the jump component has finite activity.
    default boolean
    Returns whether the jump component has finite variation.
    default boolean
    Returns whether the jump density depends explicitly on the current state.
  • Method Details

    • getStateVariableIndex

      default int getStateVariableIndex()
      Returns the index of the state variable affected by the jump operator.

      The default is 0, corresponding to the first PDE state variable.

      Returns:
      The index of the affected state variable.
    • getLowerIntegrationBound

      double getLowerIntegrationBound(double time, double... stateVariables)
      Returns the lower integration bound for the jump variable.

      The jump variable is interpreted as a log-relative jump size y. For infinite-support models this bound will typically be a numerical truncation chosen by the implementation.

      Parameters:
      time - The evaluation time.
      stateVariables - The current PDE state variables.
      Returns:
      The lower integration bound.
    • getUpperIntegrationBound

      double getUpperIntegrationBound(double time, double... stateVariables)
      Returns the upper integration bound for the jump variable.

      The jump variable is interpreted as a log-relative jump size y. For infinite-support models this bound will typically be a numerical truncation chosen by the implementation.

      Parameters:
      time - The evaluation time.
      stateVariables - The current PDE state variables.
      Returns:
      The upper integration bound.
    • getLevyDensity

      double getLevyDensity(double time, double jumpSize, double... stateVariables)
      Returns the Levy density evaluated at the given jump size.

      The argument jumpSize is interpreted as the log-relative jump y. In the standard stock-coordinate convention, the affected state variable x jumps to x * exp(y).

      Parameters:
      time - The evaluation time.
      jumpSize - The log-relative jump size.
      stateVariables - The current PDE state variables.
      Returns:
      The Levy density nu(y).
    • isStateDependent

      default boolean isStateDependent()
      Returns whether the jump density depends explicitly on the current state.

      Bates and Variance Gamma in their standard forms are typically state- independent in the jump part, so the default is false.

      Returns:
      true if the jump density depends on the current state variables.
    • isFiniteActivity

      default boolean isFiniteActivity()
      Returns whether the jump component has finite activity.

      This is metadata only and may be useful for later numerical choices.

      Returns:
      true if the jump measure has finite total mass.
    • isFiniteVariation

      default boolean isFiniteVariation()
      Returns whether the jump component has finite variation.

      This is metadata only and may be useful for later numerical choices.

      Returns:
      true if the jump part has finite variation.