7.3 Option Pricing

Consider the value function of a general contingent claim $ U(t,v,S)$ paying $ g(S)=U(T,v,S)$ at time $ T$. We want to replicate it with a self-financing portfolio. Due to the fact that in Heston's model we have two sources of uncertainty (the Wiener processes $ W^{(1)}$ and $ W^{(2)}$) the portfolio must include the possibility to trade in the money market, the underlying and another derivative security with value function $ V(t,v,S)$.

We start with an initial wealth $ X_0$ which evolves according to:

$\displaystyle dX=\Delta\,dS+\Gamma\,dV+r_d(X-\Gamma V)\,dt-(r_d-r_f)\Delta S\,dt,$ (7.5)

where $ \Delta$ is the number of units of the underlying held at time $ t$ and $ \Gamma$ is the number of derivative securities $ V$ held at time $ t$. Since we are operating in a foreign exchange setup, we let $ r_d$ and $ r_f$ denote the domestic and foreign interest rates, respectively. The goal is to find $ \Delta$ and $ \Gamma$ such that $ X_t=U(t,v_t,S_t)$ for all $ t\in[0,T]$. The standard approach to achieve this is to compare the differentials of $ U$ and $ X$ obtained via Itô's formula. After some algebra we arrive at the partial differential equation which $ U$ must satisfy:
$\displaystyle \frac{1}{2}vS^2 \frac{\partial^2 U}{\partial S^2}
+ \rho\sigma vS...
...v \frac{\partial^2 U}{\partial v^2}
+ (r_d-r_f)S \frac{\partial U}{\partial S}+$      
$\displaystyle + \Big\{\kappa(\theta-v)-\lambda(t,v,S) \Big\} \frac{\partial U}{\partial v}
- r_dU + \frac{\partial U}{\partial t}$ $\displaystyle =$ $\displaystyle 0.$ (7.6)

For details on the derivation in the foreign exchange setting see Hakala and Wystup (2002). The term $ \lambda(t,v,S)$ is called the market price of volatility risk. Without loss of generality its functional form can be reduced to $ \lambda(t,v,S)=\lambda v$, Heston (1993). We obtain a solution to (7.6) by specifying appropriate boundary conditions. For a European vanilla option these are:
$\displaystyle U(T,v,S)$ $\displaystyle =$ $\displaystyle \max\{\phi(S-K),0\},$ (7.7)
$\displaystyle U(t,v,0)$ $\displaystyle =$ $\displaystyle \frac{1-\phi}{2}Ke^{-r_d\tau},$ (7.8)
$\displaystyle \frac{\partial U}{\partial S}(t,v,\infty)$ $\displaystyle =$ $\displaystyle \frac{1+\phi}{2}e^{-r_f\tau},$ (7.9)


$\displaystyle (r_d-r_f)S \frac{\partial U}{\partial S}(t,0,S)+ \phantom{(t,0,S)}$      
$\displaystyle + \, \kappa\theta \frac{\partial U}{\partial v}(t,0,S)
+ \frac{\partial U}{\partial t}(t,0,S)$ $\displaystyle =$ $\displaystyle r_dU(t,0,S),$ (7.10)
$\displaystyle U(t,\infty,S)$ $\displaystyle =$ \begin{displaymath}\begin{cases}Se^{-r_f\tau}, \quad \textrm{for} ~~\phi=+1,\\
Ke^{-r_d\tau}, \quad \textrm{for} ~~\phi=-1, \end{cases}\end{displaymath} (7.11)

where $ \phi$ is a binary variable taking value $ +1$ for call options and $ -1$ for put options, $ K$ is the strike in units of the domestic currency, $ \tau=T-t$, $ T$ is the expiration time in years, and $ t$ is the current time. In this case, PDE (7.6) can be solved analytically using the method of characteristic functions (Heston; 1993). The price of a European vanilla option is hence given by:
$\displaystyle h(t)$ $\displaystyle =$ $\displaystyle \textrm{HestonVanilla}
(\kappa,\theta,\sigma,\rho,\lambda,r_d,r_f,v_0,S_0,K,\tau,\phi)$  
  $\displaystyle =$ $\displaystyle \phi \big\{ e^{-r_f\tau}S_tP_+(\phi)-Ke^{-r_d\tau}P_-(\phi) \big\},$ (7.12)

where $ a=\kappa\theta$, $ u_1=\frac{1}{2}$, $ u_2=-\frac{1}{2}$, $ b_1=\kappa+\lambda-\sigma\rho$, $ b_2=\kappa+\lambda$, $ x=\log S_t$, $ d_j=\sqrt{(\rho\sigma\varphi i -b_j)^2-\sigma^2(2u_j\varphi i-\varphi^2)}$, $ g_j=(b_j-\rho\sigma\varphi i
+d_j)/(b_j-\rho\sigma\varphi i -d_j)$, and
$\displaystyle D_j(\tau,\varphi)$ $\displaystyle =$ $\displaystyle \frac{b_j-\rho\sigma\varphi i
+d_j}{\sigma^2}\left(\frac{1-e^{d_j\tau}}{1-g_je^{d_j\tau}}\right),$ (7.13)
$\displaystyle C_j(\tau,\varphi)$ $\displaystyle =$ $\displaystyle (r_d-r_f)\varphi i\tau +$ (7.14)
    $\displaystyle + \, \frac{a}{\sigma^2}\left\{(b_j-\rho\sigma\varphi i +
d)\tau-2\log\left(\frac{1-g_je^{d_j\tau}}{1-e^{d_j\tau}}\right)\right\},$  
$\displaystyle f_j(x,v,t,\varphi)$ $\displaystyle =$ $\displaystyle \exp\{C_j(\tau,\varphi)+D_j(\tau,\varphi)v+i\varphi x\},$ (7.15)
$\displaystyle P_j(x,v,\tau,y)$ $\displaystyle =$ $\displaystyle \frac{1}{2}+\frac{1}{\pi}\int_0^{\infty}
\Re\left\{\frac{e^{-i\varphi y}f_j(x,v,\tau,\varphi)}{i\varphi}\right\}\,d\varphi,$ (7.16)
$\displaystyle p_j(x,v,\tau,y)$ $\displaystyle =$ $\displaystyle \frac{1}{\pi}\int_0^{\infty}\Re\left\{e^{-i\varphi y}f_j(x,v,\tau,\varphi)\right\}\,d\varphi.$ (7.17)

The functions $ P_j$ are the cumulative distribution functions (in the variable $ y$) of the log-spot price after time $ \tau=T-t$ starting at $ x$ for some drift $ \mu$. The functions $ p_j$ are the respective densities. The integration in (7.17) can be done with the Gauss-Legendre algorithm using $ 100$ for $ \infty$ and $ 100$ abscissas. The best is to let the Gauss-Legendre algorithm compute the abscissas and weights once and reuse them as constants for all integrations. Finally:
$\displaystyle P_+(\phi)$ $\displaystyle =$ $\displaystyle \frac{1-\phi}{2}+\phi P_1(\log S_t,v_t,\tau,\log K),$ (7.18)
$\displaystyle P_-(\phi)$ $\displaystyle =$ $\displaystyle \frac{1-\phi}{2}+\phi P_2(\log S_t,v_t,\tau,\log K).$ (7.19)

Apart from the above closed-form solution for vanilla options, alternative approaches can be utilized. These include finite difference and finite element methods. The former must be used with care since high precision is required to invert scarce matrices. The Crank-Nicholson, ADI (Alternate Direction Implicit), and Hopscotch schemes can be used, however, ADI is not suitable to handle nonzero correlation. Boundary conditions must be also set appropriately. For details see Kluge (2002). Finite element methods can be applied to price both the vanillas and exotics, as explained for example in Apel, Winkler, and Wystup (2002).


7.3.1 Greeks

The Greeks can be evaluated by taking the appropriate derivatives or by exploiting homogeneity properties of financial markets (Reiss and Wystup; 2001). In Heston's model the spot delta and the so-called dual delta are given by:

$\displaystyle \Delta=\frac{\partial h(t)}{\partial S_t}=\phi e^{-r_f\tau}P_+(\p...
...textrm{and} \quad \frac{\partial h(t)}{\partial K}=-\phi e^{-r_d\tau}P_-(\phi),$ (7.20)

respectively. Gamma, which measures the sensitivity of delta to the underlying has the form:

$\displaystyle \Gamma = \frac{\partial \Delta}{\partial S_t}=\frac{ e^{-r_f\tau}}{S_t}p_1(\log S_t, v_t, \tau, \log K).$ (7.21)

$ Theta = \partial h(t) / \partial t$ can be computed from (7.6). The formulas for rho are the following:
$\displaystyle \frac{\partial h(t)}{\partial r_d}$ $\displaystyle =$ $\displaystyle \phi Ke^{-r_d\tau}\tau P_-(\phi),$ (7.22)
$\displaystyle \frac{\partial h(t)}{\partial r_f}$ $\displaystyle =$ $\displaystyle -\phi S_te^{-r_f\tau}\tau P_+(\phi).$ (7.23)

Note that in a foreign exchange setting there are two rho's - one is a derivative of the option price with respect to the domestic interest rate and the other is a derivative with respect to the foreign interest rate.

The notions of vega and volga usually refer to the first and second derivative with respect to volatility. In Heston's model we use them for the first and second derivative with respect to the initial variance:

$\displaystyle \frac{\partial h(t)}{\partial v_t}$ $\displaystyle =$ $\displaystyle e^{-r_f\tau}S_t\frac{\partial }{\partial v_t}P_1(\log S_t,v_t,\tau,\log K)-$  
    $\displaystyle - \, Ke^{-r_d\tau}\frac{\partial }{\partial v_t}P_2(\log S_t,v_t,\tau,\log K),$ (7.24)
$\displaystyle \frac{\partial^2 h(t)}{\partial v_t^2}$ $\displaystyle =$ $\displaystyle e^{-r_f\tau}S_t\frac{\partial^2 }{\partial v_t^2}P_1(\log S_t,v_t,\tau,\log K) -$  
    $\displaystyle - \, Ke^{-r_d\tau}\frac{\partial^2 }{\partial v_t^2}P_2(\log S_t,v_t,\tau,\log K),$ (7.25)

where
$\displaystyle \frac{\partial }{\partial v_t}P_j(x,v_t,\tau,y)$ $\displaystyle =$ $\displaystyle \frac{1}{\pi}
\int_0^{\infty}\Re\left[\frac{D(\tau,\varphi)e^{-i\varphi
y}f_j(x,v_t,\tau,\varphi)}{i\varphi}\right]\,d\varphi,$ (7.26)
$\displaystyle \frac{\partial^2 }{\partial v_t^2}P_j(x,v_t,\tau,y)$ $\displaystyle =$ $\displaystyle \frac{1}{\pi}
\int_0^{\infty}\Re\left[\frac{D^2(\tau,\varphi)e^{-i\varphi
y}f_j(x,v_t,\tau,\varphi)}{i\varphi}\right]\,d\varphi.$ (7.27)