Quant Sandbox
DerivativesPortfolio & RiskFixed IncomeCorporate FinanceStochastic ModelsGuide
Guide
Derivatives pricing
01Forwards, calls and puts02Combining positions03Arbitrage and the forward price04Put–call parity05The one-step binomial model06Risk-neutral probabilities07Multi-step trees and backward induction08American options and early exercise09Delta and hedging10Geometric Brownian motion11The Black–Scholes formula12The Greeks: gamma, vega, theta and rho13Implied volatility and the volatility smile14Stochastic volatility and the Heston model15Static replication: Breeden–Litzenberger and Carr–Madan16Exotic options: barriers, Asians and digitals
Portfolio & risk
01Returns and volatility02Diversification and correlation03The efficient frontier and the capital market line04Risk aversion and the optimal complete portfolio05CAPM, beta and the security market line06Performance measures: Sharpe, Treynor, Jensen and information ratio07Factor models and systematic risk08Value at Risk and expected shortfall
Fixed income
01Bond prices and yields02Duration and convexity03Immunization and duration matching04Spot rates, forward rates and the yield curve05Bond futures and the cheapest-to-deliver06Interest rate swaps07Callable bonds and negative convexity08Credit risk: default probabilities and credit spreads
Corporate finance
01Interest, compounding and discounting02Annuities, perpetuities and loan amortization03Net present value and internal rate of return04The weighted average cost of capital05Capital structure and the Modigliani–Miller theorems06Discounted cash flow valuation07Relative valuation with multiples08Real options: the value of flexibility
Stochastic models
01Random walks and Brownian motion02Probability spaces, σ-algebras and random variables03Filtrations, adapted processes and stopping times04Conditional expectation and martingales05Properties of Brownian motion06The reflection principle and first passage times07The Brownian bridge08The Itô integral09Itô's lemma10Kolmogorov equations and the Feynman–Kac formula11Change of measure and Girsanov's theorem12Monte Carlo option pricing13Simulating SDEs: the Euler–Maruyama scheme14Mean reversion: Ornstein–Uhlenbeck and Vasicek15Jumps and the Merton jump-diffusion model
Knowledge graph

© 2026 Quant Sandbox · A study aid for quantitative finance

Privacy & dataNo cookies

This site does not use cookies and asks for no personal data. It keeps a few small settings in your browser's local storage — your chosen theme and language, the sidebar layout, and your progress and answers in the Guides — so it remembers them on your next visit. This data never leaves your device; clearing your browser storage removes it. Inputs you change can also be captured in the page URL, so you can share or bookmark a specific setup. The site uses Vercel Web Analytics, a privacy-friendly, cookieless service that records only anonymous, aggregated usage (such as page views) without identifying you or tracking you across other sites.

Guide/Derivatives pricing

Stochastic volatility and the Heston model

Lesson 14 of 16 · 1 min read

"Implied volatility and the volatility smile" described a market fact that "The Black–Scholes formula" cannot explain: when each quoted option price is inverted for its own σ\sigmaσ, the implied volatilities form a smile or skew across strikes instead of a flat line. A model that produces this shape has to let volatility change. This lesson builds the Heston model, in which the variance itself moves randomly, and shows how two of its parameters shape the smile.

Constant volatility and its failure

In geometric Brownian motion the size of the random shocks never changes. Observed returns behave differently. Calm periods and turbulent periods alternate, so volatility clusters in time. Large falls in the price tend to come with rising volatility. And the distribution of returns has fatter tails than the normal distribution, especially on the downside.

A constant σ\sigmaσ cannot produce any of this. The natural fix is to make the variance a random process of its own, driven by a second source of randomness.

The Heston model

Write vtv_tvt​ for the instantaneous variance of the stock's returns, so the instantaneous volatility is vt\sqrt{v_t}vt​​. Under the risk-neutral measure Q\mathbb{Q}Q, with no dividends, the Heston model is

dSt=rSt dt+vt St dWt(1),dS_t = rS_t\,dt + \sqrt{v_t}\,S_t\,dW^{(1)}_t,dSt​=rSt​dt+vt​​St​dWt(1)​,
dvt=κ(θ−vt) dt+ξvt dWt(2),dv_t = \kappa(\theta - v_t)\,dt + \xi\sqrt{v_t}\,dW^{(2)}_t,dvt​=κ(θ−vt​)dt+ξvt​​dWt(2)​,

