stochastic local volatility in quantlib · stochastic local volatility in quantlib j....

41
Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 1 / 41

Upload: others

Post on 13-Jul-2020

59 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Stochastic Local Volatility in QuantLib

J. Göttker-Schnetmann, K. Spanderen

QuantLib User Meeting 2014Düsseldorf2014-12-06

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 1 / 41

Page 2: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Heston Stochastic Local Volatility

Fokker-Planck EquationsSquare Root ProcessBoundary ConditionsCoordinate and Density Transformations

Calibration

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 2 / 41

Page 3: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Local Volatility [Dupire 1994]

Local Volatility σLV (S, t) as function of spot level St and time t :

d ln St =

(rt − qt −

12σ2

LV (S, t))

dt + σLV (S, t)dWt

σ2LV (S, t) =

∂C∂T + (rt − qt ) K ∂C

∂K + qtCK 2

2∂2C∂K 2

∣∣∣∣∣K=S,T=t

Consistent with option market prices.Model is often criticized for its unrealistic volatility dynamics.Dupire formula is mathematically appealing but also unstable.

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 3 / 41

Page 4: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Stochastic Volatility [Heston 1993]

Stochastic volatility given by a square-root process:

d ln St =

(rt − qt −

12νt

)dt +

√νtdW S

t

dνt = κ (θ − νt ) dt + σ√νtdW ν

t

ρdt = dW νt dW S

t

Semi-analytical solution for European call option prices:

C(S0,K , ν0,T ) = SP1 − Ke−(rt−qt )T P2

Pj =12

+1π

∫ ∞0<

[e−iu ln Kφj(S0,K , ν0,T ,u)

iu

]du

More realistic volatility dynamics.Does often not exhibit enough skew for short dated expiries.

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 4 / 41

Page 5: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Example: Differences in δ and γ

The implied and local volatility surface is derived from the Hestonmodel and therefore the option prices between all models match.S0 = 5000, κ = 5.66, θ = 0.075, σ = 1.16, ρ = −0.51, ν0 = 0.19,T = 1.7

2000 3000 4000 5000 6000 7000 8000

0.2

0.4

0.6

0.8

1.0

Strike

δ

Black-ScholesHestonHeston Mean VarianceLocal Volatility

2000 3000 4000 5000 6000 7000 8000

Strike

γ

01*

10−4

2*10

−43*

10−4

Black-ScholesHestonHeston Mean VarianceLocal Volatility

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 5 / 41

Page 6: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Heston Stochastic Local Volatility

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

d ln St =

(rt − qt −

12

L(St , t)2νt

)dt + L(St , t)

√νtdW S

t

dνt = κ (θ − νt ) dt + ησ√νtdW ν

t

ρdt = dW νt dW S

t

Leverage L(xt , t) is given by probability density p(St , ν, t) and

L(St , t) =σLV (St , t)√E[νt |S = St ]

= σLV (St , t)

√ ∫R+ p(St , ν, t)dν∫R+ νp(St , ν, t)dν

Mixing factor η tunes between stochastic and local volatility.

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 6 / 41

Page 7: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Cheat Sheet: Link between SDE and PDE

Starting point is a multidimensional SDE of the form:

dx t = µ(x t , t)dt + σ(x t , t)dW t

Feynman-Kac: price of a derivative u(x t , t) with boundary conditionu(xT ,T ) at maturity T is given by:

∂tu +n∑

k=1

µi∂xk u +12

n∑k ,l=1

(σσT

)kl∂xk∂xl u − ru = 0

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

∂tp = −n∑

k=1

∂xk [µip] +12

n∑k ,l=1

∂xk∂xl

[(σσT

)kl

p]

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 7 / 41

Page 8: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Backward Feynman-Kac Equation

The SLV model leads to following Feynman-Kac equation for a functionu : R× R≥0 × R≥0 → R, (x , ν, t) 7→ u(x , ν, t):

0 = ∂tu +12

L2ν∂2x u +

12η2σ2ν∂2

νu + ησνρL∂x∂νu

+

(r − q − 1

2L2ν

)∂xu + κ (θ − ν) ∂νu − ru

PDE can be solved using either Implict scheme (slow) or moreadvanced operator splitting schemes like modified Craig-Sneyd orHundsdorfer-Verwer in conjunction with damping steps (fast).Implementation is mostly harmless, extend FdmHestonOp.

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 8 / 41

