Class EuropeanOptionSmile

  • All Implemented Interfaces:
    Function<org.apache.commons.math3.complex.Complex,​org.apache.commons.math3.complex.Complex>, CharacteristicFunction, SmileByIntegralTransform
    Direct Known Subclasses:
    EuropeanOptionSmileByCarrMadan

    public abstract class EuropeanOptionSmile
    extends Object
    implements SmileByIntegralTransform
    This is an abstract base class for Fourier-based methodologies for the valuation of a smile of options. Concrete different Fourier methodologies should provide different implementations of the getValue method, which is left here as abstract.
    Author:
    Alessandro Gnoatto
    • Constructor Detail

      • EuropeanOptionSmile

        public EuropeanOptionSmile​(String underlyingName,
                                   double maturity,
                                   double[] strikes)
      • EuropeanOptionSmile

        public EuropeanOptionSmile​(double maturity,
                                   double[] strikes)
    • Method Detail

      • getStrikes

        public double[] getStrikes()
      • getUnderlyingName

        public String getUnderlyingName()
      • getIntegrationDomainImagLowerBound

        public double getIntegrationDomainImagLowerBound()
        Description copied from interface: SmileByIntegralTransform
        Return the lower bound of the imaginary part of the domain where the characteristic function can be integrated.
        Specified by:
        getIntegrationDomainImagLowerBound in interface SmileByIntegralTransform
        Returns:
        the lower bound of the imaginary part of the domain of integration.
      • getIntegrationDomainImagUpperBound

        public double getIntegrationDomainImagUpperBound()
        Description copied from interface: SmileByIntegralTransform
        Return the upper bound of the imaginary part of the domain where the characteristic function can be integrated.
        Specified by:
        getIntegrationDomainImagUpperBound in interface SmileByIntegralTransform
        Returns:
        the upper bound of the imaginary part of the domain of integration.
      • getCloneWithModifiedParameters

        public abstract EuropeanOptionSmile getCloneWithModifiedParameters​(double maturity,
                                                                           double[] strikes)
        Returns the same valuation method for different parameters (maturity and strikes).
        Parameters:
        maturity - The new maturity.
        strikes - The new strikes.
        Returns:
        the same valuation method now referring to a different maturity and strike grid.
      • apply

        public org.apache.commons.math3.complex.Complex apply​(org.apache.commons.math3.complex.Complex z)
        Specified by:
        apply in interface Function<org.apache.commons.math3.complex.Complex,​org.apache.commons.math3.complex.Complex>
      • getDescriptors

        public Map<Double,​SingleAssetEuropeanOptionProductDescriptor> getDescriptors​(LocalDate referenceDate)
        Return a collection of product descriptors for each option in the smile.
        Parameters:
        referenceDate - The reference date (translating the maturity floating point date to dates.
        Returns:
        a collection of product descriptors for each option in the smile.