FRM Part I · FRM Exam Part I
Binomial Trees: formula sheet
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.