Finding a bond's yield
Suppose someone is offering $95.79 to purchase a bond you own with a $100 par value, 5% coupon rate, and 5 years to maturity. In this situation, you would like to know what the yield is of that bond, so you can compare the yield to the yield of other comparable securities to know whether the price being offered is too high or too low.
One way to find the yield is by trial-and-error. You first start with an initial guess, say 5% and find the price given a 5% yield. If the resulting price is too high, you know due to the inverse relationship between price and yield that your next guess has to be a higher yield.
Suppose your next guess is a yield of 7%. That will result in a price that is too low, which means that the yield is higher than 5% but lower than 7%. So, you now pick a yield of 6%, which will give you the correct answer.
In this exercise, you will calculate the price using a 5%, 6%, and 7% yield using your bondprc()
function, which is preloaded in the workspace. Remember that the goal is to reverse engineer bond characteristics valued at $95.79.
This exercise is part of the course
Bond Valuation and Analysis in R
Exercise instructions
- Use
bondprc()
to calculate the value of the bond using a 5% yield. Remember that the bond has a $100 par value, a 5% coupon rate, and 5 years to maturity. - Use another call to
bondprc()
to calculate the value of the bond using a 7% yield. - Use a final call to
bondprc()
to calculate the value of the bond using a 6% yield.
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
# Value bond using 5% yield
bondprc(p = ___, r = ___, ttm = ___, y = ___)
# Value bond using 7% yield
# Value bond using 6% yield