Heston ITM and OTM options pricing

In the Carr and Madan (1999) methodology exploiting the fast Fourier transform, the quasi-analytical price of a call is given by:

$$C(t,T,K)=e^{-r(T-t)}\frac{e^{-\alpha \log (K)}}{\pi}Re\left[\int_0^\infty e^{-iu \log(K)} \frac{\psi_t(u-i(1+\alpha))}{\alpha^2+\alpha-u^2+i(1+2\alpha)u}du\right]$$

where $\psi_t(u)$ is the characteristic function of the log-price and $\alpha$ a control parameter for the integral.

It appears to me that pricing deeply ITM and OTM options is quite unstable using the numerical integral and I obtain often prices that are not possible. For example with a strike of approximately 0 I obtain call prices higher than the stock prices.

Is it a known problem? How can I avoid these numerical issues and get the right price?

What is actually done in practice?

• This formulation is indeed known to suffer from precision issues, at least if you naively pick the damping coefficient $\alpha$. Lord R. and Kahl C. have worked on an optimal method to determine the latter, see Optimal Fourier inversion in semi-analytical option pricing, 2007, papers.ssrn.com/sol3/papers.cfm?abstract_id=921336. Also you should have a look at the The little Heston trap paper by Schoutens et al. if you haven't already, perswww.kuleuven.be/~u0009713/HestonTrap.pdf – Quantuple Apr 12 '17 at 8:18
• Note that the original paper mentions this problem as well in Section 3.2. They refer to instabilities for out-of-the money options and short maturities. A better description of this would probably be sth. like "a high number of standard-deviations-till-maturity away". – LocalVolatility Apr 12 '17 at 9:38
• Apart from the reference that @Quantuple provided, I would recommend you have a look at Fang and Oosterlee (2008) "A Novel Pricing Method for European Options Based on Fourier-Cosine Series Expansions". I found this approach to be more stable for out-of-the money options. It can be vectorized just like the Carr and Madan (1999) method and has the added advantage that you can freely choose your strike grid. – LocalVolatility Apr 12 '17 at 9:38

1 Answer

There are a number of tricks. My favourite is to use the Black--Scholes price as a control. The integrals become much better behaved. You compute the difference of the Heston price from the BS price which is the same for calls and puts so there are no ITM vs OTM issues.

In my paper with Chao Yang, we investigate the problem of what implied vol to use in the control.

Joshi, Mark S. and Yang, Chao, Fourier Transforms, Option Pricing and Controls (October 9, 2011). Available at SSRN: https://ssrn.com/abstract=1941464 or http://dx.doi.org/10.2139/ssrn.1941464

I also have extensive discussion in my book More Mathematical Finance.