Class BasketOption

  • 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 Detail

      • 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 Detail

      • 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.