수익률 평가
이제 우리가 선택한 포트폴리오가 SPY에 그냥 투자했을 때와 비교해 어떻게 성과를 내는지 살펴보겠어요. R\(^2\) 값이 낮더라도, 예측이 유의미한지 확인하려는 목적이에요.
초기 투자금으로 $1000을 설정한 뒤, 예측에서 나온 수익률과 SPY의 수익률을 각각 순회(loop)하면서 적용하겠습니다. 포트폴리오 선택과 SPY의 월간 수익률을 초기 현금 잔액에 적용해 볼게요. 이렇게 하면 투자 성과를 월별로 파악할 수 있고, 전체적으로 우리의 예측이 SPY 대비 어떤 성과를 냈는지 확인할 수 있어요. 그다음 예측 기반 포트폴리오의 누적 성과를 시각화하고 SPY와 비교해 봅니다.
이 연습은 강의의 일부입니다
Python으로 배우는 금융 분야 Machine Learning
연습 안내
algo_cash와spy_cash의 첫 번째 리스트 항목을 모두 동일한 금액(cash)으로 설정하세요.test_returns루프에서cash에 수익률을 적용하려면cash에1 + r을 곱하세요.- SPY 성과 루프에서도
test_returns루프와 동일하게,cash에1 + r을 곱해 수익률을 반영한 뒤spy_cash에cash를 추가(append)하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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])