Page 9: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Forward Fokker-Planck Equation

The corresponding Fokker-Planck equation for the probability densityp : R× R≥0 × R≥0 → R≥0, (x , ν, t) 7→ p(x , ν, t) is:

∂tp =12∂2

x

[L2νp

]+

12η2σ2∂2

ν [νp] + ησρ∂x∂ν [Lνp]

−∂x

[(r − q − 1

2L2ν

)p]− ∂ν [κ (θ − ν) p]

Numerical solution of the PDE is cumbersome due to difficultboundary conditions and the Dirac delta distribution as the initialcondition.PDE can be efficiently solved using operator splitting schemes,preferable the modified Craig-Sneyd scheme

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 9 / 41

Page 10: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Square Root Process

Main issues of the implementation are caused by the square rootprocess:

dνt = κ(θ − νt )dt + σ√νtdW

It has the following Fokker-Planck equation for the probability densityp : R≥0 × R≥0 → R≥0, (ν, t) 7→ p(ν, t):

∂tp =σ2

2∂2ν [νp]− ∂ν [κ(θ − ν)p]

The stationary probability density p̂(ν) with ∂t p̂(ν) = 0 is:

p̂(ν) = βανα−1 exp(−βν)Γ(α)−1, α =2κθσ2 , β =

α

θ

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 10 / 41

Page 11: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Stationary Probability Density

limν→0

p̂(ν) =

∞ if α < 1θ−1 if α = 10 if α > 1

The square root process νtis strictly positive if theFeller Condition α > 1 ismet.

0.0 0.2 0.4 0.6 0.8

01

23

45

6

Stationary Distribution with θ=0.25

ν

p̂(ν)

α=2.0α=1.2α=1.0α=0.5

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 11 / 41

Page 12: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Boundary Condition

The probability weight within [νmin, νmax ] of p(ν, t) is evolving by:

∂t

∫ νmax

νmin

dνp =

∫ νmax

νmin

dν(σ2

2∂2ν [νp]− ∂ν [κ(θ − ν)p]

)In order to avoid leaking of probability we enforce:

∂t

∫ νmax

νmin

dνp = 0 ⇒[σ2

2∂ν [νp]− [κ(θ − ν)p]

]∣∣∣∣νmax

νmin

= 0

⇒[σ2

2∂ν [νp]− [κ(θ − ν)p]

]∣∣∣∣ν=νmin,νmax

= 0

Zero Flux Boundary Condition

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 12 / 41

Page 13: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Discretization

On a non-uniform grid {z1, . . . , zn} the two-sided approximation of ∂z fis:

∂z f (zi) ≈h2

i−i fi+1 + (h2i − h2

i−1)fi − h2i fi−1

hi−1hi(hi−1 + hi)

=hi−1

hi−1 + hi

fi+1 − fihi

+hi

hi−1 + hi

fi − fi−1

hi−1

With hi := zi+1 − zi and fi := f (zi). The second order derivative isapproximated by:

∂2z f (zi) ≈

hi−i fi+1 − (hi−1 + hi)fi + hi fi−112hi−1hi(hi−1 + hi)

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 13 / 41

Page 14: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Discretization

Sort by factors of fi , set

ζi := hihi−1

ζpi := hi(hi−1 + hi)

ζmi := hi−1(hi−1 + hi)

then:

∂z f (zi) ≈hi−i

ζpi

fi+1 +(hi − hi−1)

ζifi −

hi

ζmi

fi−1

∂2z f (zi) ≈

2ζp

ifi+1 −

2ζi

fi +2ζm

ifi−1

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 14 / 41

Page 15: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Discretization

A general partial differential equation of the form

∂t f = A(z)∂2z f + B(z)∂z f + C(z)f

has therefore the spacial discretization:

∂t f (zi) =2Ai + Bihi−i

ζpi

fi+1 +

(−2Ai + Bi(hi − hi−1)

ζi+ Ci

)fi

+2Ai − Bihi

ζmi

fi−1

=: γi fi+1 + βi fi + αi fi−1

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 15 / 41

Page 16: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Discretization

This is interpreted as a tridiagonal transfer matrix T with diagonal βi ,upper diagonal γi , and lower diagonal αi :

T :=

