Class AsianOption
java.lang.Object
net.finmath.finitedifference.assetderivativevaluation.products.AsianOption
- All Implemented Interfaces:
FiniteDifferenceEquityProduct, FiniteDifferenceProduct<FiniteDifferenceEquityModel>, Product
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 Summary
ConstructorsConstructorDescriptionAsianOption(double maturity, double strike) Performs the operation.AsianOption(double maturity, double strike, double callOrPutSign) Performs the operation.AsianOption(double maturity, double strike, CallOrPut callOrPutSign) Performs the operation.AsianOption(double maturity, CallOrPut callOrPutSign, AsianStrike asianStrike) Performs the operation.AsianOption(String underlyingName, double maturity, double strike) Performs the operation.AsianOption(String underlyingName, double maturity, double strike, double callOrPutSign) Performs the operation.AsianOption(String underlyingName, double maturity, double strike, CallOrPut callOrPutSign) Performs the operation.AsianOption(String underlyingName, double maturity, double strike, CallOrPut callOrPutSign, AsianStrike asianStrike, Exercise exercise) Performs the operation.AsianOption(String underlyingName, double maturity, CallOrPut callOrPutSign, AsianStrike asianStrike) Performs the operation. -
Method Summary
Modifier and TypeMethodDescriptionReturns the value.Returns the value.Returns the value.Returns the value.doubleReturns the value.Returns the value.doubleReturns the value.Returns the value.double[]getValue(double evaluationTime, FiniteDifferenceEquityModel model) Returns the value.double[][]Returns the value.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface FiniteDifferenceEquityProduct
getModelClassMethods inherited from interface FiniteDifferenceProduct
getValue
-
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
-
AsianOption
Performs the operation.- Parameters:
underlyingName- The value.maturity- The value.strike- The value.callOrPutSign- The value.
-
AsianOption
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
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
Performs the operation.- Parameters:
maturity- The value.callOrPutSign- The value.asianStrike- The value.
-
-
Method Details
-
getValue
Description copied from interface:FiniteDifferenceProductReturns the value.- Specified by:
getValuein interfaceFiniteDifferenceProduct<FiniteDifferenceEquityModel>- Parameters:
evaluationTime- The value.model- The value.- Returns:
- The value.
-
getValues
Description copied from interface:FiniteDifferenceProductReturns the value.- Specified by:
getValuesin interfaceFiniteDifferenceProduct<FiniteDifferenceEquityModel>- Parameters:
model- The value.- Returns:
- The value.
-
getSolver
Returns the value.- Parameters:
model- The value.- Returns:
- The value.
-
getLiftedModel
Returns the value.- Parameters:
model- The value.- Returns:
- The value.
-
getUnderlyingName
-
getMaturity
public double getMaturity()Returns the value.- Returns:
- The value.
-
getStrike
public double getStrike()Returns the value.- Returns:
- The value.
-
getCallOrPut
-
getAsianStrike
-
getExercise
-