I am trying to understand how Fourier transforms & Characteristics functions can be used to calculate option values.

However, I am having difficulty following the process that is used in several introductory papers like: Carr & Madam, Liuren Wu, Schmelze or Chourdakis (chapter 4)

In order to obtain an intuitive understanding of this method, it will be very helpful if someone could provide me with an example on how to calculate option prices using this pricing technique.

Since this is not homework, any intuitive example will be greatly appreciated.

EDIT: as a potential example, consider that we want to estimate the fair value of an European call option struck at $K = 12$ and with time to maturity $T = 2$ years. The underlying asset $S$ has initial price $S_0 = 10$ and its returns volatility is $\sigma = 0.25$. The risk free rate is $r = 0.05$.

For the previous example, the Black-Scholes equation indicates that the option fair value should be $1.07$. How can I reproduce this result using Fourier transforms?

  • $\begingroup$ Your question is tagged with heston - are you asking about how to value vanilla options with FFT under the heston model specifically? $\endgroup$ Oct 23, 2013 at 18:45
  • $\begingroup$ @experquisite, I have deleted the heston tag. For simplicity, the proposed example is restricted to the BSM world, but any other numerical example that illustrates the process will be much appreciated. $\endgroup$
    – sets
    Oct 24, 2013 at 7:09
  • $\begingroup$ I know that answering this question might be time consuming, but adding a bounty I hope to stimulate answers to include more content that just an external link (even if useful links are welcome and upvoted). $\endgroup$
    – sets
    Oct 29, 2013 at 12:26
  • $\begingroup$ Anyone can give us an example with Interest Rates Derivative? $\endgroup$
    – user7802
    Apr 15, 2014 at 2:17
  • 1
    $\begingroup$ I give a very detailed exposition in "More Mathematical Finance" see also my paper on the use of controls: ssrn.com/abstract=1941464 $\endgroup$
    – Mark Joshi
    Jun 11, 2015 at 1:40

4 Answers 4


When the pdf of a distribution is not known analytically, it's common to compute by taking the inverse Fourier transform of its characteristic function. The same idea applies here. Consider the discounted expectation formula of a European option $$V (S,\tau) = e^{-r\tau} \mathbb{E}_{x_0} [\theta(x_T)] $$. for log prices $x$ and time to expiry $\tau=T-t$. In integral form this is $$V (S,\tau)= e^{-r\tau} \int_{-\infty}^\infty \theta(x_T) f(x_T|x_0) dx_T $$ where $f(x_T|x_0)$ is the transition probability density (i.e. probabiltiy of reaching $x_T$ given $x$). For assets following certain distributions, $f$ can be hard to find analytically and may not even exist (consider the stable distribution). However, for the large majority of distributions used in finance, the Fourier transform (or characteristic function) is. So recasting the pricing problem in the Fourier domain is quite natural. Let's do this by applying the Fourier transform to the discounted expectation formula. Introduce the damping $\exp (\alpha x)$ so that $\exp (\alpha x) \theta(x) \in \mathbb{L}^2(\mathbb{R})$ \begin{align} \hat{V} (S,\tau) &= e^{-r \tau} \mathcal{F} \{\mathbb{E}_{x_0} [e^{\alpha x} \theta(x_T)] \} \\ &= e^{-r\tau} \mathbb{E}_{x_0} [\hat{\theta}_\alpha(x_T) ] . \end{align} By Fourier inversion \begin{align} V(S, \tau) &= e^{-r\tau} \mathcal{F}^{-1} \{ \mathbb{E}_{x_0} [\hat{\theta}_\alpha (x_T) ] \} \\ &= \frac{e^{-r\tau}}{2 \pi} \int_{-\infty+i \alpha}^{\infty+i \alpha} \hat{\theta}_\alpha (x_T) \mathbb{E}_{x_0} [e^{iux_T}] dx_T \\ &= \frac{e^{-r\tau}}{2 \pi} \int_{-\infty+i \alpha}^{\infty+i \alpha} \hat{\theta}_\alpha (x_T) \mathbb{E}_{x_0} [e^{iux_T-iux_0+iux_0}] dx_T \\ &=\frac{e^{-r\tau}}{2 \pi} \int_{-\infty+i \alpha}^{\infty+i \alpha} \hat{\theta}_\alpha (x_T) \phi(u;T) e^{iux_0} dx_T \end{align} where $\phi(u;T):=\mathbb{E}_{x_0} [e^{iu(x_T-x_0)}]$ is the characteristic function of the log price process.

To address your question of computation, MATLAB code is available for the Carr and Madan method. Using the MAIN FUNCTION and the characteristic function LIBRARY, you can call the function (untested):


which will return your call option price of 1.073389...

  • $\begingroup$ It looks like you have assumed that the Fourier transform $\hat{\theta}$ of the terminal payoff function $\theta$ exists. This requires that $\theta$ be integrable. But even for the trivial case of a European call payoff this is not true. This is why Carr and Madan damped the payoff function - to ensure its integrability and thereby the existence of the Fourier transform of the damped payoff function. $\endgroup$
    – Freakalien
    Nov 5, 2013 at 4:42
  • $\begingroup$ Thanks for the edit. Ok, you've damped the payoff, but now you take the Fourier transform of its expectation? The Fourier transform of a constant is the Dirac measure. Next you, somehow, convert this into an expectation of a Fourier transform (which is non-random anyhow) before finally ending up with a version of the Fourier Inversion Theorem that involves a contour integral. I'm not sure what else I add... $\endgroup$
    – Freakalien
    Nov 5, 2013 at 9:00

