Quantitative Finance Fourier Analysis $\mathcal{O}(N \log N)$ FFT

Peter Carr & Dilip Madan (1999) Fast Fourier Transform Option Pricing Lab

Invert risk-neutral characteristic functions $\phi_T(u)$ across hundreds of strikes simultaneously in $\mathcal{O}(N \log N)$ operations. Explore exponential damping factors $\alpha$, Simpson's quadrature weights, reciprocal strike grid trade-offs, and implied volatility smiles.

Transform: $\psi_T(v) = \frac{e^{-rT} \phi_T(v - (\alpha + 1)i)}{\alpha^2 + \alpha - v^2 + i(2\alpha + 1)v}$ Damping: $\alpha > 0$ Grid Reciprocity: $\lambda \eta = \frac{2\pi}{N}$
Institutional Highlights
  • • Standard pricing engine for multi-strike option surfaces
  • • Inverts BSM, Heston, Merton Jump, & Variance Gamma
  • • Replaces slow numerical numerical integration with FFT
  • • In-place Cooley-Tukey Radix-2 execution in browser
ATM Call Price
$0.00
FFT Inversion at $K \approx S_0$
ATM Put Price
$0.00
Via Put-Call Parity
Implied Volatility
0.00%
Inverted BSM $\sigma_{\text{ATM}}$
Max Absolute Error
< 1e-6
vs BSM Analytical Benchmark
FFT Computational Speed
1024 strikes / 1 FFT
$\mathcal{O}(N \log N)$ Radix-2
Data Export
Full Strike Spectrum CSV
Calibrated Market Presets:
Loading baseline preset...

Model & Numerical Controls

1.00

Carr-Madan FFT Parameters

0.25
1.50
Ensures $L^1$ integrability of the modified call payoff $\psi_T(v)$. Recommended: $\alpha \in [1.0, 2.5]$.
FFT Grid Diagnostics
Strike Grid Spacing $\lambda$: --
Strike Range $b = \pi / \eta$: --
FFT Transform Size $N$: --
Quadrature Step $\eta$: --
Damping Factor $\alpha$: --
Benchmark RMSE: --

Spectral Valuation Spectrum & Surface Analysis

Key Chart Insight: The Carr-Madan algorithm solves for all $N$ strikes simultaneously in a single Fourier inversion. Notice the exact overlap between the analytical Black-Scholes curve (dashed red) and the FFT output (solid blue) when using benchmark settings.

Damping Factor $\alpha$ vs. Grid Size $N$

Maximum Absolute Error (MAE) across strikes against the analytical Black-Scholes benchmark ($S_0 = 100, T = 1$).

Damping $\alpha$ \ $N$ 256 512 1024 2048 4096
Green indicates high precision ($\text{MAE} < 10^{-4}$); red indicates excessive truncation or round-off error.

Integration Step $\eta$ vs. Maturity $T$

Root Mean Squared Error (RMSE) across strikes showing Nyquist frequency sampling bounds ($N = 1024, \alpha = 1.5$).

Step $\eta$ \ $T$ 0.25y 0.50y 1.00y 2.00y 3.00y
Notice that short maturities require smaller integration steps $\eta$ to prevent strike aliasing and high-frequency truncation.

Mathematical Foundation: Carr-Madan (1999) FFT Valuation

1. The Modified Damped Call Payoff

Let $s_T = \ln S_T$ and $k = \ln K$. The risk-neutral price of a European call option with strike $K = e^k$ and maturity $T$ is:

$$C_T(k) = e^{-rT} \mathbb{E}[(S_T - e^k)^+] = e^{-rT} \int_k^\infty (e^s - e^k) q_T(s) \, ds$$

As $k \to -\infty$, $C_T(k) \to S_0$. Because $C_T(k)$ does not decay to zero as $k \to -\infty$, it is not square-integrable and its direct Fourier transform does not exist. Carr and Madan (1999) solved this by defining the damped call price:

$$c_T(k) \equiv e^{\alpha k} C_T(k), \quad \alpha > 0$$

For sufficiently large $\alpha$, $c_T(k)$ tends to zero both as $k \to \infty$ and $k \to -\infty$, ensuring $c_T(k) \in L^1(\mathbb{R}) \cap L^2(\mathbb{R})$.

2. Characteristic Function Inversion

Taking the continuous Fourier transform of the damped call price $\psi_T(v) = \int_{-\infty}^\infty e^{i v k} c_T(k) \, dk$ yields the analytical expression:

$$\psi_T(v) = \frac{e^{-rT} \phi_T\big(v - (\alpha + 1)i\big)}{\alpha^2 + \alpha - v^2 + i (2\alpha + 1) v}$$

where $\phi_T(u) = \mathbb{E}[e^{i u \ln S_T}]$ is the risk-neutral characteristic function of the underlying asset's terminal log-price. Recovering vanilla call prices via Fourier inversion:

$$C_T(k) = \frac{e^{-\alpha k}}{\pi} \int_0^\infty e^{-i v k} \psi_T(v) \, dv = \frac{e^{-\alpha k}}{\pi} \operatorname{Re}\left[ \int_0^\infty e^{-i v k} \psi_T(v) \, dv \right]$$

