开始使用免费开始使用

将债券价格与收益率作图

将债券价格与收益率绘制成图,可以帮助您分析当市场利率处于不同水平时,单只债券或债券组合会发生什么变化。

现在,您将为两只到期年限不同的债券绘制价格—收益率关系图。做法是为您的 pandas DataFrame 增加额外的列来表示每一只债券。我们将考虑两只票息均为 5% 的债券,但这次分别绘制 5 年期和 10 年期债券。

numpynumpy_financialpandasmatplotlib 已分别以 npnpfpdplt 的名称为您导入。

本练习是课程的一部分

用 Python 进行债券定价与分析

查看课程

练习说明

  • 生成一个从 0 到 20(不包含 20)、步长为 0.1 的债券收益率数组。
  • 将该数组转换为一个 pandas DataFrame,并将列命名为 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()
编辑并运行代码