Aleš Černý has very simple examples in his book. Alternatively, this paper seems to recap part of the chapter on Fourier series:

Introduction to Fast Fourier Transform in Finance - Aleš Černý

  • 1
    $\begingroup$ +1: This is what I would have posted (but you were faster ;-) $\endgroup$
    – vonjd
    Nov 3, 2013 at 10:52
  • $\begingroup$ @vonjd: were you one of his students ? $\endgroup$
    – BlueTrin
    Nov 3, 2013 at 21:30
  • 1
    $\begingroup$ @BlueTrin: Unfortunately not, but I think he is a great teacher! $\endgroup$
    – vonjd
    Nov 4, 2013 at 15:37

I think this blog post is quite good at explaining option pricing via fourier transforms.

  • $\begingroup$ (+1) @klon, thanks for the link. That blog post provides indeed a good explanation of Fourier transforms. However, if possible I will be still very interested in see how the FT method can be used in a numerical example. For instance, an example along the lines of the proposed option in the BSM world will be perfect, but any other numerical illustration will do. Thanks in advance! $\endgroup$
    – sets
    Oct 25, 2013 at 9:57
  • 5
    $\begingroup$ Careful. The blog post is largely correct, but prices a European-exercise options while claiming to price American-exercise. $\endgroup$
    – Brian B
    Oct 29, 2013 at 13:56
  • $\begingroup$ True. I noticed when I did a C implementation. $\endgroup$
    – Jonas K
    Oct 29, 2013 at 21:33

Let $C$ be the price of the option, $S_t=S_0e^{X_t}$ be the stock price, $r$ be the risk-free rate, $K$ be the strike price, $T$ be the maturity time, $m=S_0/K$, $f$ be the density of $X_T$ and $\phi$ be the characteristic function $E(e^{i\xi X_T})$ which we assume is known.

$$ C = e^{-rT}E((S_T-K)^+) = e^{-rT}S_0\int_{-\infty}^\infty \left(e^x-m\right)\mathbb{I}_{\{x>\ln(m)\}}f(x)dx \\ = e^{-rT}S_0\int_{-\infty}^\infty e^{-ax}\left(e^{ax}\left (e^x-m\right)\mathbb{I}_{\{x>\ln(m)\}}\right)f(x)dx. $$

We exponentially damp the payoff is order to ensure its Fourier transform exists. Then we re-write the last in terms of the inverse Fourier transform of the Fourier transform of the damped payoff. Note that the damped payoff is integrable so long as $a<-1$.

Now the Fourier transform of the damped payoff is $$ \mathcal{F}\left(e^{ax}\left (e^x-\frac{K}{S_0}\right)\mathbb{I}_{\{x>m\}}\right):=h(\xi) = \frac{m^{1+a+i\xi}}{(a+i\xi)(1+a+i\xi)} $$ which then allows $$ C = e^{-rT}S_0\int_{-\infty}^{\infty}e^{-ax}\left( \frac{1}{2\pi}\int_{-\infty}^{\infty} h(\xi)e^{-ix\xi}d\xi \right) f(x)dx \\ = e^{-rT}S_0 Re\left( \int_{-\infty}^{\infty}e^{-ax}\left( \frac{1}{\pi}\int_{0}^{\infty} h(\xi)e^{-ix\xi}d\xi \right) f(x)dx \right) \\ = \frac{e^{-rT}S_0}{\pi}Re\left( \int_{0}^{\infty} \left( \int_{-\infty}^{\infty}f(x)e^{i(ia-\xi)x}dx \right)h(\xi)d\xi \right) \\ = \frac{e^{-rT}S_0}{\pi}S_0\ Re \left( \int_{0}^{\infty} \phi(ia-\xi)h(\xi)d\xi \right). $$ The second step here is justified because the damped payoff is real. Hence $h$ is even in its real part and odd in its imaginary part. The third step requires Fubini's theorem which holds in most cases of interest.

This expression can be used immediately to price a single option or allows discretisation in a form compatible with the FFT. If you use the FFT with $N$ discretisation points the output will be $N$ option prices calculated for $N$ levels of $m$ (which may be useful for calibration).

See Pascucci (2011) PDE and martingale methods in option pricing (chapter 15) for more details and for a newer method using cosine expansions.

P.S. I have added an image of some simple Mathematica code for the GBM case.

enter image description here

  • 1
    $\begingroup$ @sets, I'll just add a little note. If we were to use the obvious Fourier transform method we would merely invert the density function. However this would then give us a 2D integral. However, by combining the exponential damping and judicious use of Fubini's theorem we can solve the problem with a 1D integral which of course will allow much quicker pricing. The method can also be used in higher dimensions. $\endgroup$
    – Freakalien
    Nov 5, 2013 at 1:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.