计算投资组合收益
为了构建并回测一个投资组合,您需要熟练地在同一个对象中处理多个资产的收益率。
在本练习中,您将使用一个 pandas 的 DataFrame 对象(已保存为变量 StockReturns)来存放多只资产的收益率,并据此计算一个示例投资组合的收益。
该示例投资组合基于 2017 年 1 月之前全球市值较大的公司,设定了如下预定义权重:
| Company Name | Ticker | Portfolio Weight |
|---|---|---|
| Apple | AAPL | 12% |
| Microsoft | MSFT | 15% |
| Exxon Mobil | XOM | 8% |
| Johnson & Johnson | JNJ | 5% |
| JP Morgan | JPM | 9% |
| Amazon | AMZN | 10% |
| General Electric | GE | 11% |
| FB | 14% | |
| AT&T | T | 16% |
请注意,在大多数情况下,投资组合权重之和应为 100%
本练习是课程的一部分
Python 投资组合风险管理入门
练习说明
- 根据上表完成示例
portfolio_weights的 numpy 数组定义。 - 使用
.mul()方法,将portfolio_weights按行与StockReturns相乘,得到加权股票收益。 - 然后在
WeightedReturns对象上按行使用.sum()方法,计算组合收益。 - 最后,查看随时间变化的累计收益图。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Finish defining the portfolio weights as a numpy array
portfolio_weights = np.array([0.12, 0.15, 0.08, 0.05, 0.09, 0.10, 0.11, ____, ____])
# Calculate the weighted stock returns
WeightedReturns = StockReturns.____(portfolio_weights, axis=____)
# Calculate the portfolio returns
StockReturns['Portfolio'] = WeightedReturns.____(axis=____)
# Plot the cumulative portfolio returns over time
CumulativeReturns = ((1+StockReturns["Portfolio"]).cumprod()-1)
CumulativeReturns.plot()
plt.show()