Оценка доходности
Теперь посмотрим, как наш выбор портфеля показал бы себя по сравнению с простым вложением в SPY. Это поможет нам оценить перспективность наших прогнозов, несмотря на низкое значение R\(^2\).
Мы зададим начальную стоимость инвестиций в размере 1000 долларов, а затем пройдём в цикле по доходностям из наших прогнозов и из SPY. Для этого мы применим ежемесячную доходность нашего портфеля и SPY к начальному денежному балансу. В результате мы получим помесячную картину состояния наших инвестиций и сможем оценить, насколько точными оказались прогнозы в сравнении с SPY. Затем построим график нашего портфеля на основе прогнозов и сравним его с SPY.
Это упражнение является частью курса
Машинное обучение для финансов на Python
Инструкции к упражнению
- Присвойте первым элементам списков
algo_cashиspy_cashодинаковое значение (cash). - Умножьте
cashв цикле поtest_returnsна1 + r, чтобы применить доходность к значениюcash. - По аналогии с циклом по
test_returns, в цикле расчёта доходности SPY добавьтеcashв списокspy_cashпосле умножения на1 + r, чтобы учесть доходность в значении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])