3. Discrete FFT Formulation & Simpson's Weights

Discretizing the continuous integral with uniform frequency step $\eta$ across $N$ quadrature nodes $v_j = j \eta$ ($j = 0, \dots, N-1$):

$$C_T(k) \approx \frac{e^{-\alpha k}}{\pi} \sum_{j=0}^{N-1} e^{-i v_j k} \psi_T(v_j) w_j$$

To achieve cubic-order numerical accuracy, Simpson's rule quadrature weights are applied:

$$w_j = \frac{\eta}{3} \big( 3 + (-1)^j - \delta_{j, 0} \big)$$

Evaluating options at discrete log-strikes $k_u = -b + \lambda u$ ($u = 0, \dots, N-1$) with grid boundary $b = \frac{N \lambda}{2}$, the summation becomes:

$$C_T(k_u) \approx \frac{e^{-\alpha k_u}}{\pi} \operatorname{Re} \left[ \sum_{j=0}^{N-1} e^{-i \lambda \eta j u} e^{i b v_j} \psi_T(v_j) w_j \right]$$

4. Nyquist Reciprocal Grid Constraint

For the discrete summation to match the standard Fast Fourier Transform kernel $e^{-i \frac{2\pi}{N} j u}$, the frequency step $\eta$ and log-strike resolution $\lambda$ must satisfy:

$$\lambda \cdot \eta = \frac{2\pi}{N} \implies \lambda = \frac{2\pi}{N \eta}, \quad b = \frac{\pi}{\eta}$$

This introduces the fundamental reciprocal trade-off in Carr-Madan pricing:

  • Small $\eta$: Extends the log-strike domain $b = \pi / \eta$, reducing strike resolution (larger $\lambda$).
  • Large $\eta$: Produces a fine strike grid (small $\lambda$), but risks severe high-frequency Fourier truncation errors.
  • Increasing $N$: Simultaneously improves strike resolution and frequency coverage at the cost of $\mathcal{O}(N \log N)$ complexity.

Interactive Mastery Assessment: Carr-Madan FFT

1. Why is the damping parameter $\alpha > 0$ strictly necessary in Carr-Madan pricing?

2. What is the algorithmic time complexity of pricing $N$ strikes with Carr-Madan FFT?

3. What is the consequence of setting an excessively small integration step $\eta$ for a fixed $N$?

4. In the Carr-Madan formula, at what complex argument is the characteristic function $\phi_T$ evaluated?

Frequently Asked Questions

The Carr-Madan (1999) method evaluates European option prices across a full continuum of strikes simultaneously in $\mathcal{O}(N \log N)$ computational operations. By introducing an exponential damping factor $\alpha > 0$, the modified call price becomes square-integrable, allowing direct Fourier inversion of the underlying risk-neutral characteristic function without requiring analytical probability distribution functions.

As the log-strike $k$ approaches negative infinity, vanilla call option prices approach the spot price $S_0$ rather than zero. Consequently, raw call prices are not $L^1$ integrable and lack a direct Fourier transform. Multiplying the call price by $\exp(\alpha k)$ with $\alpha > 0$ dampens the payoff to zero as $k$ tends to negative infinity, guaranteeing the Fourier transform exists and can be integrated numerically.

In the discrete Fast Fourier Transform, the integration frequency step $\eta$ and the output log-strike spacing $\lambda$ are strictly linked by the Nyquist reciprocal relation $\lambda \eta = \frac{2\pi}{N}$. Choosing a fine integration grid (small $\eta$) automatically broadens the log-strike spacing (large $\lambda$), creating a fundamental numerical trade-off between strike resolution and integration truncation boundaries.

Any continuous-time asset price model with an analytically known risk-neutral characteristic function $\phi_T(u)$ can be priced via Carr-Madan FFT. This includes the Black-Scholes-Merton model, Heston (1993) stochastic volatility, Merton (1976) jump diffusion, Variance Gamma (1998), CGMY, and Kou double-exponential jump models.

Carr-Madan FFT computes option prices across an entire vector of $N$ strikes in $\mathcal{O}(N \log N)$ steps, making it ideal for market calibration across full option chains. Lewis (2001) utilizes contour integration along complex planes for single strikes, while the Fang-Oosterlee (2008) COS method employs Fourier-cosine series expansions which converge exponentially for individual or grouped strikes.

Related Quantitative Finance & Volatility Labs

Carr-Madan Static Replication Lab

Synthesize generalized nonlinear payoffs and variance swaps through static option continuum portfolios.

Heston Stochastic Volatility Lab

Model mean-reverting CIR variance processes, leverage correlation skews, and Feller boundary condition dynamics.

Variance Gamma Jump Lab

Explore Brownian subordination, gamma subordinator clocks, and infinite-activity pure jump market dynamics.

Fang-Oosterlee COS Lab

Experience exponential spectral convergence and exact Greeks via Fourier-cosine series expansions.