주식 백테스트 방법 완벽 가이드 - 과거 데이터로 매매 전략 검증하기
감으로 매매하다 손실 보기 전에, 과거 데이터로 전략을 먼저 검증하세요. 주식 백테스트 방법을 단계별로 정리하고 도구 비교부터 흔한 실수까지 한 번에 알려드립니다.
![]()
매매 규칙을 하나 세웠다고 해봅시다. "5일 이동평균선이 20일선을 뚫으면 산다." 그럴듯하게 들립니다. 그런데 이 규칙으로 정말 돈을 벌 수 있을까요? 실제 돈을 넣기 전까지는 아무도 모릅니다. 그래서 많은 투자자가 검증 없이 감으로 매매하다가 손실을 봅니다.
이 막막함을 해결하는 도구가 백테스트입니다. 과거 주가 데이터에 내 매매 규칙을 그대로 적용해보고, 만약 그때 이 전략으로 거래했다면 수익이 났을지를 숫자로 확인하는 작업입니다. 시간과 돈을 잃기 전에 전략의 실력을 미리 점검하는 셈입니다.
백테스트란 무엇이고 왜 필요한가
백테스트(Backtest)는 말 그대로 과거를 향해 테스트한다는 뜻입니다. 예를 들어 2015년부터 2024년까지 10년치 코스피 데이터를 가져와서, 내가 만든 매수 매도 규칙을 매일 적용했다고 가정하고 누적 수익률을 계산합니다.
왜 필요할까요? 사람의 기억은 편향됩니다. 수익 본 거래는 또렷하게 기억하고 손실 본 거래는 흐릿하게 넘어갑니다. 그래서 "이 전략 괜찮은 것 같은데"라는 느낌은 거의 믿을 수 없습니다. 백테스트는 이 느낌을 객관적인 숫자로 바꿔줍니다.
백테스트의 핵심 가치는 수익을 보장하는 데 있지 않습니다. 돈을 잃을 전략을 실전에 투입하기 전에 걸러내는 데 있습니다.
백테스트로 확인할 수 있는 것
- 누적 수익률과 연평균 수익률(CAGR) - 전략이 장기적으로 우상향하는가
- 최대 낙폭(MDD) - 고점 대비 최대 몇 퍼센트까지 깨졌는가
- 승률과 손익비 - 이긴 거래 비율과 한 번 이길 때 버는 폭
- 거래 횟수 - 수수료와 세금이 수익을 갉아먹을 만큼 잦지 않은가
주식 백테스트 방법 - 5단계 절차
주식 백테스트 방법은 도구가 무엇이든 기본 흐름이 똑같습니다. 다음 5단계를 따르면 됩니다.
1단계 - 매매 규칙을 숫자로 정의하기
"좋아 보일 때 산다"는 백테스트가 불가능합니다. "RSI가 30 아래로 내려가면 매수, 70 위로 올라가면 매도"처럼 컴퓨터가 판단할 수 있는 명확한 조건으로 바꿔야 합니다.
2단계 - 데이터 확보하기
검증할 종목의 과거 가격 데이터가 필요합니다. 최소 5년에서 10년치는 있어야 다양한 시장 국면(상승장, 하락장, 횡보장)을 모두 거칩니다. 데이터가 짧으면 우연히 좋았던 한 시기에만 맞춘 결과가 나옵니다.
3단계 - 거래 비용 반영하기
가장 많이 빼먹는 부분입니다. 매매 수수료, 증권거래세, 슬리피지(원하는 가격에 못 사고 약간 비싸게 체결되는 손실)를 반드시 넣어야 합니다. 이걸 빼면 수치가 비현실적으로 좋아집니다.
4단계 - 검증 구간 나누기
전체 기간을 한 번에 돌리지 말고, 일부 구간으로 전략을 만들고 나머지 구간으로 검증하는 방식을 권합니다. 전략을 짠 데이터에서 잘 나오는 건 당연하기 때문입니다.
5단계 - 결과 해석하기
수익률만 보지 말고 MDD를 같이 봐야 합니다. 연 30퍼센트를 벌어도 중간에 50퍼센트가 깨지는 전략은 대부분의 사람이 버티지 못합니다.
백테스트 도구 비교
코딩 실력과 목적에 따라 선택지가 다릅니다. 대표적인 방법을 정리했습니다.
| 방법 | 난이도 | 장점 | 단점 |
|---|---|---|---|
| 엑셀 직접 계산 | 낮음 | 원리 이해에 최적, 무료 | 종목 수와 기간 늘리면 한계 |
| 증권사 HTS 시스템 검증 | 중간 | 설치 없이 기본 지표 검증 | 커스텀 전략 제약 |
| 파이썬(backtrader 등) | 높음 | 자유도 최고, 정교한 검증 | 코딩 학습 필요 |
| 퀀트 플랫폼 서비스 | 중간 | 코딩 없이 전략 조립 | 유료 구간 많음 |
처음이라면 엑셀로 단순한 이동평균 전략 하나를 직접 계산해보길 권합니다. 백테스트가 어떻게 굴러가는지 몸으로 이해하면, 나중에 어떤 도구를 써도 결과를 의심하고 검증할 수 있습니다.
백테스트할 때 흔히 저지르는 실수
백테스트 결과가 화려한데 실전에서 박살나는 경우, 거의 다음 함정 중 하나에 빠진 것입니다.
- 과최적화(오버피팅) - 과거에 딱 맞는 파라미터를 찾을 때까지 숫자를 바꾸는 행위. 과거에만 완벽하고 미래엔 무용지물입니다.
- 미래 참조(look-ahead bias) - 그 시점에 알 수 없었던 정보(예: 당일 종가)로 매매를 결정하는 오류.
- 생존 편향 - 상장폐지된 종목을 데이터에서 빼고 살아남은 종목만으로 테스트하면 결과가 좋게 나옵니다.
- 거래 비용 누락 - 앞서 말한 수수료, 세금, 슬리피지를 빼는 실수.
백테스트 결과를 실전에 적용하는 법
검증을 통과한 전략이라도 바로 큰돈을 넣으면 안 됩니다. 과거가 미래를 보장하지 않기 때문입니다. 순서를 지켜야 합니다.
먼저 소액 또는 모의투자로 일정 기간 실제 시장에서 돌려봅니다. 이걸 포워드 테스트라고 합니다. 백테스트 결과와 실제 결과가 비슷하게 나오는지 확인하는 단계입니다. 여기서 차이가 크면 다시 점검해야 합니다.
실전에서는 검증 단계와 달리 시장이 실시간으로 움직입니다. 특히 단타나 스윙처럼 진입 시점이 중요한 전략은, 백테스트로 규칙을 정한 뒤 장중 흐름을 빠르게 확인할 수 있는 환경이 필요합니다. 종목별 수급과 흐름을 정리해 보여주는 오늘의단타 같은 도구나, 장중 실시간 정보를 따라가야 한다면 오늘의단타 LIVE를 함께 활용해 검증한 전략의 진입 타이밍을 점검하는 식으로 보조 수단을 두면 도움이 됩니다.
마지막으로 한 가지만 기억하면 됩니다. 백테스트는 한 번 하고 끝나는 게 아닙니다. 시장 환경이 바뀌면 잘 작동하던 전략도 무뎌집니다. 지금 할 일은 두 가지입니다. 첫째, 가지고 있는 매매 규칙 하나를 골라 최소 5년치 데이터로 직접 백테스트해보세요. 둘째, 그 결과에서 수익률보다 최대 낙폭을 먼저 확인하고 내가 버틸 수 있는 수준인지 판단하세요.