# Class AsianOption

All Implemented Interfaces:
Product, AssetMonteCarloProduct, MonteCarloProduct

public class AsianOption
Implements the valuation of an Asian option. Given a model for an asset S, the Asian option with strike K, maturity T and averaging points Ti for i = 1,...,n pays
max(A(T) - K , 0) in T
where
A(T) = 1/n (S(T1)+ ... + S(Tn))
Version:
1.2
Author:
Christian Fries
• ## Constructor Details

• ### AsianOption

public AsianOption(double maturity, double strike, TimeDiscretization timesForAveraging, Integer underlyingIndex)
Construct a product representing an Asian option on an asset S (where S the asset with index 0 from the model - single asset case). A(T) = 1/n sum_{i=1,...,n} S(t_i), where t_i are given observation times.
Parameters:
maturity - The maturity T in the option payoff maxAS(T)-K,0)
strike - The strike K in the option payoff max(A(T)-K,0).
timesForAveraging - The times t_i used in the calculation of A(T) = 1/n sum_{i=1,...,n} S(t_i).
underlyingIndex - The index of the asset S to be fetched from the model
• ### AsianOption

public AsianOption(double maturity, double strike, TimeDiscretization timesForAveraging)
Construct a product representing an Asian option on an asset S (where S the asset with index 0 from the model - single asset case). A(T) = 1/n sum_{i=1,...,n} S(t_i), where t_i are given observation times.
Parameters:
maturity - The maturity T in the option payoff maxAS(T)-K,0)
strike - The strike K in the option payoff max(A(T)-K,0).
timesForAveraging - The times t_i used in the calculation of A(T) = 1/n sum_{i=1,...,n} S(t_i).
• ## Method Details

• ### getValue

public RandomVariable getValue(double evaluationTime, AssetModelMonteCarloSimulationModel model) throws CalculationException
This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime. Note: For a lattice this is often the value conditional to evalutationTime, for a Monte-Carlo simulation this is the (sum of) value discounted to evaluation time. Cashflows prior evaluationTime are not considered.
Specified by:
getValue in interface AssetMonteCarloProduct
Specified by:
getValue in class AbstractAssetMonteCarloProduct
Parameters:
evaluationTime - The time on which this products value should be observed.
model - The model used to price the product.
Returns:
The random variable representing the value of the product discounted to evaluation time
Throws:
CalculationException - Thrown if the valuation fails, specific cause may be available via the cause() method.
• ### getMaturity

public double getMaturity()
Returns the maturity of the option.
Returns:
the maturity of the option.
• ### getStrike

public double getStrike()
Returns the strike of the option.
Returns:
the strike of the option.
• ### getTimesForAveraging

public TimeDiscretization getTimesForAveraging()
Returns the TimeDiscretization used for averaging in the asian option.
Returns:
the TimeDiscretization used for averaging in the asian option.
• ### getUnderlyingIndex

public Integer getUnderlyingIndex()
Returns the index of the asset requested from model.getUnderlying(time, assetIndex) to get the underlying.
Returns:
the index of the asset requested from model.getUnderlying(time, assetIndex) to get the underlying.