Charta is on Google Play: practise on the go. Get the app
Charta

Use a binomial tree to arrive at the discounted expected value for a zero-coupon bond.

FRM® Part II · Market Risk Measurement and Management · Arbitrage Pricing with Term Structure Models · FRM2.MR.12.a

The idea

A binomial tree prices a zero-coupon bond by backward induction. List the possible six-month rates at each date and put the face value at maturity. At every earlier node, compute the value, written Value. Value = [p × Vup + (1 − p) × Vdown] ÷ (1 + r/2). Here r is the semiannually compounded six-month rate at that node, Vup and Vdown are the next-date values, and p is the probability given by the model. The root value is the bond price. Two points matter. First, the discounting at each node uses that node's own rate, not today's rate and not an average rate, because the expected value of a discount factor is not the discount factor at the expected rate. Second, a rate quoted as an annual figure must be halved for a six-month step. The usual error is to discount the whole path with one rate.

Formulas

Value at a node of a six-month binomial rate tree

V = [p × Vup + (1 − p) × Vdown] ÷ (1 + r ÷ 2)

p
the risk-neutral probability of the up move
Vup
the value at the next date's up node
Vdown
the value at the next date's down node
r
the node's own six-month rate, annualised and compounded semiannually

Start from the face value at maturity and work back to the root. Use each node's own rate, halved for the six-month step, never one rate for the whole path.

A practice question

From the question bank, with the reason each wrong option is wrong.

The current six-month rate is 4.00%. In six months it will be either 6.00% or 2.00%, each with risk-neutral probability 0.5 (all rates are annualized and compounded semiannually). The price of a one-year zero-coupon bond with face value 100 is closest to:

  1. 98.05Why not: Stops at the six-month node: forgets to discount the expected value back one more period at today's 4.00% rate.
  2. 96.13 - correct
  3. 94.28Why not: Mixes conventions: halves the node rates but divides by 1.04 at the root instead of 1.02.
  4. 92.49Why not: Uses annual compounding (divides by 1 + r, not 1 + r/2) at every node; the rates are semiannually compounded.

Node values: 100/1.03 = 97.09 and 100/1.01 = 99.01; average 98.05; discount at 4%/2: 98.05/1.02 = 96.13.

A harder one

A six-month rate tree has a current rate of 5.00%. After six months the rate is 6.00% or 4.00%; after one year it is 7.00%, 5.00% or 3.00% (the 5.00% node is reached by an up-down or a down-up path). Every branch has probability 0.5 and rates are semiannually compounded. The price of a 1.5-year zero-coupon bond with face value 100 is closest to:

  1. 95.18Why not: Stops one period early: this is the one-year zero price, which discounts only two steps instead of three.
  2. 91.52Why not: Discounts along the single up-up path only (5%, 6%, 7%) instead of weighting all paths.
  3. 92.87 - correct
  4. 86.42Why not: Uses annual compounding (1 + r instead of 1 + r/2) at every node.

Values at the one-year nodes: 96.62, 97.56, 98.52. At six months: up node (96.62+97.56)/2/1.03 = 94.26, down node (97.56+98.52)/2/1.02 = 96.12. Root: (94.26+96.12)/2/1.025 = 92.87.

The hardest tier

A tree of six-month rates starts at 6.00%. After six months the rate is 8.00% (up) or 5.00% (down); after one year it is 9.50% (up-up), 7.00% (up-down or down-up) or 4.50% (down-down). At every node the risk-neutral probability of an up move (a rate increase) is 0.35. Rates are semiannually compounded. The price of a 1.5-year zero-coupon bond with face value 100 is closest to:

  1. 91.40 - correct
  2. 90.34Why not: Applies the probability 0.35 to the down move and 0.65 to the up move, reversing the weights.
  3. 90.87Why not: Ignores the stated probabilities and uses 0.5 on every branch.
  4. 83.77Why not: Uses annual compounding (1 + r) at every node instead of 1 + r/2.

One-year node prices: 100/1.0475 = 95.47, 100/1.035 = 96.62, 100/1.0225 = 97.80. Six-month nodes: up 0.35x95.47+0.65x96.62 = 96.22, /1.04 = 92.52; down 0.35x96.62+0.65x97.80 = 97.39, /1.025 = 95.01. Root: (0.35x92.52+0.65x95.01)/1.03 = 91.40.

In the app: 6 practice questions on this outcome, spaced review that brings it back before you forget it.

Start free →

More in Arbitrage Pricing with Term Structure Models