- 227 Views
- Uploaded on
- Presentation posted in: General

Models of Yield Curve and Yield Curve Dynamics

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Models of Yield Curve andYield Curve Dynamics

- We are going to focus on just on a few of the models:
- Random walk model of interest rates
- Mean – reverting interest rates
- The Cox – Ingersoll – Ross Model
- The BDT Model

- It is tempting – and commonly done – to extrapolate the binomial stock price model to bond prices. This can create some problems, because it ignores certain aspects of bond prices, namely:
- Bonds are not infinite lived
- Bonds must converge to par (100) at their maturity
- Bonds can go to 0

u2 P

uP

ud P

P

dP

d2 P

- If we work with a typical Cox, Ross, Rubinstein model:
Where u = e σ ((T-t)/N)1/2 = e σ (dt)1/2 = 1/d

and the up – jump probability is: q = 0.5 + 0.5 u/σ (dt)1/2

This results in bond price has a distribution dP/P= u dt + d2

which means that bond prices are lognormally distributed, even at maturity.

- As a result, the CRR type of model is not widely used

u2 r (t)

ur (t)

R (t)

rd r (t)

dr (t)

d2 r (t)

- Another approach, of course, would be to simply model the underlying interest rate as a binomial model. This, in fact, is one of the basic techniques used in term structure modeling today.

1

bu (1,2)

b (0,2)

1

bd (1,2)

1

- Let q be the probability of an up jump and (1-q) the probability of a down jump
- In reality you would like for the probability to adjust depending on the level of rates, but for starters we will ignore that possibility.

- Consider how a two discount bond will evolve:

- We now invoke the notion of the local expectations Hypothesis.
- This says, essentially, that the expected return over one period on any (default free) bond should be the same as the one-period rate prevailing at that time.
- Under LEH, therefore, at time t=1, this must hold:
- 1 / bu (1,2) = 1 + ur (t) and 1 / bd (1,2) = 1 + dr (t)
- Recall that ur(t) and dr(t) are rates, not products necessarily

q.1 + (1-q) 1

q.1 + (1-q) 1

1

1

bu (1,2) =

bd (1,2) =

=

=

1 + ur (t)

1 + ur (t)

1 + ur (t)

1 + ur (t)

- We can rearrange these to get a pricing method:
- We can now work backwards to get a price at time 0

=

(1 + r(t))

b (0,2)

q . bu (1,2) + (1-q) bd (1,2)

B (0,2) =

1 + r(t)

- We begin with the LEH condition:
- This is really nothing more than a variant of how we have been pricing options all along
- This whole business of the LEH is really just to justify the following: if you are at a node in lattice where the rate is r, then all bonds should be discounted at that rate

q . bu (1,2) + (1-q) bd (1,2)

or

19.531

15.625

12.50

12.5

10.00

10.00

8.00

8.00

6.40

5.12

- The initial one-period rate is 10%, the up factor (u) is 1.25 and d=0.80. We define the probability of an up (or down) move as 0.50. Based on this, rates evolve as:

1

12.50%

0

10%

1

8%

- Given this structure we can really start to calculate some interesting values
- What is a one-period zero-coupon bond worth?
- To answer this we can examine just the first two levels of the lattice. The bond pays $1 with certainty at the end of the period

Now the first thing to notice is that the only relevant rate is the one at the central node, since it is the correct discount rate for the time period 0-1.

In essence r 1,1=12.5 and r 1,0 = 8.0 become effective at the start of period 1, while the $1 cash flows at paid at the end of period 0.

$1

12%

10 %

8%

$1

- Within the lattice we tend to draw the end of 0 and the beginning of 1 as occurring at the same point, but they are actually different. In fact, some people draw these as:

0.5($1) + 0.5($1)

1 + r 0,0

$1(0.5) + $1(0.5)

1,2

=

b 1,1

=

1,2

1.12

b

12%

0,2

1,1

$1(0.5) + $1(0.5)

1,2

=

b

b 1,0

=

0,0

1,2

b

8%

1,0

- So to get the 1 period bond price you do the following:
- We can easily extend this to a two period example

$1/1.10

b (0,1) =

=

=

0.9091

$ 1

0.8889

$ 1

0.9259

1.08

1(0.88) + 1(0.92)

0,2

=

b 0,0

=

0.8249

1.10

$ 1

$1

0.889

12%

0,2

b

0.8249

$1

0,0

0.9259

8%

$1

- So the overall lattice looks like:
- Frankly the superscript is frequently suppressed – people assume you know which bond you are using.
- Notice that we now know the price of a zero coupon bond for periods 1 and 2, i.e 90.91 and 82.49.

0,1

1

1

Price0 =

=

0.9091 =

b 0,0

(1+y1)

(1+y1)

0,2

1

=

0.8249 =

b 0,0

(1/0.8249)1/2 – 1 = y2

(1+y2)2

Y2 = 10.10%

