Heston Stochastic Local Model

Klaus Spanderen1

R/Finance 2016 University of Illinois, Chicago May 20-21, 2016

1Joint work with Johannes Göttker-Schnetmann Klaus Spanderen Heston Stochastic Model 2016-05-20 1 / 19 Motivation

Combine two of the most popular pricing models, the Local Volatility model with x = ln St ! σ2 (x , t) dx = r − q − LV t dt + σ (x , t)dW t t t 2 LV t t

and the Heston Stochastic Volatility model  ν  √ dx = r − q − t dt + ν dW x t t t 2 t t √ ν dνt = κ (θ − νt ) dt + σ νt dWt ν x ρdt = dWt dWt

to control the forward volatility dynamics and the calibration error.

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 2 / 19 Model Definition

Add leverage function L(St , t) and mixing factor η to the :

 L2(x , t)  √ dx = r − q − t ν dt + L(x , t) ν dW x t t t 2 t t t t √ ν dνt = κ (θ − νt ) dt + ησ νt dWt ν x ρdt = dWt dWt

Leverage L(xt , t) is given by probability density p(xt , ν, t) and s R σ (x , t) + p(xt , ν, t)dν L(x , t)= LV t = σ (x , t) R t p LV t R νp(x , ν, t)dν E[νt |x = xt ] R+ t Mixing factor η tunes between stochastic and local volatility

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 3 / 19 Package RHestonSLV: Calibration and Pricing

Calibration:

Calculate Heston parameters {κ, θ, σ, ρ, vt=0} and σLV (xt , t)

Compute p(xt , ν, t) either by Monte-Carlo or PDE to get to the leverage function Lt (xt , t) Infer the mixing factor η from prices of exotic options

Package HestonSLV  Monte-Carlo and PDE calibration  Pricing of vanillas and exotic options like double-no-touch barriers  Implementation is based on QuantLib, www..org

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 4 / 19 Cheat Sheet: Link between SDE and PDE

Starting point is a linear, multidimensional SDE of the form:

dxt = µ(xt , t)dt + σ(xt , t)dW t

Feynman-Kac: the price of a u(xt , t) with boundary condition u(xT , T ) at maturity T is given by:

n n X 1 X  T  ∂t u + µi ∂x u + σσ ∂x ∂x u − ru = 0 k 2 kl k l k=1 k,l=1

Fokker-Planck: the time evolution of the probability density function p(xt , t) with the initial condition p(x, t = 0) = δ(x − x0) is given by:

n n X 1 X h T  i ∂t p = − ∂x [µi p] + ∂x ∂x σσ p k 2 k l kl k=1 k,l=1

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 5 / 19 Fokker-Planck Forward Equation

The corresponding Fokker-Planck equation for the probability density p : R × R≥0 × R≥0 → R≥0, (x, ν, t) 7→ p(x, ν, t) is: 1 h i 1 ∂ p = ∂2 L2νp + η2σ2∂2 [νp] + ησρ∂ ∂ [Lνp] t 2 x 2 ν x ν  1   −∂ r − q − L2ν p − ∂ [κ (θ − ν) p] x 2 ν

Numerical solution of the PDE is cumbersome due to difficult boundary conditions and the δ-distribution as the initial condition.

PDE can be efficiently solved by using operator splitting schemes, preferable the modified Craig-Sneyd scheme.

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 6 / 19 Calibration: Fokker-Planck Forward Equation

 Zero-Flux boundary condition for ν = {νmin, νmax }

1− 2κθ  Reformulate PDE in terms of q = ν σ2 or z = ln ν if the Feller constraint is violated

 Prediction-Correction step for L(xt+∆t , t + ∆t)  Non-uniform grids are a key factor for success

 Includes adaptive time step size and grid boundaries to allow for rapid changes of the shape of p(xt , ν, t) for small t  Semi-analytical approximations of initial δ-distribution for small t

Corresponding Feynman-Kac backward PDE is much easier to solve.

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 7 / 19 Calibration: Monte-Carlo Simulation

The quadratic exponential discretization can be adapted to simulate the Heston SLV model efficiently.

σLV (xt ,t) Reminder: L(xt , t) = √ E[νt |x=xt ]

1 Simulate the next time step for all calibration paths

2 i i i Define set of n bins bi = {xt , xt + ∆xt } and assign paths to bins 3 Calculate expectation value ei = E[νt |x ∈ bi ] over all paths in bi σLV (xt ,t) 4 Define L(xt ∈ b , t) = i ei 5 t ← t + ∆t and goto 1

Advice: Use Quasi-Monte-Carlo simulations with Brownian bridges.

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 8 / 19 Calibration: Test Bed

