Skip to content

Heston Model: Risk-Neutral Variance, Numerical Engines, and Calibration

Audit Heston through risk-neutral parameters, variance boundaries, correlated shocks, characteristic-function conventions, quote-weighted calibration, and numerical validation.

Updated

For educational purposes only; not investment advice. Investing may result in loss.

Direct answer

Under a common risk-neutral measure Q, the Heston model specifies dS_t / S_t = (r - q)dt + sqrt(v_t)dW_t^(S,Q) and dv_t = kappa(theta - v_t)dt + xi sqrt(v_t)dW_t^(v,Q), with d<W^(S,Q), W^(v,Q)>_t = rho dt. The five core pricing parameters are v_0, theta, kappa, xi, and rho.

These are risk-neutral calibration parameters unless a physical-to-risk-neutral variance-risk-premium mapping is stated. They can generate stochastic variance, downside skew, and term effects, but a fitted set is not a unique market truth, a volatility forecast, or proof of hedge quality.

Build, calibrate, and validate in seven steps

  1. Lock the claim, exercise and settlement rules, currency, market timestamp, forward, discount curve, dividends, borrow, and whether the task uses physical measure P or pricing measure Q.
  2. State the SDE and units: v_0 and theta are annualized variances, kappa has units 1/year, xi has units 1/sqrt(year), and rho is dimensionless in [-1, 1]. Document any P-to-Q variance-risk-premium mapping.
  3. Require admissible signs and correlation, then evaluate 2 kappa theta >= xi^2. The exact square-root process is nonnegative; the sufficient Feller condition concerns whether zero is unattainable or strictly positive, while failure does not make exact variance negative or every price invalid.
  4. Lock the characteristic-function convention, such as phi(u;T) = E^Q[exp(iu ln S_T)], together with log-price or log-forward coordinates, Fourier sign, damping, discounting, complex square-root and logarithm branches, integration cutoff, grid, and tolerance.
  5. Clean synchronized executable bid, ask, size, forward, discount, dividend, and corporate-action data. Remove documented stale, crossed, zero-size, and static-arbitrage violations; define whether the objective uses price, implied-volatility, Vega, spread, or another weight.
  6. Calibrate from multiple starts and report bounds, Feller penalties if used, alternative near-optimal sets, spread-normalized residuals, gradients or Jacobian conditioning, and parameter instability rather than one RMSE alone.
  7. Validate put-call parity, deterministic-volatility limits, quadrature and FFT convergence, finite-difference or Monte Carlo cross-checks, simulation-scheme bias, out-of-sample prices and hedge P/L, then stress jumps, events, liquidity, recalibration, and settlement.

Four worked examples

  • Moments and Feller diagnostic. Let v_0 = 0.09, theta = 0.04, kappa = 2, xi = 0.30, rho = -0.70, and t = 0.5. Then E^Q[v_t] = 0.0583939721, sqrt(E^Q[v_t]) = 0.2416484473, variance half-life is 0.3465735903 year = 4.1588830834 months, and 2 kappa theta = 0.16 > xi^2 = 0.09. The sufficient condition holds, but sqrt(E[v_t]) is not E[sqrt(v_t)] or an option implied volatility.
  • Correlated shock construction. With rho = -0.70, Z_S = -1.2, and independent Z_perp = 0.5, use Z_v = rho Z_S + sqrt(1 - rho^2)Z_perp = 1.1970714214. For S = $100, v = 0.04, r = 4%, q = 1.5%, kappa = 2, theta = 0.04, xi = 0.30, and Delta t = 1/252, one plain-Euler diagnostic gives S_next = $98.4980627429, v_next = 0.0445245047, and sqrt(v_next) = 0.2110083048. This checks sign and units; plain Euler is not the production recommendation.
  • Expected integrated variance. Using the first parameter set and T = 1.5, E^Q[integral_0^T v_t dt] = theta T + (v_0 - theta)(1 - e^(-kappa T))/kappa = 0.0837553233 variance-years. Average expected variance is 0.0558368822, with square root 0.2362982907. It is neither one path’s realized variance nor a directly quoted option IV.
  • Calibration weights change the diagnosis. Three quotes have bid/ask/model/Vega values (5.10, 5.30, 5.18, 12), (2.00, 2.10, 2.08, 4), and (0.45, 0.55, 0.60, 1.5). Mid residuals are -0.02, +0.03, and +0.10; half-spread-normalized residuals are -0.2, +0.6, and +2.0. Price SSE is 0.0113, spread-weighted SSE is 4.40, and Vega-normalized residuals are -0.0016667, +0.0075, and +0.0666667 volatility decimals. The objective changes what the optimizer treats as a serious error.

Model, calibration, and numerical risks

  • Mixing physical and risk-neutral parameters or omitting the variance risk premium.
  • Confusing variance with volatility or applying the wrong square-root conversion.
  • Mixing year, day, rate, dividend, and volatility annualization units.
  • Using wrong forward, discount, continuous-dividend, or discrete-dividend inputs.
  • Allowing invalid parameter signs or rho outside [-1, 1].
  • Treating Feller failure as negative exact variance or automatic model invalidity.
  • Using naive Euler paths that create negative variance and biased payoffs.
  • Ignoring bias and convergence differences among truncation, QE, and exact schemes.
  • Mixing log-price, log-forward, Fourier-sign, or characteristic-function conventions.
  • Choosing inconsistent complex square-root or logarithm branches and triggering the Little Heston Trap.
  • Using insufficient integration cutoff, quadrature resolution, FFT damping, or tolerance.
  • Failing deterministic-volatility, put-call parity, probability, and independent-engine tests.
  • Calibrating stale, asynchronous, indicative, crossed, or zero-size quotes.
  • Feeding a surface with static-arbitrage or corporate-action distortions into calibration.
  • Treating midpoint errors as executable while ignoring bid-ask and size.
  • Assuming price, IV, Vega, and spread-weighted objectives are equivalent.
  • Trusting one starting point despite local minima, flat directions, and weak identification.
  • Overfitting one surface without out-of-sample price and hedge validation.
  • Assuming constant-parameter continuous Heston captures jumps, events, default, all smiles, and future surface dynamics.
  • Omitting liquidity, costs, margin, product settlement, recalibration controls, and model governance.

Common misconceptions

  • “Heston predicts volatility.” It specifies conditional dynamics after measure and parameters are chosen.
  • “Feller failure makes variance negative and all prices invalid.” Exact boundary behavior and numerical discretization are different issues.
  • “Closed form means no numerics.” Heston pricing still requires characteristic-function inversion and numerical controls.
  • “The best fit uniquely identifies the dynamics and hedge.” Different parameter sets and objectives can fit similarly.
  • “Stochastic volatility captures crashes and every smile.” Standard Heston remains a constant-parameter continuous diffusion.

Primary and academic sources

Navigation

Search the wiki...