Prezzi previsti vs. effettivi II
Rappresentare i prezzi previsti delle obbligazioni per diversi livelli di rendimento usando la duration, quindi confrontarli con i prezzi effettivi dell'obbligazione, è un ottimo modo per visualizzare l'accuratezza della duration.
Nel precedente esercizio, hai calcolato la duration dell'obbligazione e creato un DataFrame con i prezzi effettivi del bond a ciascun livello di rendimento. In questo esercizio, aggiungerai colonne a questo DataFrame con i prezzi previsti usando la duration, quindi traccerai la differenza tra il prezzo previsto e quello effettivo.
numpy, numpy_financial, pandas e matplotlib sono già stati importati per te come np, npf, pd e plt, rispettivamente, così come il codice del precedente esercizio.
Questo esercizio fa parte del corso
Valutazione e analisi delle obbligazioni in Python
Istruzioni dell'esercizio
- Aggiungi la colonna
yield_changecon il rendimento corrente meno il rendimento iniziale. - Aggiungi la colonna
price_changecon la variazione di prezzo prevista dell'obbligazione usando la dollar duration. - Aggiungi la colonna
predicted_pricecombinando il prezzo iniziale del bond con la variazione di prezzo. - Aggiungi un grafico dei rendimenti del bond rispetto ai prezzi effettivi e ai prezzi previsti sugli stessi assi e mostra il grafico.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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"])
____