Unit 7, lesson 52

Heston stochastic volatility

How the Heston model lets variance follow a mean-reverting square-root diffusion, what the leverage correlation and the Feller condition mean, and how the characteristic function reduces to Riccati equations.

  • Video 52
  • Local volatility, stochastic volatility and jumps

Suppose the options on a stock imply different volatilities at different strikes, and a desk wants a model in which a falling price tends to come with rising volatility. Letting the variance of the stock move as its own random state does this, but it raises two precise questions. Can the variance reach zero or become negative, and can options still be priced without simulating every path? This lesson states the Heston model under a pricing measure, explains the boundary behavior of its variance and the role of the leverage correlation, and derives the Riccati equations that give the characteristic function of the log price.

Key terms

Heston model

Definition Fix a filtered probability space with a pricing measure Q\mathbb{Q}, equivalent to the physical measure P\mathbb{P} and in general not unique, and constants rr and qq. The Heston model specifies the ex-dividend stock price St>0S_t > 0 and its instantaneous variance vt≥0v_t \ge 0 by

dSt=(r−q)St dt+vt St dWtS,dvt=κ(θ−vt) dt+ξvt dWtv,\begin{aligned} dS_t &= (r - q) S_t \, dt \\[0.4em] &\quad + \sqrt{v_t}\, S_t \, dW^S_t, \\[0.4em] dv_t &= \kappa (\theta - v_t) \, dt \\[0.4em] &\quad + \xi \sqrt{v_t} \, dW^v_t, \end{aligned}

where WSW^S and WvW^v are Q\mathbb{Q}-Brownian motions with d[WS,Wv]t=ρ dtd[W^S, W^v]_t = \rho \, dt. The parameters satisfy S0>0S_0 > 0, v0>0v_0 > 0, κ>0\kappa > 0, θ>0\theta > 0, ξ≥0\xi \ge 0 and −1≤ρ≤1-1 \le \rho \le 1. Here κ\kappa is the speed of mean reversion per year, θ\theta the long-run level of the variance and ξ\xi the volatility of the variance, and all of them are parameters under Q\mathbb{Q}. The variance equation has a unique solution, and it is nonnegative, a standard result for square-root diffusions that the course states without proof. The stock is then

St=S0exp⁡((r−q)t−12∫0tvs ds+∫0tvs dWsS).\begin{aligned} S_t &= S_0 \exp\Bigl( (r - q) t \\[0.4em] &\quad - \tfrac12 \int_0^t v_s \, ds \\[0.4em] &\quad + \int_0^t \sqrt{v_s} \, dW^S_s \Bigr). \end{aligned}

The volatility is vt\sqrt{v_t}, not vtv_t. The discounted stock with dividends reinvested, e−(r−q)tSte^{-(r - q)t} S_t, is a positive local martingale by construction, and that it is a true martingale is a known result for this model that the lesson does not prove. With ξ=0\xi = 0 the variance path is deterministic. With ξ>0\xi > 0 and ∣ρ∣<1\lvert \rho \rvert < 1 the variance is driven in part by a Brownian motion independent of WSW^S.

In plain words The stock moves like a geometric Brownian motion whose variance is itself random. The variance is pulled toward θ\theta at rate κ\kappa, and its shocks shrink as it approaches zero, because the noise is scaled by vt\sqrt{v_t}.

Example The constructed parameters used throughout this lesson are κ=2\kappa = 2 per year, θ=0.04\theta = 0.04, v0=0.09v_0 = 0.09, ξ=0.3\xi = 0.3 and ρ=−0.6\rho = -0.6. The current volatility is 0.09=0.30\sqrt{0.09} = 0.30 per square-root year, and the long-run variance corresponds to the volatility 0.04=0.20\sqrt{0.04} = 0.20. Over a short interval of length Δt\Delta t the log return has conditional variance approximately vt Δtv_t \, \Delta t, so over one trading day of 1/2521/252 years its standard deviation is about 0.3/252≈0.01890.3/\sqrt{252} \approx 0.0189.

Variance diffusion

Definition The variance of the Heston model is the square-root diffusion of Cox-Ingersoll-Ross,

dvt=κ(θ−vt) dt+ξvt dWtv,\begin{aligned} dv_t &= \kappa (\theta - v_t) \, dt \\[0.4em] &\quad + \xi \sqrt{v_t} \, dW^v_t, \end{aligned}

