Documentation of 'net.finmath.montecarlo.interestrate.products.components.Option' Java class
Option
net.finmath.montecarlo.interestrate.products.components

Class Option

  • All Implemented Interfaces:
    java.io.Serializable, ProductInterface


    public class Option
    extends AbstractProductComponent
    An option. Implements the function max(underlying(t)-strike,0) for any underlying object implementing an AbstractLIBORMonteCarloProduct. The strike may be a fixed constant value or an object implementing AbstractLIBORMonteCarloProduct (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).
    See Also:
    AbstractLIBORMonteCarloProduct, Serialized Form
    • Constructor Detail

      • Option

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

        public Option(double exerciseDate,
                      double strikePrice,
                      AbstractLIBORMonteCarloProduct 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,
                      double strikePrice,
                      boolean isCall,
                      AbstractLIBORMonteCarloProduct 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,
                      boolean isCall,
                      AbstractLIBORMonteCarloProduct strikeProduct,
                      AbstractLIBORMonteCarloProduct 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.
    • Method Detail

      • queryUnderlyings

        public java.util.Set<java.lang.String> queryUnderlyings()
        Description copied from class: AbstractProductComponent
        Returns a set of underlying names referenced by this product component (i.e., required for valuation) or null if none.
        Specified by:
        queryUnderlyings in class AbstractProductComponent
        Returns:
        A set of underlying names referenced by this product component (i.e., required for valuation) or null if none.
      • getValue

        public RandomVariableInterface getValue(double evaluationTime,
                                                LIBORModelMonteCarloSimulationInterface 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 class AbstractLIBORMonteCarloProduct
        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.

DataMelt 3.0 © DataMelt by jWork.ORG

Ads help maintain this website.