β1 γ1 0 . . .α2 β2 γ2 0 . . .0 α3 β3 γ3 0 . . .... 0

. . . . . . . . . 0... αn−1 βn−1 γn−1

αn βn

Then

∂t

f1...fn

= T

f1...fn

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 16 / 41

Page 17: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Boundary Condition

Add z0 below the lower boundary and zn+1 above the upper boundaryto the grid. The zero flux condition takes the general form

[∂zA(z, t)f + B(z, t)f ]∣∣∣z=z0,zn+1

!= 0

Lower Boundary: The partial derivative is discretized by a secondorder forward differentiation, so that all terms are given by grid points

∂z f (z0) ≈−h2

0f2 + (h1 + h0)2f1 − ((h1 + h0)2 − h20)f0

h0h1(h1 + h0)

= −h0

ζp1

f2 +(h0 + h1)

ζ1f1 −

(2h0 + h1)

ζm1

f0

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 17 / 41

Page 18: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Boundary Condition

The general zero-flux boundary condition is therefore discretized at thelower boundary as

0 = −h0

ζp1

A0f2 +(h0 + h1)

ζ1A0f1 +

(−(2h0 + h1)

ζm1

A0 + B0

)f0

=: c1f2 + b1f1 + a1f0

⇒ f0 = −c1

a1f2 −

b1

a1f1

∂t f1 = γ1f2 + β1f1 + α1f0

= (γ1 − α1c1

a1)f2 + (β1 − α1

b1

a1)f1

→ modification of the transfer matrix.

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 18 / 41

Page 19: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Non-Uniform Meshes

Non-uniform meshes are a key component [Tavella & Randall 2000]

Define coordinate transformationY = Y (ε) for n critical points Bk withdensity factors βk

dY (ε)

dε= A

[n∑

k=1

Jk (ε)−2

]− 12

Jk (ε) =√β2 + (Y (ε)− Bk )2

Y (0) = Ymin

Y (1) = Ymax

ODE solver is based on Peter’sRunge-Kutta implementation.

2 3 4 5 6 70.

000.

020.

040.

060.

08x = log(S)

ν

Example: x0 = ln(100), ν0 = 0.05,Feller constraint is fulfilled

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 19 / 41

Page 20: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Loss of Probability

Time evolution of the stationary distribution with zero flux condition.

P(x) =

∫ x

−∞p̂(ν)dν

νmin = P−1(0.01)

νmax = P−1(0.99)∫ νmax

νmin

p̂dν = 0.98

Integral error after evolvingfor one year:∣∣∣∣∫ νmax

νmin

p(ν, t = 1y)dν − 0.98∣∣∣∣

0.2 0.4 0.6 0.8 1.0 1.2 1.4

σ

Inte

gral

Erro

r

10−7

10−6

10−5

10−4

10−3

10−2

10−1

100

Feller Constraintgrid size: 100grid size: 1000

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 20 / 41

Page 21: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Transformed Density

Recap: Stationary distribution:

p̂(ν) = βανα−1 exp(−βν)Γ(α)−1

Remove divergence following Lucic [2] by using

q = ν1−αp

⇒ ∂tq =σ2

2ν∂2

νq + κ(ν + θ)∂νq +2κ2θ

σ2 q

This equation has the stationary solution

q̂(ν) = βα exp(−βν)Γ(α)−1

which converges to βαΓ(α)−1 as ν → 0

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 21 / 41

Page 22: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Transformed Probability Density

Time evolution of the transformed distribution with zero flux condition.

0.5 1.0 1.5 2.0

σ

Inte

gral

Erro

r

10−7

10−6

10−5

10−4

10−3

10−2

10−1

100

Feller Constraint

orig. FPE, grid size: 100orig. FPE, grid size: 1000trans. FPE, grid size: 100trans. FPE, grid size: 1000

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 22 / 41

Page 23: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Log Coordinates

Apply Itô’s lemma to z = log ν:

dz = ((κθ − σ2

2)1ν− κ)dt + σ

1√ν

dW

Fokker-Planck equation for the probability distributionf : R× R≥0 → R≥0, (z, t) 7→ f (z, t) (ν = exp(z)):

∂t f (z, t) = −∂z((κθ − σ2

2)1ν− κ)f + ∂2

z (σ2

21ν

f )

Stationary solution:

