Class AsianOption

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

public class AsianOption extends Object implements FiniteDifferenceEquityProduct
Arithmetic Asian option priced via a Markov lift.

We lift the 1D Black-Scholes state S to the 2D Markov state (S, I) where I(t) = integral_0^t S(u) du, and solve a 2D PDE.

Fixed-strike payoff at maturity T: Call: max(I(T)/T - K, 0) Put : max(K - I(T)/T, 0)

Floating-strike payoff at maturity T: Call: max(S(T) - I(T)/T, 0) Put : max(I(T)/T - S(T), 0)

For early exercise, the immediate exercise payoff is evaluated using the average accrued up to exercise time t, i.e. I(t) / t.

Assumption: averaging times coincide with the PDE grid's time discretization.

Author:
Alessandro Gnoatto
  • Constructor Details

    • AsianOption

      public AsianOption(String underlyingName, double maturity, double strike, CallOrPut callOrPutSign, AsianStrike asianStrike, Exercise exercise)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      strike - The value.
      callOrPutSign - The value.
      asianStrike - The value.
      exercise - The value.
    • AsianOption

      public AsianOption(String underlyingName, double maturity, double strike, CallOrPut callOrPutSign)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      strike - The value.
      callOrPutSign - The value.
    • AsianOption

      public AsianOption(String underlyingName, double maturity, double strike, double callOrPutSign)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      strike - The value.
      callOrPutSign - The value.
    • AsianOption

      public AsianOption(double maturity, double strike, CallOrPut callOrPutSign)
      Performs the operation.
      Parameters:
      maturity - The value.
      strike - The value.
      callOrPutSign - The value.
    • AsianOption

      public AsianOption(double maturity, double strike, double callOrPutSign)
      Performs the operation.
      Parameters:
      maturity - The value.
      strike - The value.
      callOrPutSign - The value.
    • AsianOption

      public AsianOption(String underlyingName, double maturity, double strike)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      strike - The value.
    • AsianOption

      public AsianOption(double maturity, double strike)
      Performs the operation.
      Parameters:
      maturity - The value.
      strike - The value.
    • AsianOption

      public AsianOption(String underlyingName, double maturity, CallOrPut callOrPutSign, AsianStrike asianStrike)
      Performs the operation.
      Parameters:
      underlyingName - The value.
      maturity - The value.
      callOrPutSign - The value.
      asianStrike - The value.
    • AsianOption

      public AsianOption(double maturity, CallOrPut callOrPutSign, AsianStrike asianStrike)
      Performs the operation.
      Parameters:
      maturity - The value.
      callOrPutSign - The value.
      asianStrike - The value.
  • Method Details