All Implemented Interfaces:
Product, AssetMonteCarloProduct, MonteCarloProduct

public class BasketOption extends AbstractAssetMonteCarloProduct
Implements valuation of a European option on a basket of asset. Given a model for asset \( S_{i} \), the European option with basket weights \( \alpha_{i} \), strike K, maturity T pays \[ max\left( \sum_{i} \alpha_{i} S_{i}(T) - K , 0 \right) \] in T. Note that the specification of \( \alpha_{i} \) and \( K \) allows to construct some special cases, like
  • a European option \( \alpha_{1} = 1 \), \( \alpha_{j} = 0 \) for \( j \neq 1 \)
  • an exchange option \( \alpha_{1} = 1 \), \( \alpha_{2} = -1 \), \( K = 0 \)
Version:
1.0
Author:
Christian Fries
  • Constructor Details

    • BasketOption

      public BasketOption(double maturity, double strike, double[] weights)
      Construct a product representing an European option on an asset S (where S the asset with index 0 from the model - single asset case).
      Parameters:
      maturity - The maturity T in the option payoff \( max\left( \sum_{i} \alpha_{i} S_{i}(T) - K , 0 \right) \).
      strike - The strike K in the option payoff \( max\left( \sum_{i} \alpha_{i} S_{i}(T) - K , 0 \right) \).
      weights - The weights \( \alpha_{i} \) in the option payof \( max\left( \sum_{i} \alpha_{i} S_{i}(T) - K , 0 \right) \).
  • 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.