f̂ (z) = βα exp(zα) exp(−β exp(z))Γ(α)−1 = νp̂(ν)

f̂ converges to 0 as z → −∞

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 23 / 41

Page 24: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Log Coordinates

Time evolution of log probability density with zero flux condition

0.5 1.0 1.5 2.0

σ

Inte

gral

Erro

r

10−7

10−6

10−5

10−4

10−3

10−2

10−1

100

Feller Constraint

log FPE, grid size: 100log FPE, grid size: 1000

νmin = min(

0.001, F−1(0.01))

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 24 / 41

Page 25: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Intermediate Results

Proper implementation of the zero flux boundary condition is notenough to get a stable scheme.

Transformation of the PDE in log coordinates leads to a lesspoisonous problem.

Non-Uniform meshers are a key component for success.

→ all in all, mostly harmless ,. Time for another dimension

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 25 / 41

Page 26: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Zero Flux Boundary Condition in two Dimensions

Adding the stock process to the picture complicates matters a bit.Probability density has a second variable x = log S, and theFokker-Planck equation reads

∂t f = ∂2z A(z, x , t)f + ∂zB(z, x , t)f + ∂z∂xρC(z, x , t)f + powers of ∂x

Stretching the argument above a bit1 we arrive at the boundarycondition

[∂zA(z, x , t)f + B(z, x , t)f + ρ∂xC(z, x , t)f ]∣∣∣z=z0,z1

!= 0

1Can be made rigorous [2]Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 26 / 41

Page 27: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

SLV Fokker-Planck: Natural Coordinates

dxt = (rt − qt −νt

2)dt +

√νtL(x , t)dW x

t

dνt = κ(θ − νt )dt + ησ√νtdW ν

t

ρdt = dW xt dW ν

t

Fokker-Planck equation:

∂tp =12∂2

x

[L2νp

]+

12η2σ2∂2

ν [νp] + ησρ∂x∂ν [Lνp]

−∂x

[(r − q − 1

2L2ν

)p]− ∂ν [κ (θ − ν) p]

The zero flux condition takes the form ∀x :[σ2

2ν∂νp +

(κ(ν − θ) +

σ2

2

)p + ρνσ∂xLp

]∣∣∣∣ν=ν0,ν=νn+1

= 0

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 27 / 41

Page 28: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

SLV Fokker-Planck: Transformed Density q = v1−αp

Fokker-Planck equation for q = ν1−αp

∂tq =ν

2∂2

x L2q + (−rt + qt )∂xq + ∂x (ν

2L2 + ρσ

2κθσ2 L)q

+σ2

2ν∂2

νq + κ(ν + θ)∂νq +2κ2θ

σ2 q

+ρσν∂x∂νLq

The zero flux condition takes the form ∀x :[σ2

2ν∂νq + κνq + ρνσ∂xLq

]∣∣∣∣ν=ν0,ν=νn+1

= 0

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 28 / 41

Page 29: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

SLV Fokker-Planck: Log Coordinates

dxt = (rt − qt −νt

2)dt +

√νtL(x , t)dW x

t

dzt = ((κθ − σ2

2)1ν− κ)dt + ησ

1√ν

dW νt

ρdt = dW xt dW ν

t

Fokker-Planck equation:

∂t f =12∂2

x

[L2νf

]+η2σ2

2∂2

z

[1ν

f]

+ ησρ∂x∂z [Lf ]

−∂x

[(r − q − 1

2L2ν

)f]− ∂z

[((κθ − σ2

2)1ν− κ)f]

The zero-flux boundary condition is[η2σ2

21ν∂z f − κ(1− θ

ν)f + ρσ∂xLf

]∣∣∣∣ν=ν0,ν=νn+1

!= 0

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 29 / 41

Page 30: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

SLV Fokker-Planck: Implementation

Example log coordinates:

∂t f =12∂2

x

[L2νf

]+η2σ2

2∂2

z

[1ν

f]

+ ησρ∂x∂z [Lf ]

−∂x

[(r − q − 1

2L2ν

)f]− ∂z

[((κθ − σ2

2)1ν− κ)f]

∂t f =ν

2∂2

x L2f +η2σ2

21ν∂2

z f + ησρ∂x∂zLf

+(−r + q)∂x f +ν

2∂xL2f +

[(−κθ − σ2

2)1ν

+ κ

]∂z f +

