Backtesting
백테스팅
- 특정 기간의 과거 데이터를 통해 알고리즘 트레이딩 시스템의 성능을 평가하는 작업을 의미한다.
- 알고리즘 트레이딩 시스템의 예측력, 수익률, 특성 등을 파악하기 위해 수행한다.
- 대표적인 백테스팅 방법으로 Profit/Loss(손익/수익률), Hit Ratio(적중률, 명중률), Drawdown(고점 대비 최대 손실률),
Sharpe Ratio(샤프 지수)가 있다.
Profit/Loss Test (손익 테스트, 수익률 테스트)
- 개발한 시스템에 특정 기간의 데이터를 입력해 트레이딩을 실시했을 때 발생하는 이익과 손실을 평가하는 방법이다.
- 테스트 기간 전체 수익률을 계산하거나, 일정 기간별 수익률을 계산한다.
Hit Ratio Test (적중률 테스트, 명중률 테스트)
- 예측의 적중률, 즉 예측력을 측정하는 테스트이다.
- 과거의 데이터로 테스팅하므로, 머신러닝 모델에서의 경우 학습에 사용됐던 데이터로 테스팅하면 안된다.
(그래서, 머신러닝 모델에서는 학습용 데이터셋과 테스트용 데이터셋이 구분되어져야 한다.)
- Hit Ratio는 모델별 예측 정확도를 나타내지만, 모델마다 그 의미가 약간씩 상이하다.
- 평균회귀 모델에서 Hit Ratio는 그때그때 매매 포지션이 적절했는지를 의미하는 비율이다.
- 머신러닝 모델에서 Hit Ratio는 주가 방향의 예측 정확도를 의미하는 비율이다.
- Hit Ratio는 단순한 예측 정확도만을 의미하는 수치이며,
예측 정확도의 세부적 성격이나 위험 관리에 대해 알 수 없기 때문에
다른 테스트를 병행하여 시스템 성능을 다방면에서 평가해야 한다.
Drawdown Test (고점 대비 최대 손실률 테스트)
- Drawdown은 시스템 운영 전반과 위험 관리에 이용되는 지표이다.
- 잘못된 예측의 횟수와 기간을 계산하여 손실의 관점에서 트레이딩을 평가한다.
Drawdown Graph에서의 주요 사항
Maximum Drawdown (최대 손실률)
- 알고리즘 트레이딩의 특성상, 단 한 번의 잘못된 거래로 파산할 수 있기 때문에
최대 손실률은 매우 중요한 지표이다.
Drawdown Duration (손실 지속 기간)
- 손실이 지속된 기간을 의미하는 데이터로, 주로 단위는 일(Day)이다.
- 예를 들어, Drawdown Duration = 5 은 5일 동안 지속적인 손실을 기록했다는 의미이다.
Drawdown Curve
- 손실의 경향성에 대한 데이터로, 트레이딩 시스템이 갖고 있는 손실 특성을 파악할 수 있게 한다.
- 손실이 지속적으로 확대되는 경향이 있는지, 손실이 평균회귀 특성이 있는지 따위를 파악한다.
Sharpe Ratio Test (Sharpe Index Test, Sharpe Measure Test, Reward-to-variability Ratio Test; 샤프 지수 테스트)
\(\mathrm{Sharpe Ratio} = E(R - R_b) {1 \over \sqrt{\mathrm{Var}(R - R_b)}}\)
\(R\) : 투자이익
\(R_b\) : 벤치마크 투자이익 (투자이익 비교 용도)
- 즉, 기댓값(=수익률)을 기댓값의 표준편차(=수익률의 표준편차)로 나눈 수치이다.
(다른 말로, 수익률/변동성 으로도 표현 가능하다.)
- 변동성은 위험을 의미하기도 하기에 Sharpe Ratio 분석을 Reward/Risk 분석이라고도 부른다.
- 즉, Sharpe Ratio는 위험을 고려한 성능을 의미하는 수치이다.
- 위험이 적을수록, 수익률이 클수록 좋은것이기에 Sharpe Ratio의 값은 크면 클수록 좋다.
Reference: 머신러닝을 이용한 알고리즘 트레이딩 시스템 개발
(안명호, 류미현 저, 한빛미디어, 2016)