- From this we can determine the yields for one and two period zero coupon bonds:

1/0.9091 – 1 = y1

y1 = 10%

1

0.8889

0.8249

1

0.9259

1

- We can now show the evolution of the two period bond prices
- We can now apply the same basic methodology to a three period bond

1

0.8649

15.625%

0.7884

1

12%

0.7475

0.9091

10%

10%

1

0.8560

8%

0.9398

6.4%

1

$1(0.5) + $1 (0.5)

$1(0.5) + $1 (0.5)

$1(0.5) + $1 (0.5)

2,3

2,3

2,3

=

=

=

=

=

=

0.9091

0.9398

0.8649

1,3

0,3

2,3

0.5(0.7884) + 0.5(0.8560)

0.5(0.9091) + 0.5(0.9398)

0.5(0.8649) + 0.5(0.9091)

b 2,0

b 2,2

b 2,1

b 1,1

b 1,0

b 0,0

=

=

=

=

=

=

0.7884

0.7475

0.8560

1.156

1.064

1.10

1.12

1.08

1.10

Notice a few things here. First, we can solve for the three period yield :

Y3 = (1/0.7475)1/3 – 1 = 10.1888%

Y1 =10%

Y2 = 10.10%

Y3 = 10.188%

Thus we now know the three period zero coupon yield curve :

0.7884

0.8249

0.8560

- We can also talk about the evolution of the two-period zero coupon yield over time. We know that at time 0 the two period zero coupon bond was worth 0.8249, and has a yield of 10.10%.
- Based on our results we know that a two year bond at node (1,0) is worth 0.8560 and a two year bond at node (1,1) is worth 0.7884.
- From this we got the evolution of two year, constant maturity bond prices

12.622

10.10

0.080844

t = 0

t = 1

- Now the two-year zero coupon rate at node 1,0 is given by:
y (2)1,0 = (1/0.8560)1/2 – 1 = 0.80844

- And at 1,1:
y (2)1,1 = (1/0.8560)1/2 – 1 = 0.80844

- So the two year constant maturity zero coupon yield evolves as:

y12 = 0.125

y22=0.12662

y1 = 0.10

y2=0.1010

y1 = 0.080

y2 =0.080844

- Thus you can see that the two year constant-maturity rate evolves, just as the one period rate evolves
- The yield curve is, therefore, evolving over time, but the only factor driving this yield curve is the evolution at the one period interest rate.

Notice that the yield curve is not moving in parallel, however. It is steeper at node 1,1 than at 0,0 and it is flatter at 1,0 then at 0,0

- If we extend our model out more periods we can observe the evolution if more distant points on the yield curve – for example we could see how the three year constant maturity rate evolved.
- In fact, if we wanted to we could describe the evolution of the entire yield curve as being driven by this single factor.
- Note that you have to pay attention to some issues here. You can discuss (as the book largely does) how a single bond evolves its price through time. For example you could see how a 4 period zero coupon starts at a given price and then in period 1 has a new price (or set of prices) and then get another set of prices in times 2 & 3.

- But you are observing a 4 year bond in time 0, a 3 year bond in time 1, etc. You also want to pay attention to how the four year (or 3 year, etc) rate varies from period to period and from node to node. To do that you have to look at different bonds through time.
- I can also extract implied forward rates and see how they evolve over time, based on how the yield curve evolves – which again is based on the evolution of the one period “spot” rate (i.e. one period yield).
- To see this, let’s return to our lattice describing how the yield curve evolves over the first two periods:

y1=15.625%

y12 = 0.125

y22=0.12662

y1 = 0.10

y2=0.1010

y1=10%

y1 = 0.080

y2 =0.080844

y1=6.4%

- Recall that the forward rate is the rate to which you can contract today to borrow in a future period. So at any point the one period forward rate is given by:
- f(1,2) = ((1+y2)2 / (1+y)) – 1

- So at node 0,0: f(1,2)0,0 = ((1.1010)2 / (1.10)) – 1=10.2%
- Note that this is not the expected spot rate in one period

12.824

10.20

8.1688

- At node 1,0 that forward rate is given by:
- f(2,3)1,0 = ((1.080844)2 / (1.08)) – 1=8.1688

- And at node 1,1 it is given by:
- f(2,3)1,1 = ((1.12662)2 / (1.125)) – 1=12.824

- So we get an evolution of the one period forward curve as

So the one period spot rate evolution drives not only the yield curve evolution, but also the evolution of the forward rate. In fact the forward rate and spot rates roles are sometimes reversed. In the HJM model it is the forward rate which is allowed to evolve and the spot rate evolution is implied by that evolution.

- Now there are a couple of points we can make here about using this lattice structure. It is very good for pricing options, interest rates and other contingent claims, and you discount everything at the one period rate.
- Let’s look at a couple of examples

1

0.8649

15.625%

1

12.5%

10%

0.9091

10%

1

8.0 %

