The Hybrid Heston-Hull-White Model in the H1HW Approximation

In his PhD thesis [1] Lech Grzelak studies several hybrid equity interest rate models. Among others the thesis presents the H1HW approximation of the hybrid Heston-Hull-White model:

\begin{array}{rcl} dS_t &=& (r_t-q_t) S_t dt + \sqrt{v_t} S_t dW_t^S \\ dv_t &=& \kappa_v (\theta_v - v_t) dt + \sigma_v \sqrt{v_t} dW_t^v \\ dr_t & = & \kappa_r(\theta_{r,t}-r_t) dt + \sigma_r dW_t^r \\ \rho_{Sv} dt &=& dW_t^S dW_t^v\\ \rho_{Sr} dt &=& dW_t^S dW_t^r \\ \rho_{vr} dt &=& dW_t^v dW_t^r \end{array}

This model is tailor-made to analyse the impact of stochastic interest rates on structured equity notes like e.g. auto-callables. The corresponding partial differential equation

\begin{array}{rcl} 0 &=& \frac{\partial u}{\partial t} + \frac{1}{2}S^2\nu \frac{\partial^2 u}{\partial S^2}+ \frac{1}{2}\sigma_\nu^2\nu\frac{\partial^2u}{\partial \nu^2}+ \frac{1}{2}\sigma_r^2\frac{\partial^2 u}{\partial r^2} + \rho_{S\nu}\sigma_\nu S\nu\frac{\partial^2u}{\partial S\partial\nu} + \rho_{Sr}\sigma_r S\sqrt\nu \frac{\partial^2 u}{\partial S\partial r} \nonumber\\ &+& (r-q)S\frac{\partial u}{\partial S}+ \kappa_v(\theta_v-\nu)\frac{\partial u}{\partial \nu}+ \kappa_r(\theta_{r,t}-r)\frac{\partial u}{\partial r} -ru \nonumber \end{array}

does not fit into into the affine diffusion process framework and therefore has no closed form solution based on the characteristic function like the Heston model.

The H1HW approximation replaces the term \sqrt \nu in the correlation interaction by its expectation value E(\sqrt\nu). Semi closed form solutions for E(\sqrt\nu) exist, if \nu_t is a CIR type process. The corresponding hybrid model is affine and a pricing engine for plain vanilla options can easily be implemented in QL based on the characteristic function framework.

The diagram below shows the root-mean-square error for vanilla european options with strikes equal to 40%, 80%, 100%, 120% and 180%. The parameters of the process are given by

\kappa_v=0.3, \theta_v=0.05, \rho_{S\nu}=0.3, \rho_{Sr}=-0.6, \kappa_r=0.01, \sigma_r=0.01

The vol-of-vol \sigma_{\nu} is set so that the Feller parameter \sigma_\nu^2/(\kappa_v \theta_v) varies between 0.25 and 128. The reference prices are calculated using the finite difference Heston-Hull-White engine.

The results of the H1HW approximation look very well if the Feller constraint \sigma_\nu^2/(\kappa_\nu \theta_\nu) < 2 is fulfilled but has problems in high \sigma_\nu scenarios. The integration of the characteristic function of the H1HW approximation becomes unstable if \rho_{Sr} < 0. The example code is available here and depends on the latest QL version based from the SVN trunk.

[1] Lech A. Grzelak: Equity and Foreign Exchange Hybrid Models for Pricing Long-Maturity Financial Derivatives

Running QuantLib on a Raspberry Pi

QuantLib 1.2 runs on a Raspberry Pi, a credit card computer build around an 700MHz ARM processor and priced at US$ 35. Compiling QL on the Pi is straight forward:

  1. install boost unit tests: sudo apt-get install libboost-test-dev
  2. ./configure –disable-static
  3. make

If your distribution is based on boost 1.49 then you will get many warnings like “Warning: swp{b} use is deprecated for this architecture”. These warnings can be ignored or follow the short note here to get rid of them. The QuantLib benchmark runs at 28.3MFlops, which is comparable to the performance of an Pentium II@300MHz.