Take the 2-minute tour ×
Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. It's 100% free, no registration required.

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$.

In this example, the Black-Scholes equation indicates that the option fair value should be $1.07$. How can I reproduce this result using the (fast?) Fourier transformation method?

share|improve this question
    
Your question is tagged with heston - are you asking about how to value vanilla options with FFT under the heston model specifically? –  experquisite Oct 23 '13 at 18:45
    
@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. –  sets Oct 24 '13 at 7:09
    
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). –  sets Oct 29 '13 at 12:26
    
Anyone can give us an example with Interest Rates Derivative? –  Allan Apr 15 at 2:17
add comment

4 Answers

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):

CallPricingFFT('BlackScholes',14,10,12,2,0.05,0)

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

share|improve this answer
    
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. –  Freakalien Nov 5 '13 at 4:42
    
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... –  Freakalien Nov 5 '13 at 9:00
add comment

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

share|improve this answer
    
+1, thanks for your explanation –  sets Nov 4 '13 at 8:28
1  
@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. –  Freakalien Nov 5 '13 at 1:34
add comment

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ý

share|improve this answer
    
+1 nice article –  Rustam Nov 1 '13 at 13:53
    
+1: This is what I would have posted (but you were faster ;-) –  vonjd Nov 3 '13 at 10:52
    
@vonjd: were you one of his students ? –  BlueTrin Nov 3 '13 at 21:30
    
+1. Very clear explanation indeed. thanks @BlueTrin –  sets Nov 4 '13 at 8:11
1  
@BlueTrin: Unfortunately not, but I think he is a great teacher! –  vonjd Nov 4 '13 at 15:37
add comment

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

share|improve this answer
    
(+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! –  sets Oct 25 '13 at 9:57
4  
Careful. The blog post is largely correct, but prices a European-exercise options while claiming to price American-exercise. –  Brian B Oct 29 '13 at 13:56
    
True. I noticed when I did a C implementation. –  klon Oct 29 '13 at 21:33
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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