开始使用免费开始使用

评估收益

现在来看看,与直接投资 SPY 相比,我们的投资组合选择会有怎样的表现。尽管 R\(^2\) 值较低,我们仍希望通过这一比较判断预测是否有前景。

我们将设置初始投资为 $1000,然后分别遍历基于预测得到的收益率序列与 SPY 的收益率序列。我们会把投资组合选择和 SPY 的月度收益应用到初始现金余额上。这样可以得到逐月的资金变化情况,从而整体比较我们的预测与 SPY 的表现。接下来,绘制基于预测的投资组合走势,并与 SPY 对比。

本练习是课程的一部分

Python 金融机器学习

查看课程

练习说明

  • algo_cashspy_cash 的第一个列表元素都设为同一数值(cash)。
  • 在遍历 test_returns 的循环中,将 cash 乘以 1 + r,把当期收益应用到 cash
  • test_returns 的循环相同,在计算 SPY 表现的循环中,也在将 cash 乘以 1 + r 之后,把 cash 追加到 spy_cash,以把收益计入 cash

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Calculate the effect of our portfolio selection on a hypothetical $1k investment
cash = 1000
algo_cash, spy_cash = [cash], ____  # set equal starting cash amounts
for r in test_returns:
    cash *= 1 + r
    algo_cash.append(cash)

# Calculate performance for SPY
cash = 1000  # reset cash amount
for r in returns_monthly['SPY'].iloc[train_size:]:
    cash ____ ____
    ____

print('algo returns:', (algo_cash[-1] - algo_cash[0]) / algo_cash[0])
print('SPY returns:', (spy_cash[-1] - spy_cash[0]) / spy_cash[0])
编辑并运行代码