Skip to content
Module 09 of 1050 min readAdvanced

Binomial and trinomial trees

Cox-Ross-Rubinstein. Backward induction. Why trees still earn their keep for path-dependent and early-exercise products.

90%

Listen along

Read “Binomial and trinomial trees” aloud

Plays in your browser using on-device text-to-speech — nothing leaves the page.

Binomial trees are the most pedagogically clear pricing technique. Discretise time, model the underlying as a tree of up/down moves with risk-neutral probabilities, work backward from expiry. They handle early exercise naturally, converge to Black-Scholes as the time-step shrinks, and remain the standard reference for low-dimensional path-dependent and American options.

Cox-Ross-Rubinstein parameterisation

math
u = exp(σ √Δt)
d = 1/u = exp(-σ √Δt)
p = (exp(r Δt) - d) / (u - d)

Time step Δt = T/n. The up-move u and down-move d are chosen so that variance per step is σ² Δt (matches GBM in the limit). The risk-neutral probability p makes expected return equal r per step.

Tree construction

At step k, the stock can take any of the values S_0 · u^j · d^(k-j) for j = 0, ..., k. The tree has (n+1)(n+2)/2 nodes. Width grows as √k due to the random-walk variance scaling.

Backward induction

At t = T: V(S, T) = payoff(S). For k = n-1, n-2, ..., 0: at each node S, compute the continuation value as the discounted expected next-step value, and (for American options) compare to immediate exercise:

math
V(S, kΔt) = max(exercise, e^{-rΔt}[p V(S·u, (k+1)Δt) + (1-p) V(S·d, (k+1)Δt)])

Convergence

CRR converges to Black-Scholes at O(1/n). Convergence is wavy — the price oscillates around the true value as n increases. Better-convergent variants:

  • Jarrow-Rudd: drift-adjusted; smoother convergence.
  • Tian (1993): variance-matched; second-order accurate.
  • Trinomial trees: three branches per step; smoother and more flexible.
  • Leisen-Reimer: chosen so that the option terminates ITM or OTM at fixed binomial CDF points; very smooth.

Trinomial trees

Three branches per step: up, down, stay. The extra parameter allows targeting specific volatility curve features or grid-stretching toward the strike. Used for callable bonds, Bermudan swaptions, and path-dependent options where the binomial grid is too coarse.

When trees are the right tool

  • American / Bermudan options on a single underlying.
  • Path-dependent options with simple state-augmentation (e.g., lookback with running max).
  • Pedagogical illustrations of risk-neutral pricing.
  • Volatility surface fitting for vanilla options.
  • Bond-option pricing under short-rate models (with extra adjustments).

When trees fail

  • Multi-asset options: tree explodes exponentially (2^n in d dimensions).
  • Complex stochastic-vol models: number of state variables makes trees impractical.
  • Very long-maturity products: many time steps + exotic features.
  • Path-dependent options with continuous lookback / barrier — need very fine grids.

Implementation

python
def crr_american_put(S0, K, T, r, sigma, n=200):
import numpy as np
dt = T/n
u = np.exp(sigma*np.sqrt(dt))
d = 1/u
p = (np.exp(r*dt) - d) / (u - d)
# Terminal payoffs
S = S0 * u**np.arange(n,-1,-1) * d**np.arange(0,n+1)
V = np.maximum(K - S, 0)
# Backward induction
for k in range(n-1, -1, -1):
S = S[1:]*d # prices at step k
V = np.exp(-r*dt) * (p*V[:-1] + (1-p)*V[1:])
V = np.maximum(V, K - S) # early exercise
return V[0]

Exercise

American put: S(0) = 50, K = 50, r = 5%, σ = 30%, T = 1, n = 3 steps. (1) Compute u, d, p, Δt. (2) Build the stock tree. (3) Compute the option price by backward induction.

Loading progress…
LeadAfrikPublic Economics Hub