0.9398

6.4%

1

- Let’s say that you hold a call option which gives you the right, at the beginning of period 3 (so the option expires at the end of period 2) to purchase a one period bond at price 90. What is this option worth today?
- Let’s begin by recalling what our evolution of rates and prices looks like:

- So at nodes (2,0), (2,1), and (2,2) we get one period zero coupon bond prices of 0.9398, 0.9091 and 0.8649 respectively. Since our strike is 0.90, our payoffs to the option are given by:
- C2,0 = max (0, 0.9398 – 0.90) = 0.0398
- C2,1 = max (0, 0.9091 – 0.90) = 0.0091
- C2,2 = max (0, 0.8649 – 0.90) = 0

- We can now move backwards through the lattice to determine the price of the option

C 2,2=0

C 1,1 =0.0040

0.125

C 0,0

0.10

C 2,1 =0.0091

C 1,0 =0.0226

0.08

C 2,0 =0.0398

0.5(0.02263) + 0.5 (0.004)

0.5(0.0091) + 0.5 (0)

0.5(0.0091) + 0.5 (0.0398)

=

=

=

=

=

=

0.0121

0.2263

0.0040

C 0,0

C 1,1

C 1,0

1.125

1.10

1.08

Or 1.212 on a $100 bond

- Let’s say that you are a bank. Your average depositor puts money into 2 year CDs.
- So you have significant exposure to the two year zero coupon bond rate (realize that in any year ½ of your depositors roll into new CDs at the rate for that year).
- Since you wish to manage your exposure you elect to use an interest rate cap on the two year zero coupon bond rate.
- Let’s say that we have $100 million in total deposits, so you hedge $100 million notional. Your payoff is equal to two years interest on the notional amount.

y1=15.625%

y2=15.7706%

y12 = 0.125

y22=0.12662

y1 = 0.10

y2=0.1010

y1=10%

y2=10.10%

y1 = 0.080

y2 =0.080844

y1=6.4%

y2=6.471%

- Recall that today the two year zero coupon bond rate is 10.10%, and let’s assume that this is the strike rate. The payoff to the cap would be:
- Cap t = [ $100 . Max (0, zero 2,t – cap-rate)]

- Recall earlier that we noted that the yield curve was evolving according to:

0.5(0.8366) + 0.5 (0.8888)

0.5(0.9259) + 0.5 (0.95129)

0.5(0.8888) + 0.5 (0.9259)

=

=

=

=

=

=

0.74611

0.82486

0.88213

P(2) 2,1

P(2) 2,2

P(2) 2,0

1.10

1.15625

1.064

- I have extended this another period using the rates found on page 601.
- P(1)3,3 = 1/1.19531 = 0.8366
- P(1)3,2 = 1/1.125 = 0.8888
- P(1)2,1 = 1/1.108 = 0.9259
- P(1)2,0 = 1/1.10512 = 0.95129

y(2)2,2=((1/0.7461)1/2) -1=15.7706%

y(2)2,1=((1/0.82486)1/2) -1=10.10%

y(2)2,0=((1/0.88213)1/2) -1=6.471%

Cf2,2=5.67=V 2,2

y1=0.15625

y2=0.157706

V1,1=5.08

Cf=2.56

y1=0.125

y2=0.12662

V0,0=2.039m

Cf0,0=0

y1=0.10

y2=0.1010

Cf2,1=0=V 2,1

y1=0.100

y2=0.1010

V1,0=0

Cf1,0=0

y1=0.08

y2=0.08084

Cf2,0=0=V 2,0

y1=0.064

y2=0.06471

- So I can now convert this into cash flows. Recall that the cap pays off annually based on the $100 million notional. I am simplifying by assuming the cap pays immediately. It normally would not.

0.5(5.08) + 0.5 (0)

0.5(CF 2,2) + 0.5 (CF 2,1)

0.5(5.67) + 0.5 (0)

0.5(CF 1,1) + 0.5 (CF ,1,0)

=

=

+

+

CF 1,1

CF 0,0

V 0,0

V 1,1

=

=

+ 0 = 2.309m

+ 2.56 = 5.08m

1.125

1.10

1 + y1

1 + y1

- CF 2,2 = 100 . Max(0,y2 – cap-rate)
= 100 . Max(0, 0.157706-0.1010) = 100m X 0.0567

= 5.67 million

- CF 2,1 = 0
- CF 2,0 = 0
- CF 1,1 = 100 . Max(0, 0.12662-0.1010) = 2.562 m
- CF 0, 0 = 0

110

Call = 10

F = 10

100

90.91

Call = 0

F = -9.09

- Let’s say that the initial futures price is 100, and it can raise or fall by 10%, farther, the risk fee rate is 5%, and the strike is 100.
- Assume we construct a portfolio consisting of :
- 1 short call
- futures contracts

110

-10 + 0.5238(10) = -4.762

100

90.91

0 - 0.5238(9.09) = -4.762

- And we select such that the portfolio has the same value in all states of the world at time 4:
- - 10 + 10 = -9.09
19.09 = 10

= 10/19.09 = 5.238

- - 10 + 10 = -9.09
- Thus the portfolio value is:

Thus the portfolio will be worth –4.762/1.05 = -4.534 today

The time 0 futures contract is worth 0, so the portfolio value is given by: -4.534 = 0 –(1)4.534

So the call value is 4.534

- We can generalize this :
- = (Cu – Cd) / (Hu – Hd) = Cu – Cd / (u- d) H

- The value at the end of the time period, the is always:
- (Hu – H) - Cu Since this is by construction the top part if the lattice / you could do this with the bottom as well)

- Which has present value:
- [(Hu – H) - Cu] e –rT

- And we know that the value of the futures contract today must be zero, so the portfolio value at time 0 only comes from the time 0 option value:
- - c = [(Hu – H) - Cu] e –rT

or

c = e –rT

1-d

1- d

[

Cu +

( 1-

) Cd ]

u - d

u – d

c = e –rT

[ P Cu + (1-P) Cd] Where P = (1-d)/(u-d)

- Substituting for and simplifying will result in:
- Note: It may be optimal to exercise an American call on a bond futures contract early, although it generally is not optimal to do so on a call on the bond itself
- To see this let’s consider the following:

p(ult – k) + (1-p)(dh – k)

C = max [ H – k,

]

1 + r

(1-d)/(u-d)(uk – k) + (1- (1-d)/(u-d) )(dh – k)

C = max [ H – k,

]

1 + r

- Assume that the call will be in the money regardless of the final state, i.e. both Cu and Cd > 0. So Cu = Hu – k and Cd = Hd – k.
- Consider the time 0 price for the option:
- Substitute (1-d)/(u-d) for p:

C = max [ H – k, (h – k)/(1+r)], so early exercise is indeed optimal

- Now, so far, we have ignored the question of how we develop the interest rate lattice.
- Clearly we want to build it in a way that is consistent with basic interest rate processes that we have observed over time.
- Before we can begin with a specific lattice model, therefore, we want to fully understand what we want in an interest rate model.
- We want the interest rate model to be stochastic.
- We want the model to exhibit mean-reversion.
- Why? Because in reality rate exhibit this property!

- Sundaresan presents a simple model that incorporates mean reversion.
- This model is not really that great for pricing assets, but it is good for illustrating a few properties of mean reversion.
- The model works as follows.
- The one-period interest rate is assumed to be bound by an upper limit of 2μand a lower limit of 0.
- Over one step in the binomial lattice, rates can rise of fall by an amount δ, which is selected based on the time-step of the lattice.
- The probability of an up-jump from a given node in the lattice (t,j), is given by:
- This generates a model that looks like this:

Upper limit: r=2μ

Lower limit: r=0

- Notice that for any node (t,j), the rate can be represented as:
rt,j = r0,0+j*δ-(t-j)δ

- Thus, r1,1 = r0,0 + (1) δ-(1-1) δ = r00+ δ
- Similarly, r3,2 = r0,0+(2) δ-(3-2) δ = r0,0+2 δ-1 δ = r0,0+ δ
- And r3,0=r0,0 + (0) δ – (3-0) δ = r0,0-3 δ

- Example:
- Assume r0,0=10%, δ=1%, and μ=12%. What would the lattice and the transition probabilities look like?

Upper limit: r=2μ=2(12%)=24%

Lower limit: r=0

- Notice that as the lattice grows toward 2μ or 0, that the probabilities force you to move back to the center of the lattice.
- At the two boundaries, you get the following probabilities of up and down jumps:
- If r=2μ, then q=0, so (1-q)=1, meaning that a “down” jump is guaranteed.
- If r=0, then q=1, and (1-q)=0, meaning that an “up” jump is guaranteed.

- At the two boundaries, you get the following probabilities of up and down jumps:
- You can then price bonds, options, swaps, etc. backwards through the lattice as we did earlier in the model.

- Now, one has to be a little bit careful when talking about term structure models as to what is being meant.
- Sometimes people refer to a specific incarnation of a lattice as being the “model”. What they mean is both the underlying distribution of interest rates and the numerical method (the lattice) that insures they price bonds using that distribution.
- In other contexts people are referring only to the underlying distribution of rates.
- This is really the more general way of thinking of the term structure model, since there may be more than one numerical procedure that can determine prices under that distribution.

- We are going to first examine a model known as the Vasicek model and one of its variants known as the Cox, Ingersoll, and Ross (CIR) model.

- Theorists really like the Vasicek and CIR models because they are General Equilibrium models.
- This means that they are consistent within an entire economy that is defined by just a few parameters.
- They are also well-liked because you can get closed-formed solutions for zero coupon bonds.
- The difficulty with these models is that they are notoriously difficult to calibrate.
- This means that the input parameters they require are very difficult to estimate econometrically to within the level of accuracy needed for pricing real-world assets.

