8.4 Applications

In this section, we apply the FFT option pricing algorithm of Section 8.3 to the models described in Section 8.2. Our aim is to demonstrate the remarkable speed of the FFT algorithm by comparing it to Monte Carlo simulations. Moreover, we present an application of the fast option pricing algorithm to the calibration of implied volatility (IV) surfaces. In Figure 8.1 we present the IV surface of DAX options on January 4, 1999 where the red points are the observed implied volatilities and the surface is fitted with the Nadaraya-Watson kernel estimator. For analysis of IV surfaces consult Fengler et al. (2002) and Chapter 5.

Figure 8.1: Implied volatility surface of DAX options on January 4, 1999.

\includegraphics[width=1.6\defpicwidth]{STFfft01.ps}

In order to apply the FFT-based algorithm we need to know the characteristic function of the risk neutral density which has been described in Section 8.2 for the Merton, Heston, and Bates models. Moreover, we have to decide on the parameters $ \alpha $, $ N$, and $ \eta$ of the algorithm. Schoutens et al. (2003) used $ \alpha=0.75$ in a calibration procedure for the Eurostoxx 50 index data. We follow their approach and set $ \alpha $ to this value. The computation time depends on the parameter $ N$ which we set to $ 512$. As the number of grid points of the numerical integration is also given by $ N$, this parameter in addition determines the accuracy of the prices. For parameter $ \eta$, which determines the distance of the points of the integration grid, we use $ 0.25$. A limited simulation study showed that the FFT algorithm is not sensitive to the choice of $ \eta$, i.e. small changes in $ \eta$ gave similar results. In Section 8.3, we have already discussed the relation between these parameters.

For comparison, we computed the option prices also by Monte Carlo simulations with $ 500$ time steps and $ 5000$ repetitions. Such simulations are a convenient way to check the results of the FFT-based algorithm. The calculations are based on the following parameters: the price of the underlying asset is $ S_0 = 100$, time to maturity $ T=1$, and the interest rate $ r=0.02$. For demonstration we choose the Heston model with parameters: $ \kappa
= 10$, $ \theta = 0.2 $, $ \sigma= 0.7 $, $ \rho = -0.5,$ and $ v_0 =
0.2$. To make our comparison more sound we also calculate prices with the analytic formula given in Chapter 7. In the left panel of Figure 8.2 we show the prices of European call options as a function of the strike price $ K$. As the prices obtained with the analytical formula are close to the prices obtained with the FFT-based method and the Monte Carlo prices oscillate around them, this figure confirms that the pricing algorithm works correctly. The different values of the Monte Carlo prices are mainly due to the random nature of this technique. One needs to use even more time steps and repetitions to get better results. The minor differences between the analytical and FFT-based prices come form the fact that the latter method gives the exact values only on the grid (8.16) and between the grid points one has to use some interpolation method to approximate the price of the option. This problem can be more clearly observed in the right panel of Figure 8.2, where percentage differences between the analytical and FFT prices are presented. In order to preserve the great speed of the algorithm we simply use linear interpolation between the grid points. This approach, however, slightly overestimates the true prices since the call option price is a convex function of the strike. It can be clearly seen that near the grid points the prices obtained by both methods coincide, while between the grid points the FFT-based algorithm generates higher prices than the analytical solution.

Figure 8.2: Left panel: European call option prices obtained by Monte Carlo simulations (filled circles), analytical formula (crosses) and the FFT method (solid line) for the Heston model. Right panel: Percentage differences between analytical and FFT prices.
\includegraphics[width=.7\defpicwidth]{STFfft02a.ps} \includegraphics[width=.7\defpicwidth]{STFfft02b.ps}

Although these methods yield similar results they need different computation time. In Table 8.1 we compare the speed of C++ implementations of the Monte Carlo and FFT methods. We calculate Monte Carlo prices for $ 20$ different strikes for each of the three models. The speed superiority of the FFT-based method is clearly visible. It is more than $ 3000$ times faster than the Monte Carlo approach.


Table: The computation times in seconds for the FFT method and the Monte Carlo method for three different models. Monte Carlo prices were calculated for $ 20$ different strikes, with $ 500$ time steps and $ 5000$ repetitions.

Model FFT MC
     
Merton 0.01 31.25
Heston 0.01 34.41
Bates 0.01 37.53

As an application of the fast pricing algorithm we consider the problem of model calibration. Given option prices observed in the market we look for model parameters that can reproduce the data well. Normally, the market prices are given by an implied volatility surface which represents the implied volatility of option prices for different strikes and maturities. The calibration can then be done for the implied volatilities or for the option prices. This decision depends on the problem considered. As a measure of fit one can use the Mean Squared Error (MSE):

$\displaystyle MSE= \frac{1}{\text{number of options}} \sum_{\text{options}} \frac{ (\text{market price - model price})^2}{\text{market price}^2},$ (8.18)

but other choices like the Mean Absolute Percentage Error (MAPE) or Mean Absolute Error (MAE) are also possible:

\begin{align*}\begin{split}MAPE &= \frac{1}{\text{number of options}} \sum_{\tex...
...t{options}} \mid \text{market price - model price} \mid. \end{split}\end{align*}    

Moreover, the error function can be modified by weights if some regions of the implied volatility surface are more important or some observations should be ignored completely.

The calibration results in a minimization problem of the error function $ MSE$. This optimization can be carried out by different algorithms like simulated annealing, the Broyden-Fletcher-Goldfarb-Shanno-algorithm, the Nelder-Mead simplex algorithm or Monte Carlo Markov Chain methods. An overview of optimization methods can be found in Cízková (2003). As minimization algorithms normally have to compute the function to be minimized many times an efficient algorithm for the option prices is essential. The FFT-based algorithm is fairly efficient as is shown in Table 8.1. Moreover, it returns prices for a whole range of strikes at one maturity. This is an additional advantage because for the calibration of an implied volatility surface one needs to calculate prices for many different strikes and maturities.

Figure 8.3: The observed implied volatilities of DAX options on January 4, 1999 (circles) and fitted Bates model (line) for 4 different maturity strings.

\includegraphics[width=1.43\defpicwidth]{STFfft03.ps}

As an example we present the results for the Bates model calibrated to the IV surface of DAX options on January 4, 1999. The data set, which can be found in MD*Base , contains $ 236$ option prices for $ 7$ maturities (for each maturity there is a different number of strikes). We minimize (8.18) with respect to $ 8$ parameters of the Bates model: $ \lambda, \delta,
\overline{k}, \kappa, \theta, \sigma, \rho, v_0 $. Since the function (8.18) has many local minima, we use the simulated annealing minimization method, which offers the advantage to search for a global minimum, combined with the Nelder-Mead simplex algorithm. As a result we obtaine the following estimates for the model parameters: $ \widehat{\lambda} = 0.13 $, $ \widehat{\delta} = 0.0004 $, $ \widehat{\overline{k}} = -0.03$, $ \widehat{\kappa} = 4.23$, $ \widehat{\theta} = 0.17$, $ \widehat{\sigma} = 1.39$, $ \widehat{\rho} = -0.55$, $ \widehat{v_0} = 0.10$, and the value of $ MSE$ is $ 0.00381$. In Figure 8.3 we show the resulting fits of the Bates model to the data for $ 4$ different maturities. The red circles are implied volatilities observed in the market on the time to maturities $ T = 0.21, 0.46, 0.71, 0.96$ and the blue lines are implied volatilities calculated from the Bates model with the calibrated parameters. In the calibration we used all data points. As the FFT-based algorithm computes prices for the whole range of strikes the biggest impact on the speed of calibration has the number of used maturities, while the total number of observations has only minor influence on the speed.

On the one hand, the Carr-Madan algorithm offers a great speed advantage but on the other hand its applications are restricted to European options. The Monte Carlo approach instead works for a wider class of derivatives including path dependent options.

Thus, this approach has been modified in different ways. The accuracy can be improved by using better integration rules. Carr and Madan (1999) considered also the Simpson rule which leads - taking (8.17) into account - to the following formula for the option prices:

$\displaystyle C_T(k_u) \approx \frac{\exp (-\alpha k)}{\pi} \sum_{j=0}^{N-1} e^...
...{1}{2}N \zeta - s_0) v_j \} } \psi (v_j) \frac{\eta}{3} \{ 3+(-1)^j- I(-j=0)\}.$    

This representation again allows a direct application of the FFT to compute the sum.

An alternative to the original Carr-Madan approach is to consider instead of (8.13) other modifications of the call prices. For example, Cont and Tankov (2004) used the (modified) time value of the options:

$\displaystyle \tilde{c}_T(k)=C_T(k)-\max(1-e^{k-rT},0).$    

Although this method also requires the existence of $ \alpha $ satisfying $ E(S_T^{\alpha +1}) < \infty$ the parameter does not enter into the final pricing formula. Thus, it is not necessary to choose any value for $ \alpha $. This freedom of choice of $ \alpha $ makes the approach easier to implement. On the other hand, option price surfaces that are obtained with this method often have a peak for small maturities and strikes near the spot. This special form differs from the surfaces typically observed in the market. The peak results from the non-differentiability of the intrinsic value at the spot. Hence, other modifications of the option prices have been considered that make the modified option prices differentiable (Cont and Tankov; 2004).

The calculation of option prices by the FFT-based algorithm leads to different errors. The truncation error results from substituting the infinite upper integration limit by a finite number. The sampling error comes from evaluating the integrand only at grid points. Lee (2004) gives bounds for these errors and discusses error minimization strategies. Moreover, he presents and unifies extensions of the original Carr-Madan approach to other payoff classes. Besides the truncation and the sampling error, the implementation of the algorithm often leads to severe roundoff errors because of the complex form of the characteristic function for some models. To avoid this problem, which often occurs for long maturities, it is necessary to transform the characteristic function.

Concluding, we can say that the FFT-based option pricing method is a technique that can be used whenever time constraints are important. However, in order to avoid severe pricing errors its application requires careful decisions regarding the choice of the parameters and the particular algorithm steps used.