with κ>0\kappa > 0, θ>0\theta > 0, ξ≥0\xi \ge 0 and v0≥0v_0 \ge 0. Its drift is positive below θ\theta and negative above it. The moment bounds of this process, stated here without proof, give EQ[∫0Tvt dt]<∞\mathbb{E}^{\mathbb{Q}}\bigl[\int_0^T v_t \, dt\bigr] < \infty, so the stochastic integral term is a martingale with mean zero. Taking expectations then gives the linear equation ddtEQ[vt]=κ(θ−EQ[vt])\frac{d}{dt}\mathbb{E}^{\mathbb{Q}}[v_t] = \kappa\bigl(\theta - \mathbb{E}^{\mathbb{Q}}[v_t]\bigr), whose solution is

EQ[vT]=θ+(v0−θ)e−κT.\begin{aligned} &\mathbb{E}^{\mathbb{Q}}[v_T] \\[0.4em] &\quad = \theta + (v_0 - \theta) e^{-\kappa T}. \end{aligned}

Since v≥0v \ge 0, the time integral and the expectation can be exchanged, and the expected integrated variance is

EQ[∫0Tvt dt]=θT+(v0−θ) 1−e−κTκ.\begin{aligned} &\mathbb{E}^{\mathbb{Q}}\Bigl[\int_0^T v_t \, dt\Bigr] = \theta T \\[0.4em] &\quad + (v_0 - \theta)\, \frac{1 - e^{-\kappa T}}{\kappa}. \end{aligned}

Neither formula involves ξ\xi. The integrated variance ∫0Tvt dt\int_0^T v_t \, dt is the quadratic variation of the log price over [0,T][0, T].

In plain words The expected variance moves from its starting value toward θ\theta along an exponential curve with half-life ln⁡2/κ\ln 2/\kappa. The volatility of variance makes the path random but does not change these means.

Example For the constructed parameters at T=1T = 1,

EQ[v1]=0.04+0.05e−2≈0.046767,\begin{aligned} \mathbb{E}^{\mathbb{Q}}[v_1] &= 0.04 + 0.05 e^{-2} \\[0.4em] &\approx 0.046767, \end{aligned}

and the expected integrated variance is 0.04+0.05(1−e−2)/2≈0.0616170.04 + 0.05(1 - e^{-2})/2 \approx 0.061617. The half-life is ln⁡2/2≈0.347\ln 2/2 \approx 0.347 years. The square root of 0.0616170.061617 is about 0.24820.2482, but it is not the expected realized volatility. Jensen’s inequality for the concave square root gives E[I]≤E[I]\mathbb{E}\bigl[\sqrt{I}\bigr] \le \sqrt{\mathbb{E}[I]} for the integrated variance II, with strict inequality when ξ>0\xi > 0, because II is then random.

Leverage correlation

Definition The leverage correlation is the parameter ρ\rho in d[WS,Wv]t=ρ dtd[W^S, W^v]_t = \rho \, dt, the instantaneous correlation between the shocks of the stock and of its variance. For the log price xt=ln⁡Stx_t = \ln S_t, Itô’s lemma gives

dxt=(r−q−12vt)dt+vt dWtS,\begin{aligned} dx_t &= \bigl(r - q - \tfrac12 v_t\bigr) dt \\[0.4em] &\quad + \sqrt{v_t} \, dW^S_t, \end{aligned}

so the quadratic variation and covariation rates are

d[x]t=vt dt,d[v]t=ξ2vt dt,d[x,v]t=ρξvt dt.\begin{gathered} d[x]_t = v_t \, dt, \\[0.4em] d[v]_t = \xi^2 v_t \, dt, \\[0.4em] d[x, v]_t = \rho \xi v_t \, dt . \end{gathered}

The generator of the pair (x,v)(x, v), acting on twice continuously differentiable functions f(x,v)f(x, v), is

Lf=(r−q−v2)fx+κ(θ−v)fv+12vfxx+ρξvfxv+12ξ2vfvv.\begin{aligned} \mathcal{L} f &= \bigl(r - q - \tfrac{v}{2}\bigr) f_x \\[0.4em] &\quad + \kappa(\theta - v) f_v \\[0.4em] &\quad + \tfrac12 v f_{xx} \\[0.4em] &\quad + \rho \xi v f_{xv} \\[0.4em] &\quad + \tfrac12 \xi^2 v f_{vv} . \end{aligned}

