Beräknade vs. faktiska priser II
Att rita upp beräknade obligationspriser för olika räntenivåer med hjälp av duration, och sedan jämföra dessa med de faktiska priserna, är ett bra sätt att åskådliggöra durationens träffsäkerhet.
I föregående övning beräknade du obligationens duration och skapade en DataFrame med de faktiska obligationspriserna vid varje räntenivå. I den här övningen lägger du till kolumner i den DataFrame som innehåller de beräknade obligationspriserna med hjälp av duration, och plottar sedan skillnaden mellan det beräknade priset och det faktiska priset.
numpy, numpy_financial, pandas och matplotlib har redan importerats åt dig som np, npf, pd respektive plt, liksom koden från föregående övning.
Den här övningen är en del av kursen
Obligationsvärdering och -analys i Python
Övningsinstruktioner
- Lägg till kolumnen
yield_changemed den aktuella räntan minus den ursprungliga räntan. - Lägg till kolumnen
price_changemed den beräknade obligationsprisförändringen med hjälp av dollarduration. - Lägg till kolumnen
predicted_pricesom kombinerar det ursprungliga obligationspriset med prisförändringen. - Lägg till en plot av obligationsräntor mot faktiska priser och mot beräknade priser i samma diagram, och visa diagrammet.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Add a column called yield_change with the current yield minus original yield
bond['yield_change'] = (bond['bond_yield'] - ____)
# Find the predicted bond price change using dollar duration then find predicted price
bond['price_change'] = -100 * ____ * bond['yield_change'] / 100
bond['predicted_price'] = ____ + bond['price_change']
# Plot bond yields against predicted and actual prices, add labels, legend, and display
plt.plot(bond['bond_yield'], bond['price'])
plt.plot(____, ____)
plt.xlabel('Yield (%)')
plt.ylabel('Price (USD)')
plt.legend(["Actual Price", "Predicted Price"])
____