Skip to content

FRM Part I · FRM Exam Part I

Binomial Trees: formula sheet

Full chapter guide

Key formulas

Delta of the replicating portfolio
Δ = (fu − fd) ÷ (S0·u − S0·d)
Shares held per option. Negative for a put, meaning a short stock position.
Option value by replication
f = Δ·S0 − B
B is the amount borrowed today. If B is negative, you are lending.
Borrowing amount
B = (Δ·S0·u − fu) ÷ (1 + r) for discrete rates, or Δ·S0·u − fu discounted by e^(−rT)
Set so the portfolio payoff equals the option payoff in the up state; check with the down state.
Risk-neutral up probability (continuous compounding)
p = (e^(rT) − d) ÷ (u − d)
With a dividend yield q, use e^((r−q)T). Needs d < e^(rT) < u.
Risk-neutral value
f = e^(−rT) × [p·fu + (1 − p)·fd]
Use 1 ÷ (1 + r) instead if the rate is given as a simple one-period rate.
Payoffs at expiry
Call: max(S − K, 0). Put: max(K − S, 0)
Compute both states before anything else.
Risk-neutral up probability (no dividends)
p = (e^(rΔt) − d) ÷ (u − d)
r is the continuously compounded risk-free rate. Δt is the step length in years. Down probability is 1 − p.
Risk-neutral up probability (continuous yield q)
p = (e^((r − q)Δt) − d) ÷ (u − d)
Use for an index or currency. For a currency, q is the foreign risk-free rate. For a futures price, q = r, so p = (1 − d) ÷ (u − d).
One-step option value
f = e^(−rΔt) × [p × f_u + (1 − p) × f_d]
f_u and f_d are the option values after an up-move and a down-move.
Stock-price condition for the stock itself
S₀ = e^(−rΔt) × [p × S₀u + (1 − p) × S₀d]
This is how p is derived. Use it to check your p.
CRR factors
u = e^(σ√Δt), d = 1 ÷ u
Cox-Ross-Rubinstein matching of volatility σ.
Annual compounding version
p = ((1 + r) − d) ÷ (u − d)
Use only if the question gives r with annual compounding and Δt = 1 year.
Risk-neutral probability (per step)
p = (e^(rΔt) − d) ÷ (u − d)
Use p = ((1 + r) − d) ÷ (u − d) if the question gives a simple per-period rate. Δt is the length of one step in years.
Cox-Ross-Rubinstein moves
u = e^(σ√Δt), d = 1 ÷ u
Use these when the question gives volatility σ instead of u and d. This choice makes the tree recombine.
Backward induction at a node
f = e^(−rΔt) × [p × f_up + (1 − p) × f_down]
Use the same p and the same discount factor at every node.
Terminal stock prices
S(j ups, n − j downs) = S0 × u^j × d^(n−j)
Order of moves does not matter in a recombining tree.
Two-step European value in one formula
f = e^(−2rΔt) × [p² × f_uu + 2p(1 − p) × f_ud + (1 − p)² × f_dd]
The factor 2 on the middle term counts the two paths that reach the middle node.
Payoffs at expiry
Call = max(S − K, 0); Put = max(K − S, 0)
Compute these at every final node before stepping back.
Risk-neutral probability of an up move
p = (e^(rΔt) − d) ÷ (u − d)
For a non-dividend stock. With a per-period simple rate use (1 + r) in place of e^(rΔt). With a continuous yield q, use e^((r − q)Δt).
Continuation value at a node
f_cont = e^(−rΔt) × [p × f_up + (1 − p) × f_down]
f_up and f_down are the option values at the next two nodes. For American options these are the already-maximised values.
American node value
f = max(intrinsic value, f_cont)
Apply at every node before expiry. At expiry the value is just the payoff.
Intrinsic values
Call: max(S − K, 0). Put: max(K − S, 0)
Use the stock price at that node.
Early exercise premium
American value − European value ≥ 0
Build both trees if asked for the premium. The premium is zero for an American call on a non-dividend stock when rates are not negative.
Ordering of values
American option ≥ European option ≥ 0
Use this as a quick check on your answer.
CRR up factor
u = e^(σ√Δt)
σ is annualized volatility. Δt is the step length in years, for example 1/12 for a month or 0.25 for a quarter.
CRR down factor
d = 1/u = e^(−σ√Δt)
This makes the tree recombine, because u × d = 1.
Risk-neutral probability (no dividends)
p = (e^(rΔt) − d) ÷ (u − d)
r is the continuously compounded risk-free rate. The down probability is 1 − p.
Probability with yield q or foreign rate
p = (e^((r − q)Δt) − d) ÷ (u − d)
Use q for the dividend yield on an index, or the foreign rate rf for a currency. For a futures option, the growth term is 1, so p = (1 − d) ÷ (u − d).
No-arbitrage condition
d < e^(rΔt) < u
If this fails, p falls outside 0 to 1. It can happen when Δt is large and σ is small.
Jarrow-Rudd factors
u = e^((r − q − σ²/2)Δt + σ√Δt); d = e^((r − q − σ²/2)Δt − σ√Δt); p = 0.5
Equal probabilities, with the drift placed in the factors. Here u × d is not 1 in general.
Up and down factors (CRR)
u = e^(σ√Δt); d = 1 ÷ u
Same for stocks, indices, currencies and futures. σ is the volatility of the underlying.
Risk-neutral probability
p = (a − d) ÷ (u − d)
Probability of an up move. The down probability is 1 − p.
Growth factor: index with dividend yield
a = e^((r − q)Δt)
q is the continuously compounded dividend yield. r is the domestic risk-free rate.
Growth factor: currency
a = e^((r − r_f)Δt)
Price is domestic currency per unit of foreign currency. r_f is the foreign risk-free rate.
Growth factor: futures
a = 1, so p = (1 − d) ÷ (u − d)
The futures price has zero expected growth under the risk-neutral measure.
Node value
f = e^(−rΔt) × [p × f_u + (1 − p) × f_d]
Discount at the domestic rate r in every case.
Sanity check on p
d < a < u, so 0 < p < 1
If p falls outside 0 to 1, a was computed wrongly or the step is too large.
Tree delta (one step)
Δ = (f_u − f_d) ÷ (S_u − S_d)
Shares held per option. Use the two nodes that follow the node you are at.
Up and down factors (CRR)
u = e^(σ√Δt); d = 1 ÷ u
Δt is the step length in years. Matches the volatility σ.
Risk-neutral probability
p = (e^(rΔt) − d) ÷ (u − d)
With a continuous yield q, use e^((r − q)Δt) in the numerator.
Option value at a node
f = e^(−rΔt) × [p × f_u + (1 − p) × f_d]
Work backwards from maturity. For American options, compare with the exercise value at each node.
Replicating portfolio
f = Δ × S − B, where B is cash borrowed
Borrowing equals the PV of Δ × S_d − f_d.
Black-Scholes call delta
Δ_call = N(d1); Δ_put = N(d1) − 1
The tree delta converges to this as steps increase (no dividends).