The mixed term collects the two equal cross terms 12fxv d[x,v]\tfrac12 f_{xv} \, d[x, v] and 12fvx d[v,x]\tfrac12 f_{vx} \, d[v, x] of Itô’s formula. A negative ρ\rho makes a negative stock shock come with a positive variance shock on average, which gives the model a leverage effect. Quadratic covariation does not change under an equivalent change of measure, so if the physical dynamics have the same diffusion form, they have the same ρ\rho and ξ\xi, while the drift of the variance under Q\mathbb{Q} is a modeling choice. When ξ>0\xi > 0 and ∣ρ∣<1\lvert \rho \rvert < 1, the variance shock has a component independent of the stock, so the stock and the money-market account cannot replicate every claim, and replication does not identify the Q\mathbb{Q} drift of the variance.

In plain words The correlation decides how the variance tends to move when the stock moves. With ρ<0\rho < 0, a drop in the stock comes, on average, with a rise in the variance. This is an assumption about the joint law of the two shocks in the model, not a conclusion drawn from any particular price fall.

Example At v=0.09v = 0.09 with ξ=0.3\xi = 0.3 and ρ=−0.6\rho = -0.6, the covariation rate is ρξv=−0.0162\rho \xi v = -0.0162 per year. Over a short step the two shocks are approximately jointly normal with these rates, so the expected variance shock given a log-price shock is

d[x,v]td[x]t=ρξ=−0.18\frac{d[x, v]_t}{d[x]_t} = \rho \xi = -0.18

times that shock. A log-price shock of −0.01-0.01 therefore comes with an expected variance shock of +0.0018+0.0018, which moves the volatility from 0.300.30 to about 0.0918≈0.3030\sqrt{0.0918} \approx 0.3030. With ρ=0\rho = 0 the expected variance shock is zero and the generator has no mixed term.

Feller condition

Definition For the square-root diffusion with κ>0\kappa > 0, θ>0\theta > 0, ξ>0\xi > 0 and v0>0v_0 > 0, the Feller condition is

2κθ≥ξ2.2 \kappa \theta \ge \xi^2 .

When it holds, the boundary point 00 is inaccessible, so vt>0v_t > 0 for every tt with probability one. When 2κθ<ξ22\kappa\theta < \xi^2, zero is accessible and the variance reaches it in finite time with positive probability, but the solution still never becomes negative. It is reflected at zero, where the drift equals κθ>0\kappa\theta > 0. These boundary classification results for the Cox-Ingersoll-Ross process are stated here without proof. They concern the continuous-time solution. The Euler step

vn+1=vn+κ(θ−vn) Δt+ξvn Δt  Zn+1,\begin{aligned} v_{n+1} &= v_n + \kappa(\theta - v_n)\,\Delta t \\[0.4em] &\quad + \xi \sqrt{v_n \, \Delta t}\; Z_{n+1}, \end{aligned}

with Zn+1∼N(0,1)Z_{n+1} \sim N(0, 1), produces a negative value with positive probability whenever ξ>0\xi > 0 and vn>0v_n > 0, whether or not the condition holds, and a simulation scheme has to treat that case, for example by truncating at zero.

In plain words The Feller condition compares the push away from zero, 2κθ2\kappa\theta, with the strength of the noise near zero, ξ2\xi^2. If the push wins, the variance never touches zero. If the noise wins, the variance can touch zero and bounce back, but it never goes below zero.

Example For the constructed parameters 2κθ=0.162\kappa\theta = 0.16 and ξ2=0.09\xi^2 = 0.09, so the condition holds, with ratio 2κθ/ξ2≈1.782\kappa\theta/\xi^2 \approx 1.78. Raising ξ\xi to 0.60.6 gives ξ2=0.36>0.16\xi^2 = 0.36 > 0.16 and the ratio 0.440.44, so zero becomes accessible while the variance stays nonnegative. With ξ=0.6\xi = 0.6, one Euler step of length 1/2521/252 from vn=0.001v_n = 0.001 is normal with mean 0.001+2(0.04−0.001)/252≈0.00130950.001 + 2(0.04 - 0.001)/252 \approx 0.0013095 and standard deviation 0.60.001/252≈0.00119520.6\sqrt{0.001}/\sqrt{252} \approx 0.0011952, so it is negative with probability Φ(−1.0956)≈0.137\Phi(-1.0956) \approx 0.137. That is a defect of the scheme, not of the model.

