将债券价格与收益率作图
将债券价格与收益率绘制成图,可以帮助您分析当市场利率处于不同水平时,单只债券或债券组合会发生什么变化。
现在,您将为两只到期年限不同的债券绘制价格—收益率关系图。做法是为您的 pandas DataFrame 增加额外的列来表示每一只债券。我们将考虑两只票息均为 5% 的债券,但这次分别绘制 5 年期和 10 年期债券。
numpy、numpy_financial、pandas 和 matplotlib 已分别以 np、npf、pd 和 plt 的名称为您导入。
本练习是课程的一部分
用 Python 进行债券定价与分析
练习说明
- 生成一个从 0 到 20(不包含 20)、步长为 0.1 的债券收益率数组。
- 将该数组转换为一个
pandasDataFrame,并将列命名为bond_yield。 - 再添加两列,分别对应两只债券(5 年期和 10 年期),并在给定收益率水平下计算其价格。
- 绘制这两只债券的图,将 x 轴标签设为
Yield (%),y 轴标签设为Bond Price (USD)。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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()