Quick revision

  • u = e^(σ√Δt) and d = 1/u in the Cox-Ross-Rubinstein setup.
  • Risk-neutral p = (e^(rΔt) − d) ÷ (u − d) for a non-dividend stock.
  • Option value = e^(−rΔt) × [p fu + (1 − p) fd], discounted one step at a time.
  • One-step delta = (fu − fd) ÷ (S0u − S0d), the shares held in the hedge.
  • For an index or currency, replace e^(rΔt) with e^((r − q)Δt) in p.
  • For a futures option, p = (1 − d) ÷ (u − d), since the futures price has no cost of carry.
  • No-arbitrage requires d < e^(rΔt) < u.
  • American options: value at each node = max(intrinsic value, continuation value).
  • An American call on a non-dividend stock is not exercised early, so it equals the European call.
  • Build the stock tree first, then the payoffs, then work backward.
  • More steps make the tree price converge to the Black-Scholes-Merton value for European options.
  • Real-world probabilities of up and down moves do not enter the price.

Common mistakes

  • Using the real-world probability of an up move to price the option. Fix: Price with the risk-neutral p computed from r, u and d. Real-world probabilities do not affect the price.
  • Discounting the expected payoff at the wrong rate or forgetting to discount. Fix: Always finish with the factor e^(−rT), or 1 ÷ (1 + r) for a simple rate.
  • Using the real-world probability to price the option. Fix: Price with p from the formula. Real-world probabilities are ignored for pricing a derivative on a traded asset.
  • Forgetting to discount, or discounting at the stock's expected return. Fix: Always discount at the risk-free rate. Use e^(−rΔt) per step.
  • Using a real-world probability of an up move instead of p. Fix: Always use the risk-neutral p = (e^(rΔt) − d) ÷ (u − d). The real-world probability is not needed to price the option.
  • Discounting with the annual rate instead of the per-step rate. Fix: Compute the factor e^(−rΔt) or 1 ÷ (1 + r per period) once and use it at every step.
  • Carrying the European values back instead of the American values Fix: After computing f_cont at every node, write down max(intrinsic, f_cont) before moving to the next column.
  • Applying the exercise test at expiry or ignoring it at the first step Fix: At expiry the value is the payoff. Test at every node before expiry. Also compare at the root to see if exercising today beats holding.
  • Using σΔt instead of σ√Δt in the exponent. Fix: Volatility scales with the square root of time. Always take √Δt first.
  • Using a monthly Δt of 1 or 12 with an annual σ. Fix: Write Δt in years first, such as 1/12 for monthly steps, then apply the formula.

Exam tips

  • Compute the two option payoffs first. Many questions are solved in a few lines once fu and fd are on paper.
  • Use the risk-neutral shortcut when only the price is asked. Use replication when the question asks for delta, shares held or amount borrowed.
  • Check that 0 < p < 1. If it is not, you have made an arithmetic error or the tree allows arbitrage.
  • Watch the rate convention. 'Continuously compounded' means use e^(rT). A plain 'annual rate' with one period often means 1 + r.
  • Wrong answer options often come from using real-world probabilities or skipping the discount. Sanity-check that a call price is below S0 and above the discounted intrinsic value.
  • Questions often give a real-world probability as a distractor. Ignore it for pricing.
  • Always check whether the question gives r as continuous. If it does, use e^(rΔt), not 1 + r.
  • On a calculator, store p and 1 − p in memory so you can reuse them across nodes.