Affine characteristic function

Definition For a real number uu, the conditional characteristic function of the log price xT=ln⁡STx_T = \ln S_T is φt(u)=EQ[eiuxT∣Ft]\varphi_t(u) = \mathbb{E}^{\mathbb{Q}}[e^{i u x_T} \mid \mathcal{F}_t]. In the Heston model it has the exponential-affine form

φt(u)=exp⁡(iu[xt+(r−q)τ]+A(τ,u)+B(τ,u) vt),\begin{aligned} &\varphi_t(u) \\[0.4em] &= \exp\bigl( iu[x_t + (r - q)\tau] \\[0.4em] &\quad + A(\tau, u) + B(\tau, u)\, v_t \bigr), \end{aligned}

with τ=T−t\tau = T - t, where the complex-valued coefficients AA and BB solve the Riccati equations of the next card with A(0,u)=B(0,u)=0A(0, u) = B(0, u) = 0. By the Markov property, φt(u)=f(t,xt,vt)\varphi_t(u) = f(t, x_t, v_t) for the function f(t,x,v)=EQ[eiuxT∣xt=x,vt=v]f(t, x, v) = \mathbb{E}^{\mathbb{Q}}[e^{iux_T} \mid x_t = x, v_t = v], which satisfies the backward equation ∂tf+Lf=0\partial_t f + \mathcal{L} f = 0 with f(T,x,v)=eiuxf(T, x, v) = e^{iux} when it is smooth enough. Substituting the exponential-affine guess turns this equation into ordinary differential equations, which the next card derives. That for every real uu these equations have solutions on the whole horizon, and that the resulting exponential is the characteristic function, is a standard result for affine models, stated here without proof. Since ∣eiuxT∣=1\lvert e^{iux_T} \rvert = 1, every value satisfies ∣φt(u)∣≤1\lvert \varphi_t(u) \rvert \le 1, and φt(0)=1\varphi_t(0) = 1.

In plain words The characteristic function of the future log price depends on the current state only through an exponent that is linear in xtx_t and vtv_t. Its coefficients do not depend on the state, so they are computed once for each uu and each horizon. Fourier methods, the subject of Fourier transform pricing, then turn the characteristic function into option prices.

Example For the constructed parameters with τ=1\tau = 1 and u=1u = 1, a fourth-order Runge-Kutta solution of the Riccati equations gives

A≈−0.01182−0.01081i,B≈−0.2287−0.2010i,\begin{aligned} A &\approx -0.01182 - 0.01081 i, \\[0.4em] B &\approx -0.2287 - 0.2010 i, \end{aligned}

so A+Bv0≈−0.03240−0.02890iA + B v_0 \approx -0.03240 - 0.02890 i and ∣φ∣≈e−0.03240≈0.9681\lvert \varphi \rvert \approx e^{-0.03240} \approx 0.9681. A Monte Carlo estimate of EQ[ei(x1−x0−(r−q))]\mathbb{E}^{\mathbb{Q}}\bigl[e^{i(x_1 - x_0 - (r - q))}\bigr] from 200000200000 simulated paths agrees with eA+Bv0e^{A + B v_0} to within its standard error of about 0.00060.0006. The deterministic variance path with ξ=0\xi = 0 and the same v0v_0 gives the slightly larger modulus 0.96970.9697.

Riccati equations

Definition Write τ=T−t\tau = T - t and substitute the guess

f=exp⁡(iu[x+(r−q)τ]+A(τ,u)+B(τ,u) v)\begin{aligned} f &= \exp\bigl( iu[x + (r - q)\tau] \\[0.4em] &\quad + A(\tau, u) + B(\tau, u)\, v \bigr) \end{aligned}

into the backward equation in the form ∂τf=Lf\partial_\tau f = \mathcal{L} f. Each derivative is ff times a simple factor, namely iuiu for fxf_x, −u2-u^2 for fxxf_{xx}, BB for fvf_v, B2B^2 for fvvf_{vv} and iuBiuB for fxvf_{xv}, while ∂τf\partial_\tau f is ff times iu(r−q)+∂τA+v ∂τBiu(r - q) + \partial_\tau A + v \, \partial_\tau B. Dividing by the nonzero ff and matching the terms without vv and the coefficients of vv gives the Riccati system

