Setup
Motivation
For many models of practical importance — Heston, Variance Gamma, CGMY, NIG — the dynamics of lnST under the risk-neutral measure are not log-normal, and closed-form option prices do not exist. However, the characteristic function of the log-price is often available in closed form.
The Carr-Madan (1999) method prices European options by Fourier-inverting the characteristic function. Its efficiency comes from evaluating option prices at all strikes simultaneously using a single Fast Fourier Transform (FFT) pass — pricing at N strikes for the cost of a single O(NlogN) FFT, compared to O(N) separate numerical integrations.
Characteristic Function
Let xT=ln(ST/S0) be the log-return. Under the risk-neutral measure Q:
φT(u)=EQ[eiuxT],u∈R.
For GBM: φT(u)=exp(iu(r−21σ2)T−21u2σ2T) (a known Gaussian characteristic function). For Heston: see the preceding module. For Lévy models (VG, NIG, CGMY): the characteristic function is an exponential of the Lévy exponent, available analytically.
Key property. φT(u) is a bounded, uniformly continuous function of u. It decays as ∣u∣→∞ whenever ST has a sufficiently smooth density.
Notation
- k=lnK: log-strike.
- F=S0erT: forward price.
- CT(k)=e−rTEQ[(ST−ek)+]: call price as a function of log-strike.
- φT(u): characteristic function of xT=ln(ST/S0), so EQ[eiuxT]=φT(u).
The Carr-Madan Formula
Problem with the Naive Approach
The undiscounted call payoff (ST−K)+=(exT+lnS0−ek)+ is not square-integrable in k: as k→−∞, CT(k)→S0−ek−rT→S0 (a constant), so CT∈/L2(R). The Fourier transform does not exist in the classical sense.
Dampening
Multiply CT(k) by an exponential damping factor eαk for some α>0:
zT(k)=eαkCT(k).
For α>0 and sufficiently small (specifically α<αˉ where E[ST1+α]<∞): as k→−∞, zT(k)=eαk⋅(S0−ek−rT+O(e2k))→0. As k→+∞, zT(k)=eαk⋅O(e−k)=O(e(α−1)k)→0 for α<1. So zT∈L2(R) and its Fourier transform exists.
Fourier Transform of the Modified Price
Define ΨT(v)=∫−∞∞eivkzT(k)dk. Substituting zT(k)=eαk+ivke−rTEQ[(exT+lnS0−ek)+] and exchanging expectation and integration (Fubini, justified under the moment condition):
ΨT(v)=e−rT∫−∞∞e(α+iv)kEQ[(S0exT−ek)+]dk.
Switching the order of integration (integrating over k from −∞ to xT+lnS0 where the payoff is positive):
ΨT(v)=α2+α−v2+i(2α+1)ve−rTφT(v−(α+1)i).
Derivation. Inside the expectation, ∫−∞xT+lnS0e(α+iv)k(S0exT−ek)dk evaluates to a ratio involving e(α+1+iv)(xT+lnS0). Taking the expectation introduces E[e(α+1+iv)xT]=φT(−i(α+1)+v). Collecting terms yields the formula above.
Inversion
The call price is recovered by Fourier inversion:
CT(k)=e−αkzT(k)=πe−αk∫0∞Re[e−ivkΨT(v)]dv,
using the symmetry of the real part of the integrand (since the imaginary part integrates to zero for real CT):
CT(k)=πe−αk∫0∞e−ivkΨT(v)dv(real part implied).
This is exact for any model with a known characteristic function φT, provided the dampening condition EQ[ST1+α]<∞ holds.
FFT Implementation
Discretisation of the Integral
Approximate the integral by a truncated sum over frequencies vj=ηj for j=0,1,…,N−1, with spacing η>0 and upper limit vmax=η(N−1):
CT(k)≈πe−αk∑j=0N−1e−ivjkΨT(vj)η⋅wj,