finMath lib documentation
net.finmath.fouriermethod.products.smile

• All Implemented Interfaces:
Function<org.apache.commons.math3.complex.Complex,org.apache.commons.math3.complex.Complex>, CharacteristicFunction, SmileByIntegralTransform

public class EuropeanOptionSmileByCarrMadan
extends EuropeanOptionSmile
This class computes the prices of a collection of call options for a fixed maturity and a family of strikes. The pricing method is the FFT methodology as introduced in Carr and Madan (1999). The transform is taken for -1 < \alpha < 0, hence we have a correction term since we are applying the residue theorem as reported in Lee (2004). In this strip the transform of any meaningful financial model is well defined because we expect the following conditions to be satisfied: 1) When computed in the point z=-i, the discounted characteristic function gives us the initial asset price due to the martingale property. 2) By definition of characteristic function also z = 0 is a good point. Analytic extension over the strip is then guaranteed by Lukacs (1970), Theorem 7.1.1. From a financial point of view the choice of this strip corresponds to transforming a covered call position. References:
• Carr. P. and Madan, D. (1999) Option Valuation Using the Fast Fourier Transform. Journal of Computational Finance.
• Lee, R. (2004) Option pricing by transform methods: extensions, unification and error control. Journal of Computational Finance.
• Lewis, A. (2002) A simple option formula for general jump diffusion and other exponential Levy processes.
• Lukacks, E. (1970) Characteristic Functions. 2nd edition.
Author:
Alessandro Gnoatto
• ### Constructor Summary

Constructors
Constructor and Description
EuropeanOptionSmileByCarrMadan(double maturity, double[] strikes)
EuropeanOptionSmileByCarrMadan(String underlyingName, double maturity, double[] strikes)
EuropeanOptionSmileByCarrMadan(String underlyingName, double maturity, double[] strikes, int numberOfPoints, double gridSpacing, RationalFunctionInterpolation.InterpolationMethod intMethod, RationalFunctionInterpolation.ExtrapolationMethod extMethod)
• ### Method Summary

All Methods
Modifier and Type Method and Description
EuropeanOptionSmile getCloneWithModifiedParameters(double maturity, double[] strikes)
Returns the same valuation method for different parameters (maturity and strikes).
Map<String,Function<Double,Double>> getValue(double evaluationTime, CharacteristicFunctionModel model)
Return the value of a family of options with the same maturity for different strikes.
• ### Methods inherited from class net.finmath.fouriermethod.products.smile.EuropeanOptionSmile

apply, getDescriptor, getDescriptors, getIntegrationDomainImagLowerBound, getIntegrationDomainImagUpperBound, getMaturity, getStrikes, getUnderlyingName
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• ### Methods inherited from interface java.util.function.Function

andThen, compose, identity
• ### Constructor Detail

public EuropeanOptionSmileByCarrMadan(double maturity,
double[] strikes)

public EuropeanOptionSmileByCarrMadan(String underlyingName,
double maturity,
double[] strikes)

public EuropeanOptionSmileByCarrMadan(String underlyingName,
double maturity,
double[] strikes,
int numberOfPoints,
double gridSpacing,
RationalFunctionInterpolation.InterpolationMethod intMethod,
RationalFunctionInterpolation.ExtrapolationMethod extMethod)
• ### Method Detail

• #### getValue

public Map<String,Function<Double,Double>> getValue(double evaluationTime,
CharacteristicFunctionModel model)
throws CalculationException
Description copied from interface: SmileByIntegralTransform
Return the value of a family of options with the same maturity for different strikes.
Specified by:
getValue in interface SmileByIntegralTransform
Specified by:
getValue in class EuropeanOptionSmile
Parameters:
evaluationTime - The evaluation time.
model - The model against which the product should be values.
Returns:
The map of product values mapping from strike to value.
Throws:
CalculationException - Thrown if the valuation failed.
• #### getCloneWithModifiedParameters

public EuropeanOptionSmile getCloneWithModifiedParameters(double maturity,
double[] strikes)
Description copied from class: EuropeanOptionSmile
Returns the same valuation method for different parameters (maturity and strikes).
Specified by:
getCloneWithModifiedParameters in class EuropeanOptionSmile
Parameters:
maturity - The new maturity.
strikes - The new strikes.
Returns:
the same valuation method now referring to a different maturity and strike grid.