∂τA=κθB,∂τB=12ξ2B2+(ρξiu−κ)B−12(u2+iu),\begin{aligned} \partial_\tau A &= \kappa \theta B, \\[0.4em] \partial_\tau B &= \tfrac12 \xi^2 B^2 \\[0.4em] &\quad + (\rho \xi i u - \kappa) B \\[0.4em] &\quad - \tfrac12 (u^2 + iu), \end{aligned}

with A(0,u)=B(0,u)=0A(0, u) = B(0, u) = 0. The equation for BB is quadratic in BB, and A(τ,u)=κθ∫0τB(s,u) dsA(\tau, u) = \kappa\theta \int_0^\tau B(s, u)\, ds follows by integration. In the constant term, −12u2-\tfrac12 u^2 comes from the curvature term 12vfxx\tfrac12 v f_{xx} and −12iu-\tfrac12 iu from the drift correction −v2-\tfrac{v}{2} of the log price. That constant term vanishes at u=0u = 0, where the solution is A=B=0A = B = 0 and φ=1\varphi = 1. It also vanishes at u=−iu = -i, where the solution is again zero and the formal value exT=STe^{x_T} = S_T gives EQ[ST∣Ft]=Ste(r−q)τ\mathbb{E}^{\mathbb{Q}}[S_T \mid \mathcal{F}_t] = S_t e^{(r - q)\tau}, in line with the carry. Making that substitution rigorous needs the martingale property of the discounted stock. The system also has a closed-form solution in terms of complex square roots and logarithms, whose evaluation needs a consistent branch of the complex logarithm. That implementation, the conditions under which exponential moments of the log price are finite, and calibration to option prices lie beyond this lesson.

In plain words The two-dimensional pricing equation for the characteristic function becomes one scalar Riccati equation for BB and one integral for AA. Every parameter of the model enters through these two coefficients, and the signs of the terms can be traced back to the generator.

Example With ξ=0\xi = 0 the equation for BB is linear, ∂τB=−κB−12(u2+iu)\partial_\tau B = -\kappa B - \tfrac12(u^2 + iu), and its solution is

B(τ,u)=−(u2+iu) 1−e−κτ2κ.\begin{aligned} &B(\tau, u) \\[0.4em] &\quad = -(u^2 + iu)\, \frac{1 - e^{-\kappa\tau}}{2\kappa}. \end{aligned}

Integrating gives A+Bv=−12(u2+iu) I(τ)A + B v = -\tfrac12 (u^2 + iu)\, I(\tau), where I(τ)=θτ+(v−θ)(1−e−κτ)/κI(\tau) = \theta\tau + (v - \theta)(1 - e^{-\kappa\tau})/\kappa is the integrated deterministic variance. The resulting function is the characteristic function of a normal log price with mean x+(r−q)τ−I/2x + (r - q)\tau - I/2 and variance II. With v=θv = \theta it is the Black-Scholes log price with σ2=θ\sigma^2 = \theta, and for u=1u = 1, τ=1\tau = 1 and v=θ=0.04v = \theta = 0.04 the exponent is −0.02−0.02i-0.02 - 0.02i.

Check yourself

  1. For the constructed parameters κ=2\kappa = 2, θ=0.04\theta = 0.04 and v0=0.09v_0 = 0.09, find EQ[v0.5]\mathbb{E}^{\mathbb{Q}}[v_{0.5}] and the expected integrated variance over half a year. What average annualized variance does that correspond to, and why is its square root not the expected realized volatility?
Show the answer

The mean variance is

EQ[v0.5]=0.04+0.05e−1≈0.058394.\begin{aligned} \mathbb{E}^{\mathbb{Q}}[v_{0.5}] &= 0.04 + 0.05 e^{-1} \\[0.4em] &\approx 0.058394 . \end{aligned}

