You are on page 1of 2

Lab 2 Bonds

Lian Heng

Zero-coupon bonds
The present value of a 20-year zero with a par value of 1000 and 6% interest
rate compounded annually, is given by
1000
= 311.8
1.0620
If the annual interest rate is 6% but compounded every 6 months, then the
present value is
1000
= 306.56
1.0340
If the annual interest rate is 6% but compounded continuously
1000
= 301.19
exp{0.06 × 20}
We will not consider continuous compounding below.

Coupon bonds
If a bond with a par value of PAR matures in T years and makes semiannual
coupon payments of C and the yield (rate of interest) is r per half-year, then
the value of the bond when it is issued is
2T
X C P AR C P AR
t
+ = {1 − (1 + r)−2T } +
t=1
(1 + r) (1 + r)2T r (1 + r)2T
C C
= + (P AR − )(1 + r)−2T
r r
1
From a slightly different view of the same formula, the yield to maturity
(on a semiannual basis) of a coupon bond is the value of r that solves
C C
P RICE = + (P AR − )(1 + r)−2T
r r

Task: use the formula above to compute yield


to maturity
In the R code, the function bondvalue() computes PRICE based on (C, T, r, P AR).
We will utilize this function to compute r given (P RICE, C, T, P AR).
Question 1: Use uniroot() to find the yield to maturity of the 30-year
par $1,000 bond with semiannual coupon payments of $40 that is selling at
$1,200.
Question 2 (to submit): Find the yield to maturity of a par $10,000
bond selling at $9,800 with semiannual coupon payments equal to $280 and
maturing in 8 years. Submit the code you write and the numerical
answer.

Computing yield from spot rate


The yield to maturity of a zero-coupon bond of n years is called the n-year
spot rate and is denoted by yn .
Think of the coupon bond with semiannual payments as being composed
of zero-coupon bonds with T = 1/2, 1, 3/2, . . .. The yield to maturity (half-
year rate) is the value y that solves
C C C P AR
+ 2
+ ··· + 2T
+
1 + y1 (1 + y2 ) (1 + y2T ) (1 + y2T )2T
C C C P AR
= + 2
+ ··· + 2T
+
1 + y (1 + y) (1 + y) (1 + y)2T
The data set mk.zero2 has yield curves of U.S. zero coupon bonds recorded
monthly at 55 maturities. These maturities are in the data set mk.maturity.
The R code plots the yield curves on four consecutive months.
Conceptually, based on these data one can compute yield to maturity for
coupon bond, although we will not do it here. I will only show a data set
that contains spot rates for illustration.

You might also like