You are on page 1of 10

We extend the numerical procedures discussed in Chapter 8 and consider a generalized formulation of a stochastic interest rate in this chapter.

This is known as the Hull-White model of instantaneous short rate constructed under the no arbitrage assumption. A specific form of the model is referred to as the extended Vasicek model in which risk-neutral short rate as seen at time t is assumed to

follow a mean reverting stochastic process given by: ( ) ( ) ( ) ( ) (11.1) ( ) as seen at

A non-stochastic volatility structure for zero-coupon bond price time with maturity at T has been adopted, as: ( ) with two parameters current yield curve as: ( ) where ( ) ( ) , ( ) ( )( [
( )

(11.2)

and . The function ( ) in (11.1) can be related to the

(11.3)

( ) is the current interest rate with maturity term . In its simple form, the

risk-neutral short rate process can be constructed based on the current yield curve together with a two-factor parameterization of the bond price volatilities in (11.2). The Black-Scholes differential equation for derivative ( ) written on

short rate can be solved by iterating the explicit finite difference equation backward in time along a two-dimensional grid with sizes

Figure 11.1: A two-dimensional grid for the explicit finite difference equation. and ( as shown in Figure 11.1. We have denoted ) and ( and as the values of

) , respectively, at node (i,j) on the grid in the figure. It is

important to ensure the convergence of the estimated value to its true value as and coefficients { A sufficient condition for convergence of the iteration is that the } are all positive in this limit. This can be satisfied if both and | ( )| Thus, it is necessary for the drift ( ( ) to be

a bounded function, and the ratio as and . In (11.1), the drift

should remain finite and less than 1/ ) in the Hull- White model is not

bounded. It follows that the convergence of the explicit finite difference method cannot be ensured. It can be shown that the explicit finite difference method is equivalent to a trinomial tree approach that utilizes the risk-neutral pricing with movement of riskneutral short rate on the same grid. To overcome the convergence problem, we may consider a general formulation of a trinomial tree with branching process from node (i,j) to one of (i+1, k+1), (i+1,k), or (i+1,k-1) for some middle value of as shown in Figure 11.2. The branching probabilities { can be determined by } at node (i,j)

( ( ( )

) ( ) ) (

( )

) Type equation here (

(
)

Figure 11.2: A trinomial tree with generalized branching process on the grid. matching the first and second moments of given by (11.1). This gives:

(11.4)

Convergence requires the branching probabilities in (11.4) to be positive as and This can be satisfied if we impose the constraint such that 0.25 and fix k to be nearest integer to if is chosen within the range of ( ) to . This means that , it is always possible to

find a k such that the branching probabilities are all positive. An optimal choice of as suggested by Hull and White in endnote 3 is that follows that the chosen value of . It then ) is not will always be finite even though (

bounded in the model. The current value of derivative can be determined by iterating backward along the tree through risk-neutral pricing as:

(11.5)

The generalized trinomial tree can be considered a modification of the explicit finite difference method to ensure convergence of the iteration. The risk-neutral drift ( ) in (11.1) can be evaluated at each node on ( ) and ( )

trinomial tree given the current yield curve together with the parameters or and for the bond price volatilities. However, it is clear that the terms

in (11.3) cannot be calculated accurately under a finite set of zero rates. In a numerical approach, it is sufficient to construct a tree that is (11.3) can be calibrated every times step ( ) on the tree using zero rates. ( ) with

maturity terms that coincide with the tree structure. Accordingly, the risk-neutral drift at every tree node can be evaluated as:

( )

(11.6)

Define Q (i,j) as the current value of a security that pays $1 at node ( i,j) and zero elsewhere. The value of Q (i,j) for every tree node can be generated using the relationship given by: ( )
() ()

(11.7)

where L(i) and U(i) denote the labels of the bottom and top nodes, respectively, at time i. The term to node ( except when ( ) is the probability in going from node (i,j) it is clear that ( ) is zero for all + for which it becomes the three } in (11.4). A trinomial tree is said to be ) For any given equals one of the *

branching probabilities {

consistent with the current yield curve if the values of Q (i,j) satisfy the condition:

( )

() ()

(11.8)

At every time step, the function ( ) can be calibrated to the zero rates using the above condition to give: ( ) n(
() ()

( ( )

)(
(

)
) ( )

(11.9) ).

A trinomial tree for the short rate in (11.1) with time interval zero rates { ( ) ( ) ( ) ( ( ) )} where ( )

and horizon

can be constructed by calibrating with the current term structure of Equations (11.4), ( ) Suppose at ( ) for all from

(11.6), (11.7), and (11.9) can be used iteratively to construct the trinomial tree with initial conditions any time ( ) to ( ). 1. Determine ( ) from (11.9) using ( ) and then evaluate from and ( ) and that we have already determined ( )

(11.6) for all . 2. For all , determine the branching probabilities { with the values in the middle branch taken to be: ( where the function CINT( argument . 3. Use . 4. Except at to ( ). and horizon , we , update also ( ) from (11.7) for all from ( )
( ) and ()

} from (11.4)

) returns the nearest integer to the real ) and ( )

to update (

()

()

To generate a trinomial tree with time interval should repeat steps (1) to (4) for term structure of zero rates { ( ) from ( ) to (

. It would require the current )} according to (11.9).

A Hull-White trinomial tree can be easily be applied to price interest rate derivatives based on the risk-neutral pricing (11.5). Consider again a European call option with strike price K and maturity T written on a coupon-bearing bond that matures at later time The bond has a face value of coupons of value C under the time schedule { and pays regular } Similar to the

discussion in section 8.2, we need to construct a trinomial tree with a time horizon that covers the entire life of the underlying bond. The size of the time interval must be chosen very close to the shortest maturity term of the with discrete time steps. Again,

available bond prices while it could also reach

market term structures with maturities that coincide with such time increments can be constructed through cubic spline interpolation. In this case, the trinomial tree should be constructed up to the maturity of the underlying bond. The total time horizon is thus given by the option ( bond on with time steps. Suppose the The maturity payoff of

option matures at time step H on the tree for which T=H

) is evaluated according to the forward price of the underlying the tree node ( ) given by:

( ) }

( )

( )

(11.10)

The forward bond prices in (11.10) can be determined by iterating (11.5) for the underlying bond utilizing the branching probabilities and short rates on the trinomial tree. The iteration starts off from the bonds maturity at time step with face value as: ( )
( )

and works backward to the options maturity at time step H

. )

( ) () ()

( )

( )/ (11.11)

( The term (

) in (11.11) counts the total number of coupon payments ) . / The current price of the option

during the time interval (

can be determined by iterating (11.5) backward again for the option from time step H to 0 along the tree as:
( )

()

() (11.12)

where time label is running from H-1 to 0. 11.2 EXCEL PLUS VBA IMPLEMENTATION We first develop a routine called GenHullWhiteTree() that generates the HullWhite trinomial tree for the short rate in (11.1) given current term structures of bond prices and their volatilities. The pseudo code of GenHull-WhiteTree() is given by Code 11.1. It requires the input of tree configuration( zero-coupon bond prices parameters and ( ) with maturities { ), current } and the

for their volatilities. The routine returns the labels of the It also returns the branching probabilities { }

bottom and top nodes ( )and ( ) respectively, at every time step of the tree with runs from 0 to

and the corresponding values of 0 to rates and node label

at every tree node with time label runs from ( ) to ( ) For completeness, short

runs from

at every node are also returned with runs from 0 to ( ) to ( ) The time interval of the tree is defined to be ( ) ( ) The

and runs again from

, and the rate interval is optimally chosen as zero rates ( ) with maturities {

} are first calculated from the )

zero-coupon bond prices. The initial values of the arrays ( ( ) are defined at to

taking the zero rates and the volatility parameters as the arrays ( ( ) () ( ) ) should presumably be ( ) and the

calibration data. At time

determined up to the same time. Together with the zero rate {

volatility parameters, there is enough information to determine the arrays } at time following the procedures (1) and (2) in section (11.1). () ( ) ) are updated to time through (3)

Subsequently, the arrays ( ( )

and (4) before the iteration to proceeds to update for ( ( ) at

It should be noted that the last

is not necessary in the construction. In (11.7), the term equals one of the { } Thus,

) is nonzero only when

it can be implemented very easily using an If condition and identifying the corresponding branching probabilities at node (i,j). The VBA code of GenHullWhiteTree() is given by Code 11.2. It is kept under the module called HWtree and can be used to price the European call option written on a coupon-bearing bond. Similar to the implementation in the BDT tree, we develop a routine called GenHWBondOptionTree() capable of generating the option prices along the Hull-White trinomial tree. The pseudo code of GenHWBondOptionTree() is given by Code 11.3. The routine requires the same input of option parameters ( number of time steps { }) . It returns the

to option maturity together with the bottom and top-node as well as

labels ( ) and ( )in each step. It also returns the option prices the short rates runs from 0 to constructs maturities { the

at every tree node prior to the option maturity with time label and node label term structures } , where runs from of bond ( ) to ( ) . The routine first prices and volatilities with

, using the GenTermStructures() is taken to be the cloest to

routine in Code 8.5. The size of the time interval the shortest market term where

exactly matches the maturity of

the underlying bond . The trinomial tree should be constructed up to the maturity of the underlying bond. Thus, we define the tree configuration to be and . In the current implementation, the term structure of volatilities is not

required as it is parameterized by (11.2) in the model. Instead, the parameters and tree are directly imputed from the Excel worksheet. The corresponding trinomial of short rates can be constructed very easily by calling the

GenHullWhiteTree() routine. It is then straightforward to use (11.11) and generate the forward prices of the underlying bond for the entire trinomial tree. As discussed in (8.9) and Code 8.3, the external function in the iteration and updates the risk-neutral pricing. In particular, the forward bond prices ( ) can

be used to evaluate the option payoffs

at maturity and the option prices

at

every other tree node can be generated by iterating (11.2) backward in time. The VBA code of GenHWBondOptionTree() is given by Code 11.4. Figure 11.4 depicts the spreadsheet design for this VBA implementation. For the input of market bond data and option parameters, we have adopted the same design as in the implementation for the BDT tree in

Figure 11.4: Spreadsheet design of Hull-White option pricing Figure 8.2. The Hull-White parameters and for the volatility structure are

given by the named cells K10 (hwsigma) and K11 (hwa), respectively. They are estimated through least squares fitting of (11.2) to the volatility data in B7:L7. Given and , the sums of squared error in the fitting are calculated through an

external routine ErrSum2(). Their best fit values can be estimated using Solver by minimizing the squared-error sem under the non-negative constraints for the parameters. The market bond data are inputted into the GenTermStructurs()

routine through the named cell B4 (nbond) and the entries in rows 5, 6, and 7. The button labeled Hull-White Pricing will trigger the main VBA routine called HWPricing() woth the VBA code given by Code 11.5. The option parameters are inmputted into this routine through the named cells B12 (optionMaturity), B13 (strike), B14 (bondMaturity), B15 (par), B16 (coupon), B17 (ncoupon), and the entries in row 18. It will call GenHWBondOptionTree() for the arraysof option prices and short rates. The current option prices will be outputted to cell B20. By selecting Yes in cell E13,the entire option tree will be displayed in the spreadsheet. It should be noted that the row number for the zero offset of the trinomial tree can be fixed based on its largest top node label zeroptr. As a reference, the corresponding short rates will also be displayed in column B from B24 onwards.

You might also like