Plotta obligationspriser mot avkastning
Att kunna plotta ett diagram över obligationspriser mot avkastning är ett bra sätt att undersöka hur en obligation eller en portfölj av obligationer påverkas vid olika räntenivåer på marknaden.
Nu ska du skapa ett sådant diagram, men den här gången för två obligationer med olika löptider. Det gör du genom att lägga till extra kolumner i din pandas DataFrame för varje obligation. Båda obligationerna betalar en kupong på 5 %, men du plottar en 5-årig och en 10-årig obligation.
numpy, numpy_financial, pandas och matplotlib har redan importerats åt dig som np, npf, pd respektive plt.
Den här övningen är en del av kursen
Obligationsvärdering och -analys i Python
Övningsinstruktioner
- Skapa en array med obligationsavkastningar från 0 till 20 (ej inklusivt) i steg om 0,1.
- Konvertera arrayen till en
pandasDataFrame och ge kolumnen namnetbond_yield. - Lägg till ytterligare två kolumner, en för varje obligation (5-årig och 10-årig), och beräkna priset för en given avkastningsnivå.
- Plotta ett diagram över dessa obligationer och sätt x-axelns etikett till
Yield (%)och y-axelns etikett tillBond Price (USD).
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Create an array of bond yields and convert to DataFrame
bond_yields = np.arange(____, ____, ____)
bond = pd.DataFrame(____, columns=['____'])
# Add columns for different bonds
bond['bond_price_5Y'] = -npf.pv(rate=bond['bond_yield'] / 100, nper=____, pmt=____, fv=____)
bond['bond_price_10Y'] = -npf.pv(rate=____, nper=____, pmt=____, fv=____)
# Plot graph of bonds
plt.plot(bond['bond_yield'], bond['bond_price_5Y'], label='5 Year Bond')
plt.plot(____, ____, label='10 Year Bond')
plt.xlabel(____)
plt.ylabel(____)
plt.legend()
plt.show()