0% found this document useful (0 votes)
12 views6 pages

SM_M1_L3

This document covers the Discrete Fourier Transform (DFT) and its computationally efficient counterpart, the Fast Fourier Transform (FFT), along with discretization techniques such as the trapezoidal and Simpson rules. It explains how to apply these methods to calculate European call option prices and highlights the importance of numerical stability in out-of-the-money (OTM) options. The lesson concludes with a note on implementing FFT in Python and preparing for the next lesson on calibrating Heston model parameters.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views6 pages

SM_M1_L3

This document covers the Discrete Fourier Transform (DFT) and its computationally efficient counterpart, the Fast Fourier Transform (FFT), along with discretization techniques such as the trapezoidal and Simpson rules. It explains how to apply these methods to calculate European call option prices and highlights the importance of numerical stability in out-of-the-money (OTM) options. The lesson concludes with a note on implementing FFT in Python and preparing for the next lesson on calibrating Heston model parameters.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Module 1: Lesson 3

Discrete Fourier Transform


Outline
▶ Discrete Fourier Transform (DFT)

▶ Fast-Fourier Transform (FFT)

▶ The FFT Algorithm in Practice

2
Discrete Fourier Transform (DFT)
We will now cover more in depth the Discrete Fourier Transform (DFT), following the intuition developed in
Carr and Madan (1999).
You may remember Carr and Madan’s (1999) expression for the price of a Call option from Lesson 1:

e −αk
Z ∞
C0 = e −iνk Ψ(ν) dν
π 0

To solve this integral, however, we need to use some kind of discretization technique. For example, the
trapezoidal rule:
Z b η
f (x) dx ≈ T (f , η) = (f (x0 ) + 2f (x1 ) + 2f (x2 ) + ... + 2f (xN−2 ) + 2f (xN−1 ) + f (xN ))
a 2
Truncating the upper limit of the integral above to B, and applying the trapezoidal rule, yields the DFT:

∞ N
e −αk e −αk B e −αk X −iνj k
Z Z
CT (k) = e −iνk Ψ(ν) dν ≈ e −iνk Ψ(ν) dν ≈ e Ψ(νj )η (1)
π 0 π 0 π j=1

where νj = η(j − 1) and η = B/N.


3
Fast Fourier Transform (FFT)
While the latter expression for DFT is relatively easy to compute, there is a faster way that decreases
computational costs: the Fast Fourier Transform (FFT).
The FFT maps a vector of the type x = (xj )N
j=1 to a vector g (xu ) such that:

N
X 2π (j−1)(u−1)
g (xu ) = e −i N xj , for u = 1, ..., N.
j=1

Then, we can create a range [−b, b] for the LogK partitioned into N with λ equal spacing such that:

ku = −b + λ(u − 1) , for u = 1, ..., N.

Substituting ku and νj = η(j − 1) in Eq. (1) yields

N N
e −αku X −iνj ku e −αku X −iλη(j−1)(u−1) ibνj
CT (ku ) ≈ e Ψ(νj )η = e e Ψ(νj )η
π j=1
π j=1

where usually λη = 2π/N and e ibνj Ψ(νj )η = xj in FFT. CT (ku ) gives the European call price for N strikes.
4
FFT with Simpson’s Rule
The trapezoidal rule is a valid and useful discretization technique. However, sometimes, the Simpson rule is
preferred:
Z b η
f (x) dx ≈ S(f , η) = (f (x0 ) + 4f (x1 ) + 2f (x2 ) + 4f (x3 ) + ... + 2f (x2N−2 ) + 4f (x2N−1 ) + f (x2N ))
a 3

Applying Simpson’s rule in the same spirit as before on Eq. (1) yields

N
e −αku X −i2π (j−1)(u−1) ibνj η
CT (ku ) = e N e Ψ(νj ) (3 + (−1)j − δj−1 )
π j=1
3

where νj = η(j − 1), η = B/N and δn = In=0 .

▶ This is the case for ITM options. For the OTM case, there are some stability issues that we will tackle in
the future.

▶ This equation is implemented in the Python code from Lesson 1.

5
Wrap-up of Lesson 3
In Lesson 3, we have looked at:

▶ Discrete and Fast Fourier Transforms


▶ Discretization techniques: Trapezoidal and Simpson rules

⇒ TO-DO NEXT: Now you can go back to the Jupyter Notebook from Lesson 1, implementing FFT. You
should be able to better understand the code now.
Please note that we focus mainly on the ITM/ATM case. The OTM case (for which you also have the code)
requires a few extra tweaks to ensure integrability and numerical stability.

⇒ In the next lesson, we will look at how the semi-closed form solution in Lewis (2001) and FFT come in
handy to perform a calibration of Heston model parameters.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy