Backtest Basics
주식 백테스트란 무엇인가?
과거의 주가 데이터를 이용해 투자 전략이 어떤 결과를 냈을지 검증하는 방법을 알아봅니다.
백테스트의 뜻
주식 백테스트(Backtest)는 미리 정한 매매 규칙을 과거 데이터에 적용해 전략의 성과와 위험을 확인하는 과정입니다. 예를 들어 “주가가 20일 이동평균선을 돌파하면 매수하고, 매수가보다 10% 오르면 매도한다”라는 규칙이 과거 시장에서 어떻게 작동했는지 계산할 수 있습니다.
백테스트의 목적은 과거에 가장 높은 수익을 낸 조건을 찾는 데만 있지 않습니다. 전략의 수익 구조가 일관적인지, 어느 시기에 손실이 컸는지, 실제로 감당할 수 있는 위험인지 확인하는 것이 더 중요합니다.
백테스트는 어떻게 진행할까?
- 전략을 숫자로 정의합니다. 매수·매도 조건, 투자 금액, 보유 기간을 누구나 같은 결과를 낼 수 있도록 구체적으로 정합니다.
- 검증할 데이터를 준비합니다. 종목, 기간, 일봉·분봉 같은 시간 단위를 정하고 배당, 액면분할, 상장폐지 데이터의 반영 여부를 확인합니다.
- 거래 비용을 반영합니다. 매매 수수료, 세금, 호가 차이와 슬리피지를 포함해야 실제 거래에 가까운 결과를 얻을 수 있습니다.
- 규칙에 따라 거래를 재현합니다. 미래 가격을 미리 알 수 없도록 각 시점에 이용 가능했던 정보만 사용합니다.
- 성과와 위험을 함께 분석합니다. 누적수익률뿐 아니라 최대 낙폭, 거래 횟수, 손익비, 연도별 성과를 확인합니다.
- 다른 기간에서 다시 검증합니다. 전략을 만든 구간과 검증 구간을 분리해 우연히 잘 맞은 결과인지 살펴봅니다.
확인해야 할 핵심 지표
| 지표 | 의미 | 확인할 점 |
|---|---|---|
| 누적수익률 | 전체 기간 동안 자산이 증가한 비율 | 같은 기간의 시장 지수와 비교 |
| 연평균수익률(CAGR) | 복리 기준으로 환산한 연평균 성장률 | 투자 기간이 다른 전략 비교에 활용 |
| 최대 낙폭(MDD) | 고점에서 저점까지 가장 크게 하락한 비율 | 실제로 감내할 수 있는 손실인지 확인 |
| 승률 | 전체 거래 중 수익 거래의 비율 | 평균 손익과 함께 판단 |
| 손익비 | 평균 이익과 평균 손실의 비율 | 낮은 승률을 보완할 수 있는지 확인 |
| 거래 횟수 | 백테스트 기간에 발생한 총 거래 수 | 표본과 거래 비용이 적절한지 확인 |
연평균수익률이 장기간 복리로 이어질 때의 예상 금액은 복리 수익률 계산기로 확인할 수 있습니다.
간단한 백테스트 전략 예시
아래처럼 조건을 명확히 적으면 백테스트가 가능한 전략이 됩니다.
- 대상
- 거래대금 상위 종목
- 매수
- 종가가 20일 이동평균선을 상향 돌파한 다음 날 시가
- 매도
- 목표수익률 +10% 또는 손실률 -10% 도달 시
- 비중
- 한 종목당 전체 자금의 10%
- 비용
- 수수료, 세금, 슬리피지를 거래마다 반영
백테스트에서 주의해야 할 오류
과최적화
과거 데이터에만 지나치게 잘 맞도록 조건을 계속 바꾸면 미래에는 성과가 재현되지 않을 수 있습니다. 이동평균 기간이나 손절 비율을 반복 조정해 최고 결과만 선택하는 방식은 특히 주의해야 합니다.
미래 참조 편향
당시에는 알 수 없었던 종가, 재무제표 발표 내용 또는 미래에 확정된 데이터를 미리 사용하면 결과가 실제보다 좋아집니다. 주문 시점에 이용할 수 있었던 정보만 사용해야 합니다.
생존자 편향
현재 상장된 종목만으로 과거를 검증하면 상장폐지되거나 합병된 종목이 빠질 수 있습니다. 실패한 종목까지 포함하지 않으면 수익률이 부풀려질 가능성이 있습니다.
거래 비용과 체결 가능성 누락
수수료와 세금뿐 아니라 원하는 가격에 주문이 체결되지 않는 슬리피지, 거래량이 적은 종목의 유동성도 고려해야 합니다. 거래가 잦은 전략일수록 작은 비용이 누적되어 결과를 크게 바꿀 수 있습니다.
백테스트 결과를 볼 때의 점검표
- 매수와 매도 조건이 모호하지 않고 숫자로 정의되어 있는가?
- 수수료, 세금과 슬리피지를 반영했는가?
- 상승장과 하락장, 횡보장을 모두 포함했는가?
- 전략 개발 기간과 검증 기간을 분리했는가?
- 몇몇 종목이나 한 번의 큰 수익에 결과가 의존하지 않는가?
- 최대 낙폭을 실제 투자에서도 견딜 수 있는가?
개별 거래의 세후 순손익은 주식 수익률 계산기에서, 추가 매수 후 변화하는 단가는 평단가 계산기에서 확인할 수 있습니다.
정리
주식 백테스트는 미래 수익을 예언하는 도구가 아니라 투자 전략의 장점과 약점을 과거 데이터로 점검하는 실험입니다. 높은 수익률 하나보다 손실 구간, 비용, 데이터 편향과 재현 가능성을 함께 살펴봐야 의미 있는 결과가 됩니다. 백테스트를 통과한 전략도 소액의 모의 운용과 지속적인 점검을 거쳐야 합니다.