Förutsagda kontra faktiska priser I
Att plotta förutsagda obligationspriser för olika ränteniåver med hjälp av duration, och sedan jämföra dessa med de faktiska priserna, är ett bra sätt att visualisera hur träffsäker durationen är.
I den här övningen börjar du med att beräkna obligationens duration samt priset vid olika ränteniåver. I nästa övning beräknar du det förutsagda priset utifrån duration och plottar skillnaden.
Obligationen du arbetar med har en löptid på 10 år, en årlig kupongränta på 5 % och en effektiv ränta på 5 %.
numpy, numpy_financial, pandas och matplotlib har redan importerats som np, npf, pd respektive plt.
Den här övningen är en del av kursen
Obligationsvärdering och -analys i Python
Övningsinstruktioner
- Beräkna obligationens duration och dollarduration.
- Skapa en array med obligationsräntor från 0 till 10 i steg om 0,1 och konvertera den till en
pandasDataFrame med namnetbond_yield. - Lägg till kolumnen
pricemed obligationspriset för varje ränteniåv.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Price a 10 year bond with 5% coupon and 5% yield, reprice at higher and lower yields
price = ____
price_up = ____
price_down = ____
# Find the duration and dollar duration of the bond
duration = ____
dollar_duration = ____ * ____ * ____
# Create an array of yields from 0 to 10 in steps of 0.1, convert to DataFrame
bond_yields = np.arange(____, ____, ____)
bond = pd.DataFrame(____, columns=['bond_yield'])
# Add a column called price with the bond price for each yield level
bond['price'] = -npf.pv(rate=bond['bond_yield'] / 100, ____, ____, ____)