Binomial Interest Rate Tree at 10% Interest Rate Volatility

Here’s the bionomial interest rate tree (exhibit 11 of reading 45)

at year 0, it has a rate of 2.5

at year 1, it has a rate of Ru = 3.8695 and Rd = 3.1681

at year 2, it has a rate of Ruu - 5.5258, Rud / Rdu = 4.5242 and Rdd = 3.7041

it says that Ru = Rd x e^(2s.d. * sqrt of t where t = time)

What I don’t understand is that at year 2 this relationship doesn’t seem to hold -

the gap between the middle rate that is 4.5242 (Rud/Rdu) and the corresponding higher rate 5.5258 (Ru) is not e^(2*0.1*sqrt of 2).

same goes for Rud/Rdu to Rdd.

if anyone care to explain?

thanks!

You missed a couple of words; I added them above.

The time in year 2 is not 2; it’s _ 1 _: one year periods between nodes.

Saviour! Thanks very much May I ask one more question? (i know many threads say we are not required to know the calculation of how these interest rates are derived) but just out of curiousity How is the rate Rud/Rdu getting calculated as 4.5242? From exhibit 1 the forward rate is given as 4.564 I would reckon it’ll go through several iteration by a software to arrive at 4.5242. But how? Thanks in advance

It’s done by pricing par bonds at each maturity.

You price a 1-year risk-free par bond, and adjust Rd until the price comes out at par. This could be done analytically (solving a quadratic equation), but is most often done using numerical methods, such as Goal Seek or Solver in Excel.

Then, you price a 2-year risk-free par bond, and adjust Rdd until the price comes out at par (leaving Rd fixed). This could be done analytically (solving a cubic equation), but is most often done using numerical methods.

Then, you price a 3-year risk-free par bond, and adjust Rddd until the price comes out at par (leaving Rd and Rdd fixed). This could be done analytically (solving a quartic equation), but is most often done using numerical methods.

Then, you price a 4-year risk-free par bond, and adjust Rdddd until the price comes out at par (leaving Rd, Rdd, and Rddd fixed). This cannot be done analytically (general 5th order (quintic) and higher polynomial equations do not have analytical solutions); it must be done using numerical methods.

And so on.

Understood thank you S2000magician

My pleasure.

Hi S2000magician - riding on the first post, how did they get Ru = 3.8695 and Rd = 3.1681 in the first place?

Thanks in advance!

Unfortunately, the original data are lost to posterity.

However, I can run you through another example to show you how it’s done. I’ll use annual pay bonds to make it easier to follow.

Suppose that the 1-year par rate is 2% and the 2-year par rate is 3%. As a binomial interest rate tree uses 1-period forward rates at each node, let’s compute the 1-year and 2-year spot rates, then the forward rates.

The 1-year spot rate – s1 – is easy: 2%.

To get the 2-year spot rate – s2 – we note that a 2-year bond paying a 3% coupon sells at par, so:

1,000 = 30 / 1.02 + 1,030 / (1 + s2)2

1,000 = 29.4118 + 1,030 / (1 + s2)2

970.5882 = 1,030 / (1 + s2)2

(1 + s2)2 = 1,030 / 970.5882 = 1.061212

1 + s2 = √1.061212 = 1.030152

s2 = 0.030152 = 3.0152%

The 1-year forward rate starting today – 1f0 – is easy: 2%.

To get the 1-year forward rate starting one year from today – 1f1 – we equate discount rates for 2 years:

(1 + s2)2 = (1 + 1f0)(1 + 1f1)

1.0301522 = 1.02(1 + 1f1)

1 + 1f1 = 1.0301522 / 1.02 = 1.061212 / 1.02 = 1.040404

1f1 = 0.040404 = 4.0404%

Now, to the tree. Let’s assume 10% volatility, so

rU = (e10%)2rD =e0.2rD ≈ 1.2214_r_D

The tree has to price the 2-year par bond correctly:

1,000 = 0.5[30 / 1.02 + 1,030 / (1.02)(1 + rU)] + 0.5[30 / 1.02 + 1,030 / (1.02)(1 + rD)]

2,000 = 30 / 1.02 + 1,030 / (1.02)(1 + rU) + 30 / 1.02 + 1,030 / (1.02)(1 + rD)

2,040 = 30 + 1,030 / (1 + rU) + 30 + 1,030 / (1 + rD)

1,980 = 1,030 / (1 + rU) + 1,030 / (1 + rD)

1,980(1 + rU)(1 + rD) = 1,030(1 + rD) + 1,030(1 + rU) = 2,060 + 1,030_r_D +1,030_r_U

1,980(1 + rD + rU + rDrU) = 2,060 + 1,030_r_D +1,030_r_U

1,980 + 1,980_r_D +1,980_r_U + 1,980 rDrU = 2,060 + 1,030_r_D +1,030_r_U

1,980 rDrU + 950_r_D + 950_r_U – 80 = 0

1,980_r_D(1.2214_r_D) + 950_r_D + 950(1.2214_r_D) – 80 = 0

2,418.3775_r_D2 + 2,110.3326_r_D – 80 = 0

We can solve this using the quadratic formula. I’ll spare you the details and go right to the solution(s):

rD = 3.6391%

rD = –90.9014%

The second one’s silly, so we’ll go with the first. That gives:

rU =1.2214 × 3.6391% = 4.4448%

Having done all of this, I’ll note that in practice nobody solves a quadratic equation to get these numbers. They use some numerical process (such as Excel’s Solver) to find the solutions.

Ahhhh that totally makes sense now… thank you sooooo much!!!

If you compare rD and rU to the (static) 1-year forward rate starting one year from today – 1f1 – we get:

1f1 / rD = 4.0404% / 3.6391% = 1.1103

ln(1.1103) = 0.1046 = 10.46% ≈ 10%

rU / 1f1 = 4.4448% / 4.0404% = 1.1001

ln(1.1001) = 9.54% ≈ 10%

So the results look reasonable.

Noted. Thanks again!