All Implemented Interfaces:
Serializable, Product, RegressionBasisFunctionsProvider, TermStructureMonteCarloProduct, MonteCarloProduct

public class Option extends AbstractProductComponent implements RegressionBasisFunctionsProvider
An option. Implements the function max(underlying(t)-strike,0) for any underlying object implementing an AbstractTermStructureMonteCarloProduct. The strike may be a fixed constant value or an object implementing AbstractTermStructureMonteCarloProduct (resulting in a stochastic strike or exchange option). More precise, the getVaue method returns the value \[ \left\{ \begin{array}{ll} U(t)-S(t) & \text{if E(t) > 0} \\ U(t)-S(t) & \text{else.} \end{array} \right. \] where \( E \) is an estimator for the expectation of \( U(t)-S(t) \) and \( U \) is the value returned by the call to getValue of the underlying product, which may return a sum on discounted futures cash-flows / values (i.e. not yet performing the expectation) and \( S \) is the strike (which may be a fixed value or another underlying product).
Version:
1.2
Author:
Christian Fries
See Also:
  • Constructor Details

    • Option

      public Option(double exerciseDate, double strikePrice, boolean isCall, AbstractTermStructureMonteCarloProduct underlying, RegressionBasisFunctionsProvider regressionBasisFunctionsProvider)
      Creates the function underlying(exerciseDate) ≥ strikePrice ? underlying : strikePrice
      Parameters:
      exerciseDate - The exercise date of the option (given as a double).
      strikePrice - The strike price.
      isCall - If true, the function implements is underlying(exerciseDate) ≥ strikePrice ? underlying : strikePrice. Otherwise it is underlying(exerciseDate) < strikePrice ? underlying : strikePrice.
      underlying - The underlying.
      regressionBasisFunctionsProvider - Used to determine the regression basis functions for the conditional expectation operator.
    • Option

      public Option(double exerciseDate, boolean isCall, TermStructureMonteCarloProduct strikeProduct, AbstractTermStructureMonteCarloProduct underlying, RegressionBasisFunctionsProvider regressionBasisFunctionsProvider)
      Creates the function underlying(exerciseDate) ≥ strikeProduct ? underlying : strikeProduct
      Parameters:
      exerciseDate - The exercise date of the option (given as a double).
      isCall - If true, the function implements is underlying(exerciseDate) ≥ strikePrice ? underlying : strikePrice. Otherwise it is underlying(exerciseDate) < strikePrice ? underlying : strikePrice.
      strikeProduct - The strike (can be a general AbstractLIBORMonteCarloProduct).
      underlying - The underlying.
      regressionBasisFunctionsProvider - Used to determine the regression basis functions for the conditional expectation operator.
    • Option

      public Option(double exerciseDate, boolean isCall, TermStructureMonteCarloProduct strikeProduct, AbstractTermStructureMonteCarloProduct underlying)
      Creates the function underlying(exerciseDate) ≥ strikeProduct ? underlying : strikeProduct
      Parameters:
      exerciseDate - The exercise date of the option (given as a double).
      isCall - If true, the function implements is underlying(exerciseDate) ≥ strikePrice ? underlying : strikePrice. Otherwise it is underlying(exerciseDate) < strikePrice ? underlying : strikePrice.
      strikeProduct - The strike (can be a general AbstractLIBORMonteCarloProduct).
      underlying - The underlying.
    • Option

      public Option(double exerciseDate, double strikePrice, boolean isCall, AbstractTermStructureMonteCarloProduct underlying)
      Creates the function underlying(exerciseDate) ≥ strikePrice ? underlying : strikePrice
      Parameters:
      exerciseDate - The exercise date of the option (given as a double).
      strikePrice - The strike price.
      isCall - If true, the function implements is underlying(exerciseDate) ≥ strikePrice ? underlying : strikePrice. Otherwise it is underlying(exerciseDate) < strikePrice ? underlying : strikePrice.
      underlying - The underlying.
    • Option

      public Option(double exerciseDate, double strikePrice, AbstractTermStructureMonteCarloProduct underlying)
      Creates the function underlying(exerciseDate) ≥ strikePrice ? underlying : strikePrice
      Parameters:
      exerciseDate - The exercise date of the option (given as a double).
      strikePrice - The strike price.
      underlying - The underlying.
    • Option

      public Option(double exerciseDate, AbstractTermStructureMonteCarloProduct underlying)
      Creates the function underlying(exerciseDate) ≥ 0 ? underlying : 0
      Parameters:
      exerciseDate - The exercise date of the option (given as a double).
      underlying - The underlying.
  • Method Details