To apply the theoretical models, let us first see how to use interest rate trees to price and calibrate. As mentioned in Review 5, markovian property of short rate models is needed to implement recombining lattice.

Usually, a short rate model can be written as

\(r(t)=F(u(t)+\varphi(t))\)

\(du(t)=-au(t)dt+\sigma dW(t).\)

Hence, we first discretize the process \(u(t)\). Typically, people use binomial tree and trinomial tree but for mean reverting model, binomial tree cannot be used. The time step \(\Delta t\) is arbitrary, the state step \(\Delta u\) and branch probabilities \(p_u\), \(p_m\) and \(p_d\) should be chosen in such a way that the discrete dynamics has the first few moments matched. Since we could solve

\(u(t+\Delta t)=e^{-a\Delta t}u(t)+\sigma\int^{t+\Delta t}_te^{-a\Delta t}dW(s)\)

then by moment-matching, we can set

\(\Delta u=\sqrt{3V}\), \(V=\sigma^2\frac{1-\exp(-2a\Delta t)}{2a}\)

and we select the middle branching node at next step to be the closest one to the mean of the continuous process:

\(k=\int[je^{-a\Delta t}+\frac{1}{2}\)

Branching probabilities are determined as

\(p_u=\frac{1}{6}+\frac{1}{2}(\beta^2+\beta)\)

\(p_m=\frac{2}{3}-\beta^2\)

\(p_d=\frac{1}{6}+\frac{1}{2}(\beta^2-\beta)\)

\(beta=je^{-a\Delta t}-k\)

Once tree for the stochastic driver \(u(t)\) is built, we need to convert it to the short rate tree according to the functions:

normal: \(r(i,j)=r_0(i)+u(i,j)\)

lognormal: \(r(i,j)=r_0(i)\cdot\exp(u(i,j))\)

where mean level vector \(r_0(i)\) is calibrated to the term structure of zero coupon bond prices.

Since trees represent discretization of the rate dynamics, then within each time step the evolution of short rate is not described by tree and thus needs to be specified. Usually we assume short rate is constant within each period. To price derivatives, we do backwards

\(S(t)=E^B_t[\exp(-\int_t^{t+\Delta t}r(s)ds)(S(t+\Delta t)+CF(t+\Delta t))]\)

where \(CF(t+\Delta t)\) is the cash flow at time \(t+\Delta t\). And now the remaining problem is how to calibrate to get mean level vector \(r_0(i)\). Denote prices of zero coupon bonds with maturities \(t_i=i\Delta t\) by \(P(i)\), then apply the following iterative search process forward:

(1) Set \(r_0(0)=-\ln(P(1))/\Delta t\)

(2) Search for the value of \(r_0(1)\) such that lattice price of the zero coupon bond maturing at \(t_2\) equals \(P(2)\)

(3) ...

(4) Assuming \(r_0(0),\ldots,r_0(i-1)\) are done, search for the value of \(r_0(i)\) to fit \(P(i+1)\)

(5) ...

We need to keep in mind that we always need to do numerical calibration for \(r_0(i)\) even when there are analytic formulas for the no-arbitrage drift because the use of trees alters the continuous dynamics. To be more specific about step (2) and step (4), we introduce Arrow-Debreu Security which pays 1$ once the node (i,j) is reached and pays nothing otherwise. Thus in trees we have

\(AD(i+1,j)=\sum_k AD(i,k)\exp(-r(i,k)\Delta t)P_{i,k\rightarrow i+1,j}\)

One very useful property of Arrow-Debreu prices is that

\(P(0,t_i)=\sum_j AD(i,j)\)

Recombining interest rate trees have a serious shortcoming that the rate history is totally lost and thus it is incompatible with any path dependent instrument. To overcome this problem, one can use the tower law and record the cash flows at the lattice nodes not when they are paid but rather when they are certain and express them with appropriate discounting.