where W(1)W^{(1)}W(1) and W(2)W^{(2)}W(2) are Brownian motions with correlation ρ\rhoρ, that is dWt(1) dWt(2)=ρ dtdW^{(1)}_t\,dW^{(2)}_t = \rho\,dtdWt(1)​dWt(2)​=ρdt. The first equation is geometric Brownian motion from "Geometric Brownian motion", with σ\sigmaσ replaced by the moving quantity vt\sqrt{v_t}vt​​. The second equation describes how the variance moves.

The parameters

  • v0v_0v0​: the variance today. v0\sqrt{v_0}v0​​ is the current volatility.
  • θ\thetaθ: the long-run variance. Over long horizons vtv_tvt​ is pulled towards θ\thetaθ, so θ\sqrt{\theta}θ​ is the long-run volatility.
  • κ\kappaκ: the speed of mean reversion. The drift κ(θ−vt)\kappa(\theta - v_t)κ(θ−vt​) is positive when the variance is below θ\thetaθ and negative when it is above, and it is stronger the larger κ\kappaκ is.
  • ξ\xiξ: the volatility of variance (vol-of-vol). It sets how strongly the variance itself fluctuates.
  • ρ\rhoρ: the correlation between the shocks to the price and the shocks to the variance.

Without the random term the variance would relax exponentially towards θ\thetaθ. The random term does not change the average path, so the expected variance at time ttt is

EQ[vt]=θ+(v0−θ) e−κt.\mathbb{E}^{\mathbb{Q}}[v_t] = \theta + (v_0 - \theta)\,e^{-\kappa t}.EQ[vt​]=θ+(v0​−θ)e−κt.

The gap to θ\thetaθ halves every ln⁡2/κ\ln 2/\kappaln2/κ years. This is the half-life of a variance shock.

The factor vt\sqrt{v_t}vt​​ in front of dW(2)dW^{(2)}dW(2) makes the shocks shrink as the variance approaches zero. If mean reversion is strong enough compared with the vol-of-vol, the variance never reaches zero. This is the Feller condition:

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

When it fails the variance can touch zero and bounce back. The model still works, but simulations need care near zero.

A worked example

Take v0=0.09v_0 = 0.09v0​=0.09, θ=0.04\theta = 0.04θ=0.04 and κ=2\kappa = 2κ=2. Today's volatility is 0.09=30%\sqrt{0.09} = 30\%0.09​=30% and the long-run volatility is 0.04=20%\sqrt{0.04} = 20\%0.04​=20%. The half-life is ln⁡2/2≈0.35\ln 2/2 \approx 0.35ln2/2≈0.35 years, a little over four months.

After half a year the expected variance is 0.04+0.05 e−1≈0.05840.04 + 0.05\,e^{-1} \approx 0.05840.04+0.05e−1≈0.0584, a volatility of about 24.2%24.2\%24.2%. After one year it is 0.04+0.05 e−2≈0.04680.04 + 0.05\,e^{-2} \approx 0.04680.04+0.05e−2≈0.0468, about 21.6%21.6\%21.6%.

For the Feller condition, 2κθ=0.162\kappa\theta = 0.162κθ=0.16. With ξ=0.3\xi = 0.3ξ=0.3 we have ξ2=0.09≤0.16\xi^2 = 0.09 \le 0.16ξ2=0.09≤0.16, so the condition holds. With ξ=0.5\xi = 0.5ξ=0.5 we have ξ2=0.25>0.16\xi^2 = 0.25 > 0.16ξ2=0.25>0.16, so it fails, and the variance can reach zero.

Worked example

Expected variance and the Feller check

  1. Take v0=0.0625v_0 = 0.0625v0​=0.0625 (25% volatility), θ=0.04\theta = 0.04θ=0.04, κ=1.5\kappa = 1.5κ=1.5. Half-life of a variance shock, in years.

    ln⁡2/κ\displaystyle \ln 2 / \kappaln2/κ=0.4621
  2. Expected variance after one year.

    θ+(v0−θ) e−κ⋅1\displaystyle \theta + (v_0 - \theta)\,e^{-\kappa \cdot 1}θ+(v0​−θ)e−κ⋅1=0.04502
  3. The corresponding volatility, in percent.

    EQ[v1]\displaystyle \sqrt{\mathbb{E}^{\mathbb{Q}}[v_1]}EQ[v1​]​=21.22%
  4. Feller margin with ξ=0.35\xi = 0.35ξ=0.35; it is negative, so the condition just fails.

    2κθ−ξ2\displaystyle 2\kappa\theta - \xi^22κθ−ξ2=-0.0025

