Rappresentare i prezzi delle obbligazioni in funzione dei rendimenti
Saper tracciare un grafico dei prezzi delle obbligazioni in funzione dei rendimenti aiuta a capire cosa può succedere a un'obbligazione o a un portafoglio di obbligazioni al variare dei tassi di interesse di mercato.
Ora creerai un grafico dei prezzi delle obbligazioni in funzione dei rendimenti, ma questa volta per due obbligazioni con scadenze diverse. Lo farai aggiungendo al tuo DataFrame di pandas colonne extra per ciascuna obbligazione aggiuntiva. Le obbligazioni considerate pagano entrambe una cedola del 5%, ma ora traccerai una obbligazione a 5 anni e una a 10 anni.
numpy, numpy_financial, pandas e matplotlib sono già stati importati come np, npf, pd e plt, rispettivamente.
Questo esercizio fa parte del corso
Valutazione e analisi delle obbligazioni in Python
Istruzioni dell'esercizio
- Crea un array di rendimenti obbligazionari da 0 a 20 (escluso) con incrementi di 0,1.
- Converti questo array in un DataFrame di
pandase assegna alla colonna il nomebond_yield. - Aggiungi altre due colonne, una per ciascuna obbligazione (5 anni e 10 anni), e trova il prezzo per un dato livello di rendimento.
- Traccia un grafico di queste obbligazioni impostando l'etichetta dell'asse x su
Yield (%)e quella dell'asse y suBond Price (USD).
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()