Прогнозные и фактические цены II
Отличный способ наглядно оценить точность дюрации — построить график прогнозных цен облигации для разных уровней доходности и сравнить их с фактическими ценами.
В предыдущем упражнении вы вычислили дюрацию облигации и создали DataFrame с фактическими ценами облигации для каждого уровня доходности. В этом упражнении вы добавите в этот DataFrame столбцы с прогнозными ценами облигации, рассчитанными с помощью дюрации, а затем построите график, показывающий разницу между прогнозной и фактической ценой.
numpy, numpy_financial, pandas и matplotlib уже импортированы как np, npf, pd и plt соответственно, а также подключён код из предыдущего упражнения.
Это упражнение является частью курса
Оценка и анализ облигаций в Python
Инструкции к упражнению
- Добавьте столбец
yield_changeс разностью между текущей доходностью и исходной. - Добавьте столбец
price_changeс прогнозным изменением цены облигации, рассчитанным с помощью долларовой дюрации. - Добавьте столбец
predicted_price, объединяющий исходную цену облигации с изменением цены. - Постройте на одних осях график зависимости доходности облигации от фактических цен и от прогнозных цен, затем отобразите график.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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"])
____