The expected integrated variance is 0.04⋅0.5+0.05(1−e−1)/2≈0.02+0.015803=0.0358030.04 \cdot 0.5 + 0.05(1 - e^{-1})/2 \approx 0.02 + 0.015803 = 0.035803. Dividing by the half year gives the average annualized variance 0.0716060.071606, whose square root is about 0.26760.2676. The annualized realized volatility over the half year is I/0.5\sqrt{I/0.5}, where II is the random integrated variance, and the square root is strictly concave. By Jensen’s inequality its expectation is below 0.26760.2676 whenever ξ>0\xi > 0, so a volatility contract cannot be priced from the expected variance alone.

  1. Take the constructed parameters κ=1.5\kappa = 1.5, θ=0.05\theta = 0.05, ξ=0.5\xi = 0.5 and v0=0.0625v_0 = 0.0625. What is the current volatility, and does the Feller condition hold? A classmate concludes that the variance can now become negative. Correct the statement, and find the probability that one Euler step of length 1/2521/252 from vn=0.001v_n = 0.001 is negative.
Show the answer

The current volatility is 0.0625=0.25\sqrt{0.0625} = 0.25. The condition fails, since 2κθ=0.152\kappa\theta = 0.15 is less than ξ2=0.25\xi^2 = 0.25. Failure means that zero is accessible, so the variance reaches zero in finite time with positive probability. The solution of the variance equation is still nonnegative, and it is reflected at zero because the drift there is κθ=0.075>0\kappa\theta = 0.075 > 0. Negative values come from discretization. The Euler step from 0.0010.001 is normal with mean 0.001+1.5(0.05−0.001)/252≈0.00129170.001 + 1.5(0.05 - 0.001)/252 \approx 0.0012917 and standard deviation 0.50.001/252≈0.000996020.5\sqrt{0.001}/\sqrt{252} \approx 0.00099602, so

Q(vn+1<0)=Φ(−1.2968)≈0.0973.\begin{aligned} &\mathbb{Q}(v_{n+1} < 0) \\[0.4em] &\quad = \Phi(-1.2968) \approx 0.0973 . \end{aligned}
  1. Take ξ=0\xi = 0 and v0=θv_0 = \theta. Solve the Riccati equations and show that the result is the characteristic function of the Black-Scholes log price with σ2=θ\sigma^2 = \theta. A classmate drops the term −12iu-\tfrac12 iu from the equation for BB. What would the classmate’s system give for EQ[ST∣Ft]\mathbb{E}^{\mathbb{Q}}[S_T \mid \mathcal{F}_t] at the formal value u=−iu = -i, with θ=0.04\theta = 0.04 and τ=1\tau = 1?
Show the answer

With ξ=0\xi = 0 the solution is B=−12(u2+iu)(1−e−κτ)/κB = -\tfrac12(u^2 + iu)(1 - e^{-\kappa\tau})/\kappa and

A=κθ∫0τB ds=−12(u2+iu) θ×(τ−1−e−κτκ),\begin{aligned} A &= \kappa\theta \int_0^\tau B \, ds \\[0.4em] &= -\tfrac12(u^2 + iu)\, \theta \\[0.4em] &\quad \times \Bigl(\tau - \frac{1 - e^{-\kappa\tau}}{\kappa}\Bigr), \end{aligned}

so A+θB=−12(u2+iu)θτA + \theta B = -\tfrac12(u^2 + iu)\theta\tau. With m=x+(r−q−θ/2)τm = x + (r - q - \theta/2)\tau the characteristic function is

exp⁡(ium−12u2θτ),\exp\bigl( iu m - \tfrac12 u^2 \theta\tau \bigr),

that of a normal variable with mean mm and variance θτ\theta\tau, which is the Black-Scholes log price with σ2=θ\sigma^2 = \theta. In the classmate’s system the constant term is −12u2-\tfrac12 u^2, which equals 12\tfrac12 at u=−iu = -i. Then ∂τB=−κB+12\partial_\tau B = -\kappa B + \tfrac12, so B=(1−e−κτ)/(2κ)B = (1 - e^{-\kappa\tau})/(2\kappa), and A+θB=12θτ=0.02A + \theta B = \tfrac12 \theta\tau = 0.02. The classmate would get Ste(r−q)τe0.02S_t e^{(r - q)\tau} e^{0.02}, about 2.022.02 percent above the forward value, so the discounted stock would not be a martingale. The missing term is the drift correction −v2-\tfrac{v}{2} of the log price.

How this lesson connects

It also uses complex numbers.