In the previous chapters we introduced many concepts related to stochastic analysis and in the previous sections we introduced how tree processes can be used to model financial derivatives. In the remainder of this chapter we will use those concepts to understand and implement the Hull-White interest rate model that is used to price bonds and derivatives. A number of methods can be used to perform this analysis. For example, the rating agency Moody's prefers a purely stochastic method by which the forward rate is explicitly determined by fitting the zero coupon yield curve with Nelson-Siegel parameters. For our purposes, however, we will expand on our previous discussion of the binomial tree method by using the trinomial tree strategy that was first proposed by John Hull and Alan White.
At first glance, you might be thinking, “Hey, sequentially constructing branches of a tree is not a simulation! Where is the randomness?” All this talk about random processes might have led you to believe that simulation is relevant only in a stochastic world. It is perfectly reasonable to associate simulation only with a method of getting information about an event that happens by chance. After all, if you can directly calculate an event, why would you need to simulate it? The answer to that question is rooted in the complexity of the problem. Sometimes a problem, even though it is solvable, is far too complex to actually solve! Let's take gravity as a physical example to underpin this concept. I am sure every reader understands gravity in one form or another. A simplified definition states that two massive bodies are attracted to each other with a force that is proportional to the product of their masses and the inverse square of their distance (equation 4.3):
Now don't be too concerned about what G is or get flashbacks to the force diagrams you had to suffer through while taking that introductory physics course in college. Just understand that this is a simple equation. If you have only two bodies to deal with, and one of them is so large it barely moves at all (the Earth), then you can precisely compute the exact motion of the second object, say a ball. Now imagine instead of dealing with the Earth and a ball, you have two balls or two earths. At this point you cannot assume one object will be stationary. As the first ball moves toward the second ball, the second ball will also move toward the first! At any given moment they are both moving, and how they move is completely interconnected. As you can see, the system has grown immensely complicated, and solving for their trajectories is not so simple any more. Now what happens if you add a third ball? At this point, the problem is so complex the only way to solve it is by simulations. In this case, unlike financial interest models, all actions are deterministic and not governed by chance. The simulation is performed by incrementally stepping through a small interval when during each interval the forces between the three balls are computed and each ball is then moved as a response to these forces within the given interval. The smaller the interval used in this simulation, the more accurately the balls can be tracked.
You will notice that this analogy is similar to the tree pricing method. Prices can be determined more accurately if the time step between the nodes of the tree becomes finer and finer (i.e., for any given maturity date, the price will be more accurate as you increase the number of nodes needed to get “there” from the present.) Furthermore, this loss in accuracy is a direct result of the fact that in reality we are dealing with a differential equation.
Earlier when we discussed possible stochastic models we mentioned there were a few drawbacks. To recap, an equation (equation 4.4) of this form
has a few notable deficiencies. The two most obvious ones are the facts that r, the interest rate, is unbounded and given enough time it can become infinite. The second one is that it is also possible for the rate to become negative. While the model itself is rather simple, the simplicity comes at the cost of possibly producing incorrect or inaccurate results.
The Vasicek Model fixes this issue by introducing a constant mean reversion term into the drift component of the stochastic equation represented in equation 4.4. This has the effect of keeping the rate fluctuating about a mean value instead of exploding into infinity (equation 4.5):
As you can see here, if r becomes greater than θ, then the drift term will become negative and draw the rate back down during the next cycle. John Hull and Alan White extended this model by solving for the case with a time dependent reversion term (equation 4.6).
We mentioned before in this book that we will not discuss in detail how these equations are solved. What is important here is understanding what a solution means and how to implement it.
If we have a discount bond that matures at time T, then the price of the bond at time t can be represented by equation 4.7:
If we model the rate in equation 4.7 by using the form given in equation 4.6, A(t,T) and B(t,T) can be solved analytically and are defined in equations 4.8 and 4.9:
Equations 4.8 and 4.9 look very scary, but their bark is worse than their bite. The only complication here is determining F(0,t), the instantaneous forward rate at time t when observed at time t = 0 and formally defined as (equation 4.10):
In practice the data set is usually composed of the yield curve observed from the bond market. Without an explicit functional form for the yield, it would be impossible to take the derivative in equation 4.10. We can, however, approximate derivatives as an incremental change of the variable, such as dt Δt. From equation 4.10 we can see that P(0,t) is the price of the bond paid per unit of the currency at origination and maturing at t. In essence, this is just the basic discount bond equation (equation 4.11),
Given that the natural log of equation 4.11 is [–rt], we can rewrite equation 4.10 as the shown in equation 4.12:
Now equation 4.10 has been reduced to something fairly simple. However, when using this formula, please be aware that r(t + Δt)(t + Δt) is the rate at time (t + Δt) multiplied by (t + Δt).
In the first Model Builder for this chapter, we will implement the basic Hull-White analytical solution to determine a bond price. This Model Builder is more of a stand-alone calculation exercise and is mainly done to help readers understand the complex calculations involved in implementing Hull-White. To assist with this Model Builder, there is a completed version (filename: MB4_Complete.xls) on the website.
A6: “Maturity (yrs)” A8: 3
B6: “Yield” A9: 4
A7: 2 A10: 9
B7: 5.79733% B9: 6.73464%
B8: 6.30595% B10: 7.39790%
A12: “a” B12: .1
A13: “sigma” B13: .01
A14: “r(t)” B14: .113206
A15: “T” B15: 9
A16: “t” B16: 3
=(B8)*(3*365)-(B7+364*B19)*(2*365+364)
Note that the hard-coded numbers could be pulled out and referenced in cells, but since this is a stand-alone example we are entering them directly in the formula. Further note that since we are evaluating at 3 years, we took r(t + Δt) to be 3 years (3*365) and r(t) to be 3 years minus one day.
=(1-EXP(-B12*(B15-B16)))/B13
=(B17/B18)*EXP(B21*B20-(B13*B21)*(B13*B21)*(1-EXP(-2*B12*B16))/(4*B12))
=B22*EXP(-B21*B14)