Correlation and the skew

For equities ρ\rhoρ is typically negative, often between −0.5-0.5−0.5 and −0.9-0.9−0.9. A negative ρ\rhoρ means that a fall in the price tends to come with a rise in variance. This is the leverage effect: as the share price drops, the firm's debt is larger relative to its equity, and the equity becomes riskier.

Consider what this does to the distribution of STS_TST​. Paths that fall gain variance and spread out further downwards. Paths that rise lose variance and stay closer together. The left tail becomes longer than the right. Out-of-the-money puts, which pay off in that left tail, become more valuable than under Black–Scholes, so their implied volatility is higher. Implied volatility then falls as the strike rises: the skew.

Vol-of-vol and the curvature

The parameter ξ\xiξ controls how much the variance moves. With ξ=0\xi = 0ξ=0 the variance follows its deterministic path and the model is close to Black–Scholes with a time-varying volatility, so the smile is nearly flat. A larger ξ\xiξ mixes calm paths with very turbulent ones. The resulting distribution of returns has a sharper peak and fatter tails on both sides than a normal distribution with the same variance. Options far from the money on either side gain value, and the smile curves upwards at both ends.

In the Heston model, ρ\rhoρ tilts the implied-volatility curve (negative ρ\rhoρ gives the equity skew), and ξ\xiξ bends it (larger vol-of-vol gives more curvature).

The figure plots the Heston implied volatility against the strike for S0=100S_0 = 100S0​=100, r=0r = 0r=0, T=1T = 1T=1, v0=θ=0.04v_0 = \theta = 0.04v0​=θ=0.04 and κ=2\kappa = 2κ=2. Each point is the Black–Scholes implied volatility of the Heston call price at that strike, with the Heston price computed from the characteristic function described below. The flat line at θ=20%\sqrt{\theta} = 20\%θ​=20% is the Black–Scholes (constant volatility) reference. The readouts give the implied volatility at K=80K = 80K=80, 100100100 and 120120120 and the skew IV(80)−IV(120)\text{IV}(80) - \text{IV}(120)IV(80)−IV(120).

At the defaults ρ=−0.7\rho = -0.7ρ=−0.7, ξ=0.5\xi = 0.5ξ=0.5 the implied volatilities are 23.03%23.03\%23.03%, 18.05%18.05\%18.05% and 14.54%14.54\%14.54%, a skew of 8.498.498.49 percentage points. Move ρ\rhoρ towards −0.9-0.9−0.9 and the skew grows. At ρ=0\rho = 0ρ=0 the same three strikes give 20.26%20.26\%20.26%, 18.76%18.76\%18.76% and 19.82%19.82\%19.82%: a roughly symmetric smile with its minimum near the money. Increase ξ\xiξ and the curve bends more strongly. Note also that the at-the-money implied volatility is below 20%, even though the variance starts at θ\thetaθ and reverts to it: vol-of-vol moves value from the centre of the distribution into the tails.

Implied volatility in the Heston modelOpen in Heston →
-0.70
-0.90.5
0.50
0.11
Heston implied volatilityBlack–Scholes: constant 20%
IV at K = 80
23.03%
IV at K = 100
18.05%
IV at K = 120
14.54%
Skew IV(80) − IV(120)
8.49 pp

The smile above is one slice, at T=1T = 1T=1, of a whole implied-volatility surface: one implied volatility for every strike and every maturity. The next figure draws that surface for strikes from 70 to 130 and maturities from 3 months to 2 years, with the same parameters as above. Drag it to rotate and scroll to zoom. Choose ρ\rhoρ and ξ\xiξ with the buttons. At the defaults (ρ=−0.7\rho = -0.7ρ=−0.7, ξ=0.5\xi = 0.5ξ=0.5) the skew IV(80)−IV(120)\text{IV}(80) - \text{IV}(120)IV(80)−IV(120) is 11.53 percentage points at 3 months, 8.49 at 1 year and 5.76 at 2 years: the skew flattens as maturity grows. Over a longer horizon the variance has more time to revert to θ\thetaθ, so the distribution of the log return looks more nearly normal. With ρ=0\rho = 0ρ=0 the surface is a nearly symmetric valley, and with ρ=+0.3\rho = +0.3ρ=+0.3 the tilt reverses.

