Module net.finmath.lib
Class EuropeanOptionSmileByCarrMadan
java.lang.Object
net.finmath.fouriermethod.products.smile.EuropeanOptionSmile
net.finmath.fouriermethod.products.smile.EuropeanOptionSmileByCarrMadan
- All Implemented Interfaces:
Function<org.apache.commons.math3.complex.Complex,org.apache.commons.math3.complex.Complex>
,CharacteristicFunction
,SmileByIntegralTransform
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
ConstructorsConstructorDescriptionEuropeanOptionSmileByCarrMadan(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
Modifier and TypeMethodDescriptiongetCloneWithModifiedParameters(double maturity, double[] strikes)
Returns the same valuation method for different parameters (maturity and strikes).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
-
Constructor Details
-
EuropeanOptionSmileByCarrMadan
public EuropeanOptionSmileByCarrMadan(double maturity, double[] strikes) -
EuropeanOptionSmileByCarrMadan
-
EuropeanOptionSmileByCarrMadan
public EuropeanOptionSmileByCarrMadan(String underlyingName, double maturity, double[] strikes, int numberOfPoints, double gridSpacing, RationalFunctionInterpolation.InterpolationMethod intMethod, RationalFunctionInterpolation.ExtrapolationMethod extMethod)
-
-
Method Details
-
getValue
public Map<String,Function<Double,Double>> getValue(double evaluationTime, CharacteristicFunctionModel model) throws CalculationExceptionDescription copied from interface:SmileByIntegralTransform
Return the value of a family of options with the same maturity for different strikes.- Specified by:
getValue
in interfaceSmileByIntegralTransform
- Specified by:
getValue
in classEuropeanOptionSmile
- 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
Description copied from class:EuropeanOptionSmile
Returns the same valuation method for different parameters (maturity and strikes).- Specified by:
getCloneWithModifiedParameters
in classEuropeanOptionSmile
- Parameters:
maturity
- The new maturity.strikes
- The new strikes.- Returns:
- the same valuation method now referring to a different maturity and strike grid.
-