Motivation: Set-up extreme test case for the SLV calibration

Local Volatility: σLV (x, t) ≡ 30% Heston parameters: S0 = 100, ν0 = 0.09, κ = 1.0, θ = 0.06, σ = 0.4, ρ = −75% 2κθ Feller condition is violated with σ2 = 0.75 surface of the Heston model and the Local Volatility model differ significantly.

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 9 / 19 Calibration: Fokker-Planck PDE vs Monte-Carlo

Fokker-Planck Forward Equation, η=1.00 Monte-Carlo Simulation, η=1.00

2.5 2.5

2.5 2.5

2.0 2.0 2.0 2.0

1.5 1.5

1.0 1.0 1.5 1.5 Leverage Function L(x,t) Function Leverage L(x,t) Function Leverage 0.5 0.5

4 1.0 4 1.0

3 3

7 2 2 6 Time 6 Time 5 5 1 0.5 1 0.5 4 4 3 2 ln(S) 3 ln(S)

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 10 / 19 Calibration Sanity Check: Round-Trip Error for Vanillas

Round-Trip Error for 1Y Maturity

Monte-Carlo Fokker-Planck 30.05 30.10 Implied Volatility (in %) Implied Volatility 29.90 29.95 30.00

50 100 150 200 250 Strike

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 11 / 19 Case Study: Delta of Vanilla Option

Vanilla : 3y maturity, S0=100, strike=100

Delta of ATM Put Option

Heston Black-Scholes Heston Minimum-Variance Local Vol SLV -0.30 -0.25 Delta -0.40 -0.35

0.0 0.2 0.4 0.6 0.8 1.0 η

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 12 / 19 Choose the Forward Volatility Skew Dynamics

Interpolate between the Local and the Heston skew dynamics by tuning η between 0 and 1.

Forward Starting Option: max(0, S2y - α*S1y) 38

η=1.00 η=0.50 η=0.25 η=0.00 32 34 36 Implied Forward Volatility (in %) Volatility Implied Forward 26 28 30

0.5 1.0 1.5 2.0 Strike α

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 13 / 19 Case Study: Prices

DOP Barrier Option: 3y maturity, S0=100, strike=100

Barrier Option Pricing Local Vol vs SLV

0.30 0.35 η = 1.0 η = 0.5 η = 0.2

SLV η = 0.1 - NPV local NPV 0.00 0.05 0.10 0.15 0.20 0.25

0 20 40 60 80 100 Barrier

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 14 / 19 Case Study: Delta of Barrier Options

DOP Barrier Option: 3y maturity, S0=100, strike=100

Barrier Option Δlocal vs ΔSLV 0.00

η = 1.0

SLV η = 0.5 η = 0.2 - Δ η = 0.1 local Δ -0.15 -0.10 -0.05

0 20 40 60 80 100 Barrier

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 15 / 19 Case Study: Double-No-Touch Options

Knock-Out Double-No-Touch Option: 1y maturity, S0=100

Double No Touch Option Stochastic Local Volatility vs. Black-Scholes Prices 0.15

η=1.00 η=0.75 η=0.50 η=0.25 η=0.00 BS - NPV 0.05 0.10 SLV NPV -0.05 0.00

0.0 0.2 0.4 0.6 0.8 1.0

NPVBS

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 16 / 19 Summary: Heston Stochastic Local Volatility

RHestonSLV: A package for the Heston Stochastic Local Volatility Model

Monte-Carlo Calibration

Calibration via Fokker-Planck Forward Equation

Supports pricing of vanillas and exotic options

Implementation is based on QuantLib 1.8 and Rcpp

Package source code including all examples shown is on github https://github.com/klausspanderen/RHestonSLV

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 17 / 19 Literature

J. Göttker-Schnetmann and K. Spanderen. Calibration of the Heston Stochastic Local Volatility Model. http://hpc-quantlib.de/src/slv.pdf. K.J. in t’Hout and S. Foulon. ADI Finite Difference Schemes for Option Pricing in the Heston Model with Correlation. International Journal of Numerical Analysis and Modeling, 7(2):303–320, 2010. Y. Tian, Z. Zhu, G. Lee, F. Klebaner and K. Hamza. Calibrating and Pricing with a Stochastic-Local Volatility Model. http://ssrn.com/abstract=2182411. A. Stoep, L. Grzelak and C. Oosterlee,. The Heston Stochastic-Local Volatility Model: Efficient Monte Carlo Simulation. http://papers.ssrn.com/abstract_id=2278122.

Klaus Spanderen Heston Stochastic Local Volatility Model 2016-05-20 18 / 19