Ceny przewidywane a rzeczywiste – część I
Świetnym sposobem na zwizualizowanie dokładności duration jest narysowanie wykresu przewidywanych cen obligacji dla różnych poziomów rentowności, a następnie porównanie ich z cenami rzeczywistymi.
W tym ćwiczeniu zaczniesz od wyznaczenia duration obligacji oraz jej ceny przy różnych poziomach rentowności. W kolejnym ćwiczeniu obliczysz cenę przewidywaną na podstawie duration i zobrazujesz różnicę.
Analizowana obligacja to obligacja 10-letnia z rocznym kuponem w wysokości 5% i rentownością do wykupu (YTM) równą 5%.
numpy, numpy_financial, pandas oraz matplotlib zostały już zaimportowane odpowiednio jako np, npf, pd i plt.
To ćwiczenie jest częścią kursu
Wycena i analiza obligacji w Pythonie
Instrukcje do ćwiczenia
- Wyznacz duration oraz dollar duration obligacji.
- Utwórz tablicę rentowności obligacji od 0 do 10 z krokiem 0,1 i przekształć ją w DataFrame biblioteki
pandaso nazwiebond_yield. - Dodaj kolumnę
pricezawierającą cenę obligacji dla każdego poziomu rentowności.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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, ____, ____, ____)