
578
4
부
알고리즘 트레이딩
In [13]: ax = data.plot(secondary_y='Position', figsize=(10, 6))
ax.get_legend().set_bbox_to_anchor((0.25, 0.85));
➊
np.where(cond, a, b)
함수는 조건이 되는 원소
cond
값이
True
면
a
,
False
면
b
출력
그림
15-2
애플 주가, 두개의 단순 이동평균선, 잔고 포지션
여기까지는
8
장의 내용과 같다.
8
장에서 다루지 않았던 내용은 이 매매 규칙을 따르면, 즉 알
고리즘 트레이딩 전략을 구현하면 단순히 애플 주식을 전 기간 동안 매수하여 들고 있던 것보
다 더 나은 성과를 보인다는 것이다. 성과 차이는 두 개의 매도 구간 때문이다.
15.1.3
벡터화된 백테스팅
벡터화된 백테스팅은 다음과 같이 구현한다. 우선 로그 수익률을 계산한다. 그다음
+
1
또는
-
1
로 나타낸 포지션을 수익률에 곱한다. 이렇게 하면 수익률이 양수인 기간은 매수 수익을 얻고
수익률이 음수인 구간은 매도 수익을 얻는다. 마지막으로 원래의 애플 주가와 알고리즘 트레이
딩 수익률을 모두 더한 후 지수함수를 적용하면 최종 성과를 계산할 수 있다.