Dollar duration & bond price prediction

Bond Valuation and Analysis in Python

Joshua Mayhew

Options Trader

Dollar duration

  • Duration = % change in bond price for 1% change in yields

  • Dollar duration = $ change in bond price for 1% change in yields:

  • Tells us how much money we make or lose for a change in interest rates

$ \text{Dollar Duration} = \text{Duration} \times \text{Bond Price} \times 0.01$

Bond Valuation and Analysis in Python

DV01

  • DV01 = $ change in bond price for 0.01% change in yields.

  • 0.01% = 1% of 1% = 1 basis point

  • Short for "dollar value of one basis point"

 

$ \text{DV01} = \text{Duration} \times \text{Bond Price} \times 0.0001$

Bond Valuation and Analysis in Python

Dollar duration example

Bond with a price of USD 92.28 and duration of 7.98%:

dollar_duration = 92.28 * 7.98 * 0.01
print("Dollar Duration: ", dollar_duration)
Dollar Duration: 7.36
DV01 = 92.28 * 7.98 * 0.0001
print("DV01: ", DV01)
DV01: 0.0736
Bond Valuation and Analysis in Python

Creating a duration neutral portfolio

  • Protect a portfolio from interest rate changes
  • Often called "hedging"
  • First calculate DV01 of portfolio and hedging instrument
  • Find quantity of bond to have equal DV01 to hedge
Bond Valuation and Analysis in Python

Hedging DV01 example

  • Your existing portfolio has a DV01 of USD 10,000
  • Bond has a price of USD 92.28 and DV01 of USD 0.0736
portfolio_dv01 = 10000
bond_dv01 = 0.0736
hedge_quantity = portfolio_dv01 / bond_dv01
print("Number of bonds to sell: ", hedge_quantity)
Number of bonds to sell: 135,869
Bond Valuation and Analysis in Python

Hedging DV01 example

  • Your existing portfolio has a DV01 of USD 10,000
  • Bond has a price of USD 92.28 and DV01 of USD 0.0736
bond_price = 92.28
hedge_amount = hedge_quantity * bond_price
print("Dollar amount to sell: USD", hedge_amount)
Dollar amount to sell: USD 12,538,043
Bond Valuation and Analysis in Python

Bond price prediction

  • Dollar duration can be used to predict bond price changes:

$ \text{Price Change} = -100 \times \text{Dollar Duration} \times \Delta y$

  • Useful to quickly predict how a bond or portfolio will behave

 

Bond Valuation and Analysis in Python

Price prediction example

  • 10 year bond with 4% coupon and 5% yield, price USD 92.28, dollar duration USD 7.36

Estimated bond price change if interest rates drop 3%:

-100 * 7.36 * -0.03
22.08

Actual change from repricing the bond:

-npf.pv(rate=0.02, nper=10, pmt=4, fv=100) - 92.28
25.69
Bond Valuation and Analysis in Python

Let's practice!

Bond Valuation and Analysis in Python

Preparing Video For Download...