Price/Yield Relationship Bond Valuation & Analysis Inverse - - PowerPoint PPT Presentation

price yield relationship
SMART_READER_LITE
LIVE PREVIEW

Price/Yield Relationship Bond Valuation & Analysis Inverse - - PowerPoint PPT Presentation

BOND VALUATION AND ANALYSIS Price/Yield Relationship Bond Valuation & Analysis Inverse Relationship Bond Valuation & Analysis Credit Ratings S&P Fitch Moody's Investment AAA AAA Aaa Grade AA AA Aa A A A BBB BBB Baa


slide-1
SLIDE 1

BOND VALUATION AND ANALYSIS

Price/Yield Relationship

slide-2
SLIDE 2

Bond Valuation & Analysis

Inverse Relationship

slide-3
SLIDE 3

Bond Valuation & Analysis

Credit Ratings

S&P Fitch Moody's Investment AAA AAA Aaa Grade AA AA Aa A A A BBB BBB Baa High Yield BB BB Ba B B B CCC - Lower CCC - Lower Caa - Lower

slide-4
SLIDE 4

Bond Valuation & Analysis

Determining a Bond’s Yield

  • Use yields of bonds with same credit rating
  • If we want to value a Baa-rated bond, we

can get the data from Quandl package

> library(Quandl) > baa <- Quandl("MOODY/DBAAYLD") > head(baa) DATE VALUE 1 2016-10-07 4.36 2 2016-10-06 4.36 3 2016-10-05 4.36 4 2016-10-04 4.35 5 2016-10-03 4.29 6 2016-09-30 4.29

slide-5
SLIDE 5

BOND VALUATION AND ANALYSIS

Let’s practice!

slide-6
SLIDE 6

BOND VALUATION AND ANALYSIS

Components of Yield

slide-7
SLIDE 7

Bond Valuation & Analysis

Baseline Component of Yield

  • Risk-free yield (baseline rate)
  • Yield on recently issued US Treasury with

similar maturity

  • Risk-free yield is not constant
  • Affected by economy, market interest rates,

and inflation

slide-8
SLIDE 8

Bond Valuation & Analysis

Obtaining Treasury Data

  • Use quantmod package
  • Obtain 10-Year Treasuries (“DGS10”) 


from FRED

> library(quantmod) > t10yr <- getSymbols("DGS10", src = "FRED", auto.assign = FALSE) > head(t10yr) DGS10 1962-01-02 4.06 1962-01-03 4.03 1962-01-04 3.99 1962-01-05 4.02 1962-01-08 4.03 1962-01-09 4.05

Identifies source of data

slide-9
SLIDE 9

Bond Valuation & Analysis

Spread Component of Yield

  • Spread
  • Primarily the credit spread = risk that issuer

will default

  • May contain premiums for other risks
slide-10
SLIDE 10

Bond Valuation & Analysis

Risks of Investing in Bonds

  • Credit Risk: Risk of default by issuer
  • Inflation Risk: Risk that inflation eats up value of

cash flows received from bond

  • Call Risk: Risk that issuer will buyback the bond

at a time that is disadvantageous to the investor

  • Liquidity Risk: Risk that you cannot sell the bond

for a price that is at or near its value

slide-11
SLIDE 11

Bond Valuation & Analysis

Time-Varying Risk Premiums

  • Depends on market’s current appetite for risk
  • Nervous markets larger risk premium
  • One measure is Investment Grade spread (i.e.,

difference in Baa and Aaa yields)

  • We can obtain Moody’s Aaa and Baa Index yields

from the Quandl package

slide-12
SLIDE 12

BOND VALUATION AND ANALYSIS

Let’s practice!

slide-13
SLIDE 13

BOND VALUATION AND ANALYSIS

Estimating the Yield

  • f a Bond
slide-14
SLIDE 14

Bond Valuation & Analysis

Finding the Yield By Trial-and-Error

  • For traded bonds, we can imply the yield
  • If you know the price and the bond’s cash flows, 


you can make “guesses” as to what the yield is

  • The “correct” yield equates the price of the 


bond with the PV of the bond’s cash flows

slide-15
SLIDE 15

Bond Valuation & Analysis

Iterating Through Different Guesses

  • Consider bond with $100 par value, 5% coupon rate,

10 years to maturity, and a price of $92.64

  • 1st Guess: 5% Price is $100 (too high)
  • 2nd Guess: 7% Price is $85.95 (too low)
  • 3rd Guess: 6% Price is $92.64 (correct)
slide-16
SLIDE 16

Bond Valuation & Analysis

Automating the Process

  • Trial-and-error is inefficient
  • Fortunately, we can use the uniroot()

function in R to help us automate the process

slide-17
SLIDE 17

Bond Valuation & Analysis

Create Function Using uniroot()

  • Create the ytm() function using uniroot()
  • Function takes a modified cash flow vector (cf)

and uses a modified bond valuation function (bval)

  • c(0,1) limits the interval for the search to a yield

between 0% and 100%

> ytm <- function(cf) { uniroot(bval, c(0, 1), cf = cf)$root }

slide-18
SLIDE 18

Bond Valuation & Analysis

Modified Cash Flow Vector

  • First element is bond’s price entered as a negative

number

> cf <- c(-92.64, 5, 5, 5, 5, 5, 5, 5, 5, 5, 105)

  • Second element onwards are the bond’s cash

flows - coupons plus par value

  • Same bond: Price is -$92.64, par value is $100, 


5% coupon rate, and 10 years to maturity

slide-19
SLIDE 19

Bond Valuation & Analysis

Modified Bond Valuation Function

  • Need to create bond valuation function bval()

that uses the modified cash flow vector (cf)

> bval <- function(i, cf, t = seq(along = cf)) sum(cf / (1 + i)^t)

  • Same logic as our bondprc() function
  • Create time indicator (t)
  • Discount cash flow using interest rate (i)
slide-20
SLIDE 20

BOND VALUATION AND ANALYSIS

Let’s practice!