Class TouchOption

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

Finite-difference valuation of a single-barrier cash touch option.

The product pays a fixed cash amount N depending on whether a barrier event occurs during the life of the contract. Let T denote the maturity, B the barrier and S(t) the underlying level.

tau_B = inf { t in [0,T] : S(t) <= B }    for a down barrier,
tau_B = inf { t in [0,T] : S(t) >= B }    for an up barrier.

One-touch at expiry:  V(T) = N 1_{tau_B <= T}
No-touch at expiry:   V(T) = N 1_{tau_B > T}
One-touch at hit:     V(tau_B) = N

For expiry settlement, the post-hit state carries the discounted cash amount maturing at T. In other words, once the barrier has been activated, the continuation value is the deterministic cash value implied by the model discount curve.

Barrier-type semantics:

Settlement semantics:

  • TouchSettlementTiming.AT_EXPIRY: the hit / no-hit event is monitored over the full option life and the payoff is settled at maturity,
  • TouchSettlementTiming.AT_HIT: the cash amount is paid immediately when the barrier is hit for the first time; this is currently supported only for one-touch products.

Monitoring semantics:

  • MonitoringType.CONTINUOUS: the current continuous-monitoring implementation is used,
  • MonitoringType.DISCRETE: monitoring is applied only on the prescribed monitoring dates via vector event conditions. First milestone scope is 1D European cash touch / no-touch.
Author:
Alessandro Gnoatto
  • Constructor Details

    • TouchOption

      public TouchOption(String underlyingName, double maturity, double barrierValue, BarrierType barrierType, double payoffAmount, TouchSettlementTiming settlementTiming, Exercise exercise)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      barrierValue - The value.
      barrierType - The value.
      payoffAmount - The value.
      settlementTiming - The value.
      exercise - The value.
    • TouchOption

      public TouchOption(String underlyingName, double maturity, double barrierValue, BarrierType barrierType, double payoffAmount, TouchSettlementTiming settlementTiming, Exercise exercise, MonitoringType monitoringType, double[] monitoringTimes)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      barrierValue - The value.
      barrierType - The value.
      payoffAmount - The value.
      settlementTiming - The value.
      exercise - The value.
      monitoringType - The value.
      monitoringTimes - The value.
    • TouchOption

      public TouchOption(String underlyingName, double maturity, double barrierValue, BarrierType barrierType, double payoffAmount, TouchSettlementTiming settlementTiming)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      barrierValue - The value.
      barrierType - The value.
      payoffAmount - The value.
      settlementTiming - The value.
    • TouchOption

      public TouchOption(String underlyingName, double maturity, double barrierValue, BarrierType barrierType, double payoffAmount, Exercise exercise)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      barrierValue - The value.
      barrierType - The value.
      payoffAmount - The value.
      exercise - The value.
    • TouchOption

      public TouchOption(String underlyingName, double maturity, double barrierValue, BarrierType barrierType, double payoffAmount)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      barrierValue - The value.
      barrierType - The value.
      payoffAmount - The value.
    • TouchOption

      public TouchOption(double maturity, double barrierValue, BarrierType barrierType, double payoffAmount, TouchSettlementTiming settlementTiming)
      Performs the operation.
      Parameters:
      maturity - The value.
      barrierValue - The value.
      barrierType - The value.
      payoffAmount - The value.
      settlementTiming - The value.
    • TouchOption

      public TouchOption(double maturity, double barrierValue, BarrierType barrierType, double payoffAmount)
      Performs the operation.
      Parameters:
      maturity - The value.
      barrierValue - The value.
      barrierType - The value.
      payoffAmount - The value.
    • TouchOption

      public TouchOption(double maturity, double barrierValue, BarrierType barrierType, double payoffAmount, TouchSettlementTiming settlementTiming, Exercise exercise, MonitoringType monitoringType, double[] monitoringTimes)
      Performs the operation.
      Parameters:
      maturity - The value.
      barrierValue - The value.
      barrierType - The value.
      payoffAmount - The value.
      settlementTiming - The value.
      exercise - The value.
      monitoringType - The value.
      monitoringTimes - The value.
    • TouchOption

      public TouchOption(double maturity, double barrierValue, BarrierType barrierType, double payoffAmount, TouchSettlementTiming settlementTiming, Exercise exercise)
      Performs the operation.
      Parameters:
      maturity - The value.
      barrierValue - The value.
      barrierType - The value.
      payoffAmount - The value.
      settlementTiming - The value.
      exercise - The value.
  • Method Details