Heston implied-volatility surfaceOpen in Heston →
Correlation ρ
Vol of vol ξ

Drag to rotate, scroll to zoom.

IV at K = 80, T = 1
23.03%
IV at K = 100, T = 1
18.05%
IV at K = 120, T = 1
14.54%
Skew IV(80) − IV(120), T = 0.25
11.53 pp
Skew IV(80) − IV(120), T = 1
8.49 pp
Skew IV(80) − IV(120), T = 2
5.76 pp

Pricing in the Heston model

The price of a European call is still the discounted risk-neutral expectation C0=e−rT EQ[(ST−K)+]C_0 = e^{-rT}\,\mathbb{E}^{\mathbb{Q}}[(S_T - K)^+]C0​=e−rTEQ[(ST​−K)+]. There is no formula as short as Black–Scholes, but there are two standard routes.

The first is simulation, as in "Monte Carlo option pricing". Split [0,T][0, T][0,T] into small steps Δt\Delta tΔt. In each step draw two independent standard normals Z1,Z2Z_1, Z_2Z1​,Z2​, set ε1=Z1\varepsilon_1 = Z_1ε1​=Z1​ and ε2=ρZ1+1−ρ2 Z2\varepsilon_2 = \rho Z_1 + \sqrt{1-\rho^2}\,Z_2ε2​=ρZ1​+1−ρ2​Z2​, so that the two shocks have correlation ρ\rhoρ, and update

vt+Δt=vt+κ(θ−vt) Δt+ξvt+ Δt ε2,v_{t+\Delta t} = v_t + \kappa(\theta - v_t)\,\Delta t + \xi\sqrt{v_t^+}\,\sqrt{\Delta t}\,\varepsilon_2,vt+Δt​=vt​+κ(θ−vt​)Δt+ξvt+​​Δt​ε2​,
St+Δt=Stexp⁡((r−12vt+)Δt+vt+ Δt ε1).S_{t+\Delta t} = S_t\exp\Big(\big(r - \tfrac{1}{2}v_t^+\big)\Delta t + \sqrt{v_t^+}\,\sqrt{\Delta t}\,\varepsilon_1\Big).St+Δt​=St​exp((r−21​vt+​)Δt+vt+​​Δt​ε1​).

Here vt+=max⁡(vt,0)v_t^+ = \max(v_t, 0)vt+​=max(vt​,0) guards against the small negative values that a discrete step can produce. Averaging the discounted payoff over many paths gives the price, with the standard error from "Monte Carlo option pricing".

The second route is semi-analytic. Heston showed that the characteristic function of ln⁡ST\ln S_TlnST​ has a closed form. The call price can then be written as S0P1−Ke−rTP2S_0P_1 - Ke^{-rT}P_2S0​P1​−Ke−rTP2​, the same shape as Black–Scholes, where P1P_1P1​ and P2P_2P2​ are probabilities computed by a one-dimensional numerical integral. This is fast enough to fit the five parameters to a whole surface of market prices.

Summary

  • The Heston model lets the variance vtv_tvt​ follow its own mean-reverting random process, correlated with the price.
  • v0v_0v0​ is today's variance, θ\thetaθ the long-run level, κ\kappaκ the reversion speed (half-life ln⁡2/κ\ln 2/\kappaln2/κ), ξ\xiξ the vol-of-vol and ρ\rhoρ the correlation.
  • The Feller condition 2κθ≥ξ22\kappa\theta \ge \xi^22κθ≥ξ2 keeps the variance away from zero.
  • Negative ρ\rhoρ produces the equity skew; larger ξ\xiξ produces a more curved smile.
  • Prices come from simulation or from a numerical integral of the characteristic function.
Try itSimulate price and variance paths and price options in the Heston lab →
2 questions on this lesson at the end of the series →
← PreviousImplied volatility and the volatility smileNext →Static replication: Breeden–Litzenberger and Carr–Madan
Connections
Stochastic volatility and the Heston mod…
Open the full graph →
Labs for this lesson
Heston