Class DigitalBarrierOption

java.lang.Object
net.finmath.finitedifference.assetderivativevaluation.products.DigitalBarrierOption
All Implemented Interfaces:
FiniteDifferenceEquityEventProduct, FiniteDifferenceEquityProduct, FiniteDifferenceInternalStateConstraint, FiniteDifferenceOneDimensionalKnockInProduct, FiniteDifferenceProduct<FiniteDifferenceEquityModel>, Product

Finite-difference valuation of a single-barrier digital option on one asset.

Supported payoff families:

  • cash-or-nothing call / put,
  • asset-or-nothing call / put,
  • down-in / up-in / down-out / up-out.

Current implementation policy:

  • continuously monitored knock-out options are priced directly by the finite-difference solver,
  • continuously monitored 1D knock-in options are priced directly through a coupled two-state PDE on an auxiliary spatial grid where the barrier is placed on an interior node,
  • continuously monitored 2D knock-in options use the activated-branch / pre-hit formulation,
  • for one-dimensional models, terminal payoff initialization is cell- averaged in order to reduce strike-discontinuity grid bias,
  • discretely monitored 1D and 2D knock-out options are handled through event-time zeroing on breached nodes,
  • discretely monitored 1D and 2D knock-in options are handled through event-time replacement by the activated vanilla digital continuation surface,
  • for discretely monitored knock-ins with Bermudan/American exercise, only the activated state carries exercise rights; the pre-hit state is solved as a European continuation problem,
  • 2D discrete monitoring is supported for Heston / SABR models.
Author:
Alessandro Gnoatto
  • Constructor Details

    • DigitalBarrierOption

      public DigitalBarrierOption(String underlyingName, double maturity, double strike, double barrierValue, CallOrPut callOrPutSign, BarrierType barrierType, DigitalPayoffType digitalPayoffType, double cashPayoff, Exercise exercise)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      strike - The value.
      barrierValue - The value.
      callOrPutSign - The value.
      barrierType - The value.
      digitalPayoffType - The value.
      cashPayoff - The value.
      exercise - The value.
    • DigitalBarrierOption

      public DigitalBarrierOption(String underlyingName, double maturity, double strike, double barrierValue, CallOrPut callOrPutSign, BarrierType barrierType, DigitalPayoffType digitalPayoffType, double cashPayoff, Exercise exercise, MonitoringType monitoringType, double[] monitoringTimes)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      strike - The value.
      barrierValue - The value.
      callOrPutSign - The value.
      barrierType - The value.
      digitalPayoffType - The value.
      cashPayoff - The value.
      exercise - The value.
      monitoringType - The value.
      monitoringTimes - The value.
    • DigitalBarrierOption

      public DigitalBarrierOption(String underlyingName, double maturity, double strike, double barrierValue, CallOrPut callOrPutSign, BarrierType barrierType, DigitalPayoffType digitalPayoffType, double cashPayoff)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      strike - The value.
      barrierValue - The value.
      callOrPutSign - The value.
      barrierType - The value.
      digitalPayoffType - The value.
      cashPayoff - The value.
    • DigitalBarrierOption

      public DigitalBarrierOption(String underlyingName, double maturity, double strike, double barrierValue, CallOrPut callOrPutSign, BarrierType barrierType, DigitalPayoffType digitalPayoffType, double cashPayoff, MonitoringType monitoringType, double[] monitoringTimes)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      strike - The value.
      barrierValue - The value.
      callOrPutSign - The value.
      barrierType - The value.
      digitalPayoffType - The value.
      cashPayoff - The value.
      monitoringType - The value.
      monitoringTimes - The value.
    • DigitalBarrierOption

      public DigitalBarrierOption(String underlyingName, double maturity, double strike, double barrierValue, double callOrPutSign, BarrierType barrierType, DigitalPayoffType digitalPayoffType, double cashPayoff)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      strike - The value.
      barrierValue - The value.
      callOrPutSign - The value.
      barrierType - The value.
      digitalPayoffType - The value.
      cashPayoff - The value.
    • DigitalBarrierOption

      public DigitalBarrierOption(double maturity, double strike, double barrierValue, CallOrPut callOrPutSign, BarrierType barrierType, DigitalPayoffType digitalPayoffType, double cashPayoff)
      Performs the operation.
      Parameters:
      maturity - The value.
      strike - The value.
      barrierValue - The value.
      callOrPutSign - The value.
      barrierType - The value.
      digitalPayoffType - The value.
      cashPayoff - The value.
    • DigitalBarrierOption

      public DigitalBarrierOption(double maturity, double strike, double barrierValue, CallOrPut callOrPutSign, BarrierType barrierType, DigitalPayoffType digitalPayoffType, double cashPayoff, Exercise exercise)
      Performs the operation.
      Parameters:
      maturity - The value.
      strike - The value.
      barrierValue - The value.
      callOrPutSign - The value.
      barrierType - The value.
      digitalPayoffType - The value.
      cashPayoff - The value.
      exercise - The value.
    • DigitalBarrierOption

      public DigitalBarrierOption(double maturity, double strike, double barrierValue, CallOrPut callOrPutSign, BarrierType barrierType, DigitalPayoffType digitalPayoffType, double cashPayoff, Exercise exercise, MonitoringType monitoringType, double[] monitoringTimes)
      Performs the operation.
      Parameters:
      maturity - The value.
      strike - The value.
      barrierValue - The value.
      callOrPutSign - The value.
      barrierType - The value.
      digitalPayoffType - The value.
      cashPayoff - The value.
      exercise - The value.
      monitoringType - The value.
      monitoringTimes - The value.
    • DigitalBarrierOption

      public DigitalBarrierOption(double maturity, double strike, double barrierValue, double callOrPutSign, BarrierType barrierType, DigitalPayoffType digitalPayoffType, double cashPayoff)
      Performs the operation.
      Parameters:
      maturity - The value.
      strike - The value.
      barrierValue - The value.
      callOrPutSign - The value.
      barrierType - The value.
      digitalPayoffType - The value.
      cashPayoff - The value.
    • DigitalBarrierOption

      public DigitalBarrierOption(double maturity, double strike, double barrierValue, double callOrPutSign, BarrierType barrierType, DigitalPayoffType digitalPayoffType, double cashPayoff, Exercise exercise)
      Performs the operation.
      Parameters:
      maturity - The value.
      strike - The value.
      barrierValue - The value.
      callOrPutSign - The value.
      barrierType - The value.
      digitalPayoffType - The value.
      cashPayoff - The value.
      exercise - The value.
    • DigitalBarrierOption

      public DigitalBarrierOption(double maturity, double strike, double barrierValue, double callOrPutSign, BarrierType barrierType, DigitalPayoffType digitalPayoffType, double cashPayoff, Exercise exercise, MonitoringType monitoringType, double[] monitoringTimes)
      Performs the operation.
      Parameters:
      maturity - The value.
      strike - The value.
      barrierValue - The value.
      callOrPutSign - The value.
      barrierType - The value.
      digitalPayoffType - The value.
      cashPayoff - The value.
      exercise - The value.
      monitoringType - The value.
      monitoringTimes - The value.
  • Method Details