# 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