- There are many numerical models that people use that are consistent with Vasicek and CIR, but we will primarily focus on their use within Monte Carlo.

- The Vasicek class of models assume that only one fact, the one-period interest rate (r), determines the entire term structure. The process that r follow is:
(note this differs from Sundaresan) where:

- r = the spot rate
- γ = a speed of adjustment factor
- μ = the long-run mean of the interest rate process
- σ = the volatility of the short-run rate
- dz = a white noise process.

- The model admits closed form solutions for a zero coupon bond:

- The model does not, however, admit closed form solutions for a lot of other assets, including path-dependent assets.
- As a result, many times people either have to break down more complex assets – such as coupon-bearing bonds – into constituent zero coupon bonds, or they use Monte Carlo to model the evolution of the interest rate through time.
- Let’s price some assets both ways to see how this process works.
- One issue you do have to be careful with is the you have to make your time-step “small enough” so that you don’t inadvertently draw negative rates.

- Let’s begin with pricing two bonds, one a zero coupon bond and one a coupon-bearing bond.
- The zero coupon bond matures in 5 years, and the coupon bearing bond matures in 5 years as well. Assume that the coupon bearing bond pays 12% but with semi-annual payments.
- The parameters for the model are:
- r = .10
- γ = .10
- μ = .12
- σ = 0.02

- So we have an “upward sloping” term structure.
- Let’s price the zero coupon bond first.

- The model admits closed form solutions for a zero coupon bond:

- From the five year zero coupon bond price we can also determine the five year yield:
- A nice feature of the Vasicek model is that you can use it to determine the entire yield curve at a point in time. For example, using the parameters in this example, the yield curve is given by:

- But what about the 12% coupon-bearing bond?
- We price it as a collection of zeros. That is:
- Or, in this case: $105.50.
- Notice that this is a Bond-Equivalent Yield of 10.556%, which is equivalent to a continously-compounded yield of 10.2869%.
- Recall that the 5 year zero coupon yield was 10.03096%

- So this is fine if you want to analyze a bond at a specific point in time t.
- What if you want to model the evolution of the rate r over time.
- First, realize that this is equivalent to modeling the entire yield curve over time!

- There are many ways people do this: some lattice methods, more frequently finite difference methods, and, of course, Monte Carlo. We will focus on Monte Carlo.
- Our goal is to develop a model that we can evaluate a bond, option, etc., over time, and to do this we can directly model the evolution of r:
- To do this, we just have to use standard Monte Carlo methods.

- What if you want to model the evolution of the rate r over time.

- A Monte Carlo model works by simulating the random process to generate potential interest rate paths, prices the mortgage (or other asset) under each of those paths, and then treats the average price found for all of the paths as the “true” price of the mortgage.
- This is a valid procedure (assuming that you have correctly modeled the interest rate process) because of the statistical laws known as the Central Limit Theorem and the Law of Large Numbers.
- Basically these laws state that if you draw from a random distribution (in this case from the simulated interest rates and the resultant mortgage prices), then you can be certain that the average of your “sample” population will approach the true average at a rate that is proportional to the square root of the number of simulations you are using.

- What this means is that as you increase the number of interest rate paths the average price that you get will become a better and better approximation of the real price.
- Operationally, a Monte-Carlo process is relatively easy to implement.
- Let N denote the number of interest rate “paths” that you are going to use, and let Pave be the average price you calculate from the simulation.
- The following flow chart demonstrates the general process:

Set N to number of Iterations

Simulate the ith interest rate path

Add the Credit Spread to each rate along the interest rate path

Determine the asset cash flowsgiven the ith rate path

Increment i

Discount the cash flows to determine Pi

Update Pave= Pave+ Pi/N

No

i=N?

Yes

Report Pave as “price” of asset

- In reality what Monte Carlo returns is an estimate of the real price of the asset, and the Central Limit Theorem basically tells you the rate at which that estimate will become well behaved in a statistical sense.
- Since we are working with a estimate, we would like a measure of how good the estimate is. One such measure is the estimated standard deviation, of the distribution.

