Heston Model Calculator — Stochastic Volatility Option Pricing
Price European options under the Heston stochastic volatility model: call and put values, model-implied volatility, forward, and the Feller condition from five parameters.
Heston Volatility Calculator
A clear path from inputs to results.
Price a European option when volatility itself is random rather than fixed. The Heston model lets variance mean-revert and be correlated with the spot, so a single set of parameters reproduces the volatility smile and skew that Black-Scholes cannot. Enter the spot, strike, maturity, rates, and the five variance-process parameters, and the calculator returns the call and put, the implied volatility that matches the price, the risk-neutral forward, and diagnostics such as the Feller condition.
How to use
- Set the spot price, strike, and maturity in years for the contract you want to value.
- Set the risk-free rate and the continuous dividend yield as annual decimals (3% = 0.03).
- Enter the initial variance v0 (the square of the current instantaneous volatility, so v0 = 0.04 is a 20% starting vol) and the long-run variance theta that it reverts toward.
- Set the mean-reversion speed kappa, the volatility-of-volatility xi, and the spot/variance correlation rho (typically negative for equities, which produces the downside skew).
- Read the price cards for the call and put, the implied Black-Scholes volatility the model price corresponds to, and the forward and discount factor.
- Check the Feller gap (2*kappa*theta - xi^2): when it is negative, as it is at the defaults, the variance path can touch zero, which is admissible but worth knowing when you interpret the surface.
- Adjust the integration cutoff and step count if you push to extreme parameters; the defaults (upper 120, 600 steps) resolve the Fourier integral to several decimals for standard inputs.
The formula
Reference: Heston (1993), "A Closed-Form Solution for Options with Stochastic Volatility and Applications to Bond and Currency Options", Review of Financial Studies 6(2), 327-343; Gatheral, The Volatility Surface (2006), for the P1/P2 decomposition and numerical integration.
Worked example
At-the-money one-year call with negative skew
- Spot 100, strike 100, maturity 1 year; risk-free rate 3%, dividend yield 1%; initial variance v0 = 0.04 (20% vol), long-run variance theta = 0.045, mean-reversion speed kappa = 2.1, volatility-of-volatility xi = 0.55, correlation rho = -0.7.
- 1
The characteristic function phi_j(phi) is evaluated along the real line and the two probabilities P1 and P2 are obtained by Simpson quadrature of Re[e^{-i*phi*lnK} * phi_j(phi) / (i*phi)] from 0 to 120 in 600 steps, each shifted by 1/2 and scaled by 1/pi. With these inputs P1 and P2 give a call of S*e^{-qT}*P1 - K*e^{-rT}*P2 = 100*e^{-0.01}*P1 - 100*e^{-0.03}*P2 = 8.384823. Put-call parity C - S*e^{-qT} + K*e^{-rT} then gives the put 100*e^{-0.03} - 100*e^{-0.01} + 8.384823 = 6.424393. Inverting a Black-Scholes call to that price returns an implied volatility of 18.857%, below the 20% starting vol because kappa pulls variance toward theta and the -0.7 correlation reshapes the risk-neutral density. The Feller gap 2*2.1*0.045 - 0.55^2 = -0.1135 is negative, so variance can reach zero.
Call 8.3848, put 6.4244, model-implied Black-Scholes volatility 18.86%, forward 102.0201, mean-reversion half-life ln2/kappa = 0.330 years; Feller gap -0.1135 (condition violated, zero-variance touching allowed).
Interpreting the result
The call and put are the model values given stochastic, mean-reverting variance; the single implied volatility reported next to them is the Black-Scholes number that reproduces the same price, which is how a Heston quote is compared to the market smile. A negative correlation rho tilts the risk-neutral distribution left, raising out-of-the-money put volatilities and producing the equity skew, while xi controls how pronounced the smile is. The Feller gap tells you whether the variance process is strictly positive (positive gap) or can touch zero (negative gap), and the half-life ln2/kappa says how quickly a variance shock decays.
Assumptions & limitations
- European exercise only; the Fourier pricing covers a single terminal payoff and does not value early exercise.
- Constant risk-free rate and continuous proportional dividend yield; no rate term structure or discrete dividends.
- The variance follows a square-root (CIR) process with constant kappa, theta, xi, and rho; these are held fixed rather than being time-dependent or themselves stochastic.
- Prices come from numerical integration of the characteristic function with a finite cutoff and step count, so extreme parameters may need a larger cutoff for full convergence.
- The implied volatility is solved by bisection against the model call and is only defined when the price lies inside the no-arbitrage band.
- The Feller condition 2*kappa*theta >= xi^2 is reported, not enforced; the defaults deliberately violate it, which is common in equity calibrations.
Frequently asked questions
How is Heston different from Black-Scholes?
Black-Scholes assumes a single constant volatility, so it prices every strike off one number and cannot fit the smile. Heston makes the variance itself a mean-reverting random process correlated with the spot, which generates a volatility surface from five parameters. At zero volatility-of-volatility (xi = 0) and zero correlation Heston collapses back to Black-Scholes.
What is the Feller condition and why is it violated here?
The Feller condition 2*kappa*theta >= xi^2 guarantees the variance process stays strictly positive. At the defaults 2*2.1*0.045 = 0.189 is below xi^2 = 0.3025, so the gap is -0.1135 and variance can touch zero. This is admissible and extremely common in real equity calibrations, where fitting the observed skew tends to require a high volatility-of-volatility; the pricing integral still converges.
How is the price actually computed?
The engine evaluates the Heston characteristic function and integrates two Fourier integrals for the in-the-money probabilities P1 and P2 using Simpson quadrature, with a cutoff of 120 and 600 steps by default. The call is then S*e^{-qT}*P1 - K*e^{-rT}*P2 and the put follows from put-call parity. Increasing the cutoff and steps improves accuracy for far-from-the-money strikes or very short maturities.
What does the correlation rho control?
Rho is the correlation between the shocks to the spot and to its variance. A negative value, like the -0.7 default, means volatility rises when the price falls, which fattens the left tail of the risk-neutral distribution and lifts out-of-the-money put volatilities. That is the mechanism behind the equity skew; a positive rho tilts the smile the other way, as is sometimes seen in commodities.
Why is the implied volatility below the starting volatility?
The initial variance v0 = 0.04 corresponds to a 20% instantaneous volatility, but the option price integrates variance over the whole year. Mean reversion at speed kappa = 2.1 pulls variance toward theta = 0.045, and the negative correlation reshapes the density, so the single Black-Scholes volatility that matches the one-year call comes out at 18.86% rather than 20%.
Does this calibrate the model to market prices?
No. It is a forward pricer: you supply the five variance-process parameters and it returns prices and the implied-volatility surface they imply. Calibration, the inverse problem of fitting kappa, theta, xi, rho, and v0 to a grid of market quotes, is a separate optimization that this tool does not perform.
Methodology last reviewed 2026-10-06. Results are informational and not financial or engineering advice — see our disclaimer.