Ceny przewidywane a rzeczywiste II
Świetnym sposobem na zwizualizowanie dokładności duracji jest wykreślenie przewidywanych cen obligacji dla różnych poziomów rentowności, a następnie porównanie ich z cenami rzeczywistymi.
W poprzednim ćwiczeniu wyznaczono durację obligacji i utworzono DataFrame z rzeczywistymi cenami obligacji dla każdego poziomu rentowności. W tym ćwiczeniu dodasz do tego DataFrame kolumny zawierające ceny przewidywane na podstawie duracji, a następnie wykreślisz różnicę między ceną przewidywaną a rzeczywistą.
numpy, numpy_financial, pandas oraz matplotlib zostały już zaimportowane jako np, npf, pd i plt, wraz z kodem z poprzedniego ćwiczenia.
To ćwiczenie jest częścią kursu
Wycena i analiza obligacji w Pythonie
Instrukcje do ćwiczenia
- Dodaj kolumnę
yield_changezawierającą różnicę między bieżącą rentownością a rentownością pierwotną. - Dodaj kolumnę
price_changez przewidywaną zmianą ceny obligacji przy użyciu duracji dolarowej. - Dodaj kolumnę
predicted_price, łącząc pierwotną cenę obligacji ze zmianą ceny. - Dodaj wykres rentowności obligacji względem cen rzeczywistych i przewidywanych na tych samych osiach, a następnie go wyświetl.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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"])
____