- Really, however, the sample standard deviation is only an estimate of the standard deviation for the population. What we want is a measure of how much deviation there is in our estimate of the mean. For this we want to use the standard error. (If you are having trouble recalling the differences between a standard error and a standard deviation check out the online statistics text hyperstat (http://davidmlane.com/hyperstat/) it has a very nice review of this stuff)

- Once we have Standard Errors, we can construct confidence intervals. What they do is tell us the upper and lower bounds within which the real price of the asset will fall (1-p) times, where p is the level of confidence we want. That is if p=1%, the upper and lower confidence interval will tell us the range in which the real price of the asset will fall into 99% of the time.
- The confidence interval narrows as the number of iterations increases.

- The Vasicek model assumes that the one-period interest rate evolves according to:
- Let’s assume that once again we have the same base parameters as before:
- r=0.10, μ=0.12, γ=0.10, σ=0.02

- The key, of course is to be able to simulate the randomness from a standard normal (i.e. from dz). This is relatively easy to do using a computer. It’s a three step process:
- Draw a value from the uniform distribution over the range 0-1, inclusive.
- Assume this draw represents the value of the cumulative density function (i.e. area under the curve to the left) at our point x.
- Invert the cumulative density function to determine the point x, treat x as our “draw” from dz!

- Let’s assume that once again we have the same base parameters as before:

- Let’s say we did this:
- Let x be the draw from the cumulative uniform, and say that value came out to be .20, so x=0.20.
- First, assume that our “draw” will correspond to that value that has 20% of the area to the left in the cumulative density function.

- Let’s say we did this:
- We can now use the inverse of the normal density to determine what number has exactly 20% of the area of a standard normal to its left. We can use the Excel function =norminv(x,mean,stdev) to do this.
=norminv(0.20,0,1)

- The value is -0.8416, and we assume that dz is (for this “draw”),
-0.8416

- We can now use the inverse of the normal density to determine what number has exactly 20% of the area of a standard normal to its left. We can use the Excel function =norminv(x,mean,stdev) to do this.
- So what does this mean for our simulation? Well, since we know r0, we can use it to determine r1:
dr = .10(.12-.10)(1)+.02(-0.8416)

that is, dr = 0.001667-0.016832 = -0.016665

- r1=r0+dr = 0.10 – 0.01665 = 0.083333
- Of course we have to scale by the time step if dt is not 1.

- So what does a simulation look like?

- Remember, however, that in the Vasicek model, rt determines the entire yield curve for time t.
- This means that as t evolves over time, the yield curve evolves over time.
- Thus, when we observe a line chart like the one we just created, we are really only looking at half of the story.
- We also want to get a sense for how the yield curve itself is evolving over time.
- This will be easiest to do by examining a surface area plot.

- It may be easier to see the evolution of the yield curve by examining the curve at specific points in time.
- Let’s look at the curve at times 0, 12 months, 2 years, 5 years, and 10 years:

- So we have demonstrated how to generate the interest rates needed for the Vasicek model, but how would we use it to price a specific asset?
- Well, it is relatively straightforward. Once we have laid out the evolution of the spot rate, rt using the model, we then determine the cash flows given each specific interest rate path and discount them back along that path.
- We then take the average price over all N interest rate paths, and that is value of our asset.

- As an illustration, let’s begin with a really simple, the value of a 5 year zero coupon bond.
- Now, we know that the Vasicek has a closed-form solution for the value of a zero coupon bond, but we are going to use Monte Carlo anyway, just to illustrate the process. We will then move on toward a swap to see how a more complex instrument would be valued.
- Using the same parameters as before (r=0.10, μ=0.12, γ=0.10, σ=0.02), the value of a five year zero is 59.72, and is yielding 10.3096%.
- So, let’s examine how we would price it under Monte Carlo.

- We first have to decide how many iterations to use.
- Why? Because we are relying on the Central Limit Theorem and the Law of Large numbers to give us the correct solution, “on average.”
- Although each individual iteration is unbiased, they are draws from a sample distribution, and will only converge to the actual distribution over several trials.
- Let’s go through a couple of cycles to illustrate this point.
- Recall the basic process:

Set N to number of Iterations

Simulate the ith interest rate path

Add the Credit Spread to each rate along the interest rate path

Determine the asset cash flowsgiven the ith rate path

Increment i

Discount the cash flows to determine Pi

Update Pave= Pave+ Pi/N

No

i=N?

Yes

Report Pave as “price” of asset

- For the current sample, let us set N=2 (we will quickly up this.)
- First, we begin with r0 and create r1 through r59 using the formula:
- The chart on the following page illustrates this sample path.

- Obviously the cash flows are straightforward in this case since they do not depend upon r.
- CF0=0, CF1=0, CF2=0,…,CF58=0, CF59=100
- Notice that I am using base 0 notation.

- We can then discount the cash flows back, on a monthly basis to get a time zero value:

- First, we begin with r0 and create r1 through r59 using the formula:

- In this case that turns out to generate a value of 54.5396.

- We again start with r0 (which is always the same!), and then generate 60 new interest rates using:
- This is illustrated in the figure on the next page.
- We then apply the same basic valuation formula:
- Which in this case yields a value of: 77.83.
- So our average value is (54.54+77.83)/2 = $66.18. Which is pretty far afield from our true value of 59.72.

- Obviously we want to increase the number of iterations that we use to value this asset.
- How close to the correct value we get is a function of how many iterations we use.

- First, we should probably be struck by how inefficient Monte Carlo is. This is why generally we prefer to have closed-form solutions. Monte Carlo is nice because it will work for most types of assets.
- One issue to pay attention to is the way in which the confidence interval evolves.

- Keep in mind, of course, that the zero coupon bond is just about the easiest thing we could ever want to price.
- Let’s price something more difficult, a type of swap.
- Let’s assume that you have a 5 year swap with annual payments. The swap payments are made at the end of the year. This means that there will be cash flows occurring at the end of months 11, 23, 35, 47, and 59, with the swap payments determined by the rate environments at times 0, 11, 23, 35, and 47.
- Assume that the swap is the 1 year risk-free rate on the floating side and 10% on the fixed side. Assume you are paying fixed.
- Note that we still discount based on r following
but have to determine the 1 year zero coupon rate for the payments.

- Keep in mind, of course, that the zero coupon bond is just about the easiest thing we could ever want to price.
- Let’s price something more difficult, a swap.
- Let’s assume that you have a 5 year swap with annual payments. The swap payments are made at the end of the year. This means that there will be cash flows occurring at the end of months 11, 23, 35, 47, and 59, with the swap payments determined by the rate environments at times 0, 11, 23, 35, and 47.
- Assume that the swap is the 1 year risk-free rate on the floating side and 10% on the fixed side. Assume you are paying fixed.
- Note that we still discount based on r following
but have to determine the 1 year zero coupon rate for the payments.

- We will solve for the one-year zero coupon yields using the closed form solution that the Vasicek model generates.
- Let’s go through a sample iteration to see what this looks like.
- Using the same sample path that we used earlier (next screen), the value of r and the one-year yield at times 0, 11, 23, 35 and 47 months are:

- Assuming a million dollar notional amount, and that you are paying fixed, your cash flows will be:We can then discount the bonds back using the closed-form value of a zero coupon bond. We wind up with a value of $53,576 for the swap.

- Of course, that is just for one path. We again have to replicate this many times to get a real value for the swap.
- I should point out that there are closed-form solutions for swaps. What is more important here is seeing how the Monte Carlo works as opposed to the actual pricing of the swap.

- If we price the swap using Monte Carlo, however, we can once again generate prices and confidence intervals, as the next page demonstrates.

- The following chart demonstrates what happens as we increase the number of iterations.

- Again, we can examine the confidence interval and what happens to it as we increase the number of iterations.

- It is also interesting to see what happens to a histogram of the swap prices as you increase the iterations.
- Watch how we “build” the distribution.

- Cox, Ingersoll, and Ross proposed a term structure model that is very similar to Vasicek’s model, but with one very important difference: they scale the stochastic component of the short rate process to be proportional to the square root of the interest rate process.
- The process they specify, therefore is:
- The effect of including the square root of r is relatively straightforward to see: as r approaches zero, the mean-reverting portion of the process becomes much more important.

- We can see the effects of this easily enough with a few examples.
- First, let us set r0=.10, γ=.10, θ=.10, and σ=.02, and then set up an example where dz is forced to be -1 for 20 straight times.
- Second, let us use the same parameters as above, but with randomly drawn dz values, and with comparisons of the Vasicek and CIR models.
- Third, it is frequently the case that when comparing Vasicek and CIR, that researchers will set the variance of the CIR model such that at time 0 the following relationship holds:In the example above, this means that σCIR would be set to 0.6324.

- Like Vasicek, the CIR model does admit closed for solutions for bonds, but with some modifications to the formulas for A and B.

- Both Vasicek and CIR work as full-equilibrium models, which means that all yield curve dynamics, including the time 0 yield curve, are endogenous to the model.
- Researchers have not had a lot of success in selecting parameters of these models such that they will correctly price time 0 bonds.
- A second approach to term structure modeling has been to develop so-called partial equilibrium models.
- These are models that take the time 0 term structure as an input and then build a self-consistent model given that term structure.
- Examples include the models of Ho and Lee, Hull and White, Black and Karasinski, and Black, Derman and Toy.

- General idea:
- The general idea behind a partial equilibrium model is this: you have an asset, x, which you wish to price – or just wish to model as evolving through time.
- You want to insure that the pricing model you are using is “correct” given today’s market.
- To insure this, you take a basket of other instruments that are in the market and you search for the parameters of the model that will cause the model to generate the correct prices for those other instruments. Denote the other instruments as y.
- You can then price the asset x with the same lattice and feel reasonably confident that you are getting prices that are consistent with y.

- Now, keep in mind several things:
- First, we may not be as interested in the price of x as we are in its future evolution, for example, we may want to use the model to calculate hedge parameters such as delta.
- Second, the basket of other instruments that we have to use may vary from model to model and potentially from instrument to instrument.
- Frequently firms will maintain separate Treasure and LIBOR based models.

- Third, you will normally need at least two assets at each time step – one to determine the “level” of rates at that time step, and one to determine the volatility (dispersion) or rates at that time step. Typically you will use zero coupon bond prices for the first asset, and something (such as caps) that is sensitive to volatility as the second.

- The Black, Derman, and Toy model (BDT), we first proposed in 1990. It was the first of these models to gain widespread acceptance in the industry.
- The model is somewhat dated now, but is still the standard starting point for students interested in learning about these types of models.
- Its also nice to use because it is a binomial model.
- In this binomial model, we are modeling the evolution of the spot (one-period) interest rate, rt,j.
- The probability of an up or a down jump (p and 1-p) are defined to be 50%.

- The Black, Derman, and Toy model (BDT), we first proposed in 1990. It was the first of these models to gain widespread acceptance in the industry.
- Let’s begin with a discussion of how to construct the lattice, and then we will work through an example of pricing an asset.
- Unlike the binomial models that we have built before, there is not a simple construction method. You have to build the lattice via a search algorithm.
- We begin with market data on yields and volatilities:

- We can convert the yields to prices…
- So, working with a 1 year time step, we know that the initial one year rate must be 10%, since 90.91 = 100/1.1
- Thus, we say that r0,0=.10.
- So we can start to set up our binomial lattice:

- So our next step is to figure out r1,1 and r1,0.
- We need to select value for r1,0 and r1,1 that will get P2=81.16 and σ2=19%.
- As show by equation (17.4) in Sundaresan, the volatility is defined as:

r1,1=

r0,0=.10

r1,0=

- We know from the table, that σ2=0.19, so this means that
- So as soon as we determine r1,0, we can calculate r1,1. So in one sense this now becomes a guessing game. We literally begin we a guessed value for r1,0. To see how this would work, let’s say we start with an initial r1,0 guess of 9%. This would make r1,1 13.16%:

- We then plug this back into the lattice we have already created and then calculate bond prices.

- Well, clearly 81.86 is more than the 81.16 that we expect to find.
- If we want to decrease the price, we have to increase r, so we raise it to a new level, say to 9.792%.

- Now, at this point we need to think very carefully about what we mean by volatility.
- There are really two potential ways we can define volatility:
- The spread in the spot rate along a given time step,
- The spread in the yields over one period.

- It turns out that what we really want to focus on in this context is the yield volatility.
- The yield volatility of an N period bond is defined to be half of the natural log of the ratio of the yields of the bond at node (1,0) and (1,1).
- For the bond in the previous time step, that was easy to find since r1,1 and r1,0 are the yields for the bond at time 1.
- In our table, we see that the yield volatility of a bond that matures at time 2 is 18%.

- There are really two potential ways we can define volatility:

- This means that we have to build a three-step lattice:

- We know that the price of a bond maturing at the end of period 2 will be 71.17.
- We also know that the yield volatility should be 18%.
- Denote the yield of a bond at node t,j that matures at the end of period I as yt,j(i).
- The one-period yield volatility of that bond is given by:
- In contrast, the short-rate volatility at time step 2 would be denoted as σ2r and is given by

- Since we know that the yield volatility is 18%, we also know that:
- So we have to once again search for the values of r2,0, r2,1, and r2,2 that will generate the correct P2 and σ2 values.
- The book demonstrates that the values are 9.76%, 13.7669%, and 19.4187%, respectively.
- The next slide demonstrates the calculations…

- So we get the right price, but what about the yield volatility?
- First, we want to calculate the yields on the zero coupon bonds that mature at the end of step 2 at nodes 1,0 and 1,1.
- We can then calculate the yield volatility…

- So we have verified that this is the yield volatility, but what about the short-rate volatility?
- Well, we can calculate it in two ways, using either r2,0 and r2,1, or using r2,1 and r2,2.
- Just to be clear, let’s denote the period 2 rate volatility as σ2r.
- This raises an interesting point about the BDT lattice: by construction, at any time step t, the difference between the log of any two adjacent nodes is equal to two times the rate volatility for that time step. That is,

- Indeed, a lot of people find it easier to specify the evolution of the rate volatility instead of the yield volatility when working with the BDT model.
- Once you specify one, however, you have really specified the other.
- The BDT model does not really allow you to control simultaneously the yield and rate volatility.
- If you specify a flat rate volatility (say constant at 10%), then this will eventually force the yield volatility toward zero.
- What process does the spot rate follow in the BDT model?
- Its is a log-normal process specified as follows:

- In this specification, θ(t) is a time-varying long-run average yield, σ(t) is the time-varying spot rate volatility, and σ’(t) is the derivative of that volatility, and dz has it normal meaning.
- In practice you almost never see it written out like this, instead, you solve for the parameters implicitly by solving for the prices and either yield or spot rate volatility.

- By relaxing the specification of a(t), they allow you to specify both a yield and spot rate volatility.

- Of course in reality we do not simply guess at the values of rt,j that will cause the model to generate the appropriate yields and yield/spot rate volatilities.
- What you normally do is to solve for those rates using a two-dimensional Newton’s method. That is you simultaneously solve for the price and the volatility.