κθ

νf

Use multiplication of derivative operators with L on the right hand side,added method multR to TripleBandBinearOp (saves some terms).

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 30 / 41

Page 31: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Start Condition: Dirac Delta Distribution

To begin with the Dirac delta distribution need to be regularized.

Approximation for small ∆t based on

L(x , t) =σLV (xt=0,0)√ν0

= const ∀t ∈ [0,∆t ]

1 Exact solution is known for ρ = 0

2 One Euler Step based on the SDE leads to bivariate Gaussiandistribution

3 Semi-Analytical solution for exact sampling [Brodie, Kaya 2006]

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 31 / 41

Page 32: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Calibration

Start with a a calibrated Local Volatility Model σLV (xt , t) andcalibrated Heston Model (ν0, θ, κ, σ, ρ)

Recap: Leverage L(xt , t) is given by

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

= σLV (xt , t)

√ ∫R+ p(xt , ν, t)dν∫R+ νp(xt , ν, t)dν

Start condition: p(x , ν,0) = δ(x − x0)δ(ν − nu0)

⇒ L(xt=0,0) =σLV (xt=0,0)√ν0

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 32 / 41

Page 33: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Calibration

Iterative Scheme:

1 Use Fokker-Planck equation to get from

p(x , ν, t)→ p(x , ν, t + ∆t)

assuming a piecewise constant leverage function L(xt , t) in t

2 Calculate leverage function at t + ∆t :

L(x , t + ∆t) = σLV (x , t + ∆t)

√ ∫R+ p(x , ν, t + ∆t)dν∫R+ νp(x , ν, t + ∆t)dν

3 Set t := t + ∆t4 If t is smaller than the final maturity goto 1

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 33 / 41

Page 34: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Calibration Example

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

Feller condition is strongly violated with α = 0.6

Implied volatility surface of the Heston and the local volatilitymodel differ significantly.

Local Volatility: σLV (x , t) ≡ 30%

Heston Parameters:S0 = 100,

√ν0 = 24.5%, κ = 1, θ = ν0, σ

2 = 0.2, ρ = −75%

Use log coordinates and modified Craig-Sneyd scheme

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 34 / 41

Page 35: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Calibration Example: Heston Implied Volatility Surface

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 35 / 41

Page 36: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Calibration Example: Round Trip

Quality of calibration is tested by the round trip error

Fokker-Planck step: Calibrate the leverage function L(x , t)

Feyman-Kac step: Calculate European option prices underresulting LSV model and back out implied volatility surface

Show differences w.r.t. expected value of

σimpl(K , t) = σLV (S, t) = 30%

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 36 / 41

Page 37: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Calibration Example: LSV Implied Volatility Surface

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 37 / 41

Page 38: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Calibration Example: Leverage Function L(St , t)

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 38 / 41

Page 39: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Conclusion: Heston Local Volatility in QuantLib

3 Backward Feyman-Kac solver

3 Forward Fokker-Planck solver

3 Zero-Flux boundary condition3 natural and log coordinates, transformed probability density

3 Non-uniform meshers are a key factor for success

3 Heston Local Volatility calibration

3 Round trip errors are around 5bp in vols for extreme case

Repository:https://github.com/jschnetm/quantlib/tree/slv/QuantLib

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 39 / 41

Page 40: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Literature

William Feller.Two singular diffusion problems.The Annals of Mathematics, 54(1):173–182, 1951.

Vladimir Lucic.Boundary conditions for computing densities in hybrid models viaPDE methods.Stochastics, 84(5-6):705–718, 2012.

Yu Tian, Zili Zhu, Geoffrey Lee, Fima Klebaner, and Kais Hamza.Calibrating and Pricing with a Stochastic-Local Volatility Model.,2014.http://ssrn.com/abstract=2182411.

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 40 / 41

Page 41: Stochastic Local Volatility in QuantLib · Stochastic Local Volatility in QuantLib J. Göttker-Schnetmann, K. Spanderen QuantLib User Meeting 2014 Düsseldorf 2014-12-06 Göttker-Schnetmann,

Disclaimer

The views expressed in this presentation are the personal views of thespeakers and do not necessarily reflect the views or policies of current orprevious employers.

Göttker-Schnetmann, Spanderen Towards SLV in QuantLib QuantLib User Meeting 41 / 41