본문 바로가기

주식 백테스트 방법 완벽 가이드 - 초보도 따라하는 4단계 검증법

감으로 매매하다 손실만 쌓이고 계신가요. 과거 데이터로 전략을 검증하는 백테스트 절차와 실전 도구를 단계별로 정리했습니다.


주식 백테스트 방법 완벽 가이드 - 초보도 따라하는 4단계 검증법

매매일지를 들여다보면 분명히 잘 맞을 것 같았던 전략인데 막상 실전에서는 손실만 쌓인 경험이 있을 겁니다. 지지선 매수, 이동평균 골든크로스, 거래량 급증 신호처럼 책에서 본 매매 기법을 그대로 적용했는데 왜 내 계좌만 마이너스인지 답답해지죠. 이런 의문을 객관적으로 풀어주는 도구가 바로 백테스트입니다. 과거 시세 데이터에 매매 규칙을 그대로 돌려보고 결과를 숫자로 확인하는 작업이에요.

백테스트가 필요한 이유

감으로 하는 매매는 결과가 좋아도 우연인지 실력인지 구분이 안 됩니다. 백테스트는 전략의 기댓값을 수치로 보여주기 때문에, 본인이 가진 매매 규칙이 실제로 수익을 내는 구조인지 아니면 운에 가까웠는지 분리할 수 있게 해줍니다.

특히 단타나 스윙처럼 거래 빈도가 높은 전략일수록 백테스트의 가치가 큽니다. 거래 횟수가 많아질수록 표본이 충분해져서 통계적 신뢰도가 올라가기 때문이죠. 반대로 1년에 두세 번 거래하는 장기 투자라면 표본이 부족해 결과 해석에 한계가 있습니다.

백테스트는 미래를 예측하는 도구가 아니라, 과거에 통하지 않았던 전략을 미리 걸러내는 필터입니다. 과거에도 안 통한 전략이 미래에 갑자기 통할 가능성은 매우 낮습니다.

백테스트 준비물과 데이터

백테스트를 제대로 하려면 세 가지가 필요합니다. 깨끗한 가격 데이터, 명확한 매매 규칙, 그리고 실행 환경입니다.

1) 데이터 소스

  • 국내 주식: 한국거래소(KRX) 정보데이터시스템, 네이버 증권, 키움증권 OpenAPI, FinanceDataReader 라이브러리
  • 해외 주식: yfinance, Alpha Vantage, Tiingo 등 무료/유료 API
  • 일봉 외 분봉 데이터: 증권사 API 또는 유료 데이터 벤더 사용

2) 실행 도구 비교

도구난이도특징추천 대상
엑셀낮음수식으로 단순 전략 검증코드 사용 어려운 초보
파이썬 + pandas중간자유도 높음, 분석 라이브러리 풍부커스텀 전략 검증
backtrader / vectorbt중상이벤트 기반, 다양한 지표 자동 산출본격적인 전략 개발자
TradingView Pine Script중간차트 위에서 시각화 가능차트 기반 전략 검증
참고: 일봉 데이터로 한 백테스트와 실제 분봉 단위 체결 결과는 다를 수 있습니다. 단타 전략을 검증할 때는 가능하면 분봉 이하 데이터를 확보하세요.

주식 백테스트 방법 4단계

도구를 정했다면 다음 4단계를 순서대로 밟으면 됩니다.

1단계 - 매매 규칙 명확화

두루뭉술한 규칙은 백테스트가 불가능합니다. "이평선 돌파하면 매수"가 아니라 "종가가 20일 이동평균선을 상향 돌파한 다음 날 시가에 매수, 5% 익절 또는 3% 손절, 최대 보유 10거래일"처럼 한 줄로 명확히 적어야 합니다.

2단계 - 검증 기간 설정

최소 3년 이상의 데이터를 권장합니다. 상승장, 하락장, 횡보장이 골고루 포함되어야 전략의 실력을 객관적으로 볼 수 있기 때문입니다. 2020년 코로나 폭락과 반등, 2022년 하락장, 2023~2024년 회복 구간을 모두 포함하면 좋은 시험대가 됩니다.

3단계 - 거래 비용 반영

수수료와 세금을 빼먹으면 결과가 부풀려집니다. 국내 주식의 경우 매도 시 증권거래세 0.18%(코스피 0.03% + 농특세 0.15%, 코스닥 0.18%) 기준을 적용하고, 증권사 수수료와 슬리피지(체결 미끄러짐)도 반영해야 합니다. 단타라면 회당 0.05~0.1% 슬리피지를 가정하는 게 보수적입니다.

4단계 - 결과 기록과 시각화

거래 내역을 모두 로그로 남기고 자산 곡선(equity curve)을 그려보세요. 평탄하게 우상향하면 좋은 신호이고, 한두 번 큰 수익에 의존하면 위험한 전략일 가능성이 큽니다.

팁: 백테스트 결과가 좋게 나왔다면 곧바로 실전 투입하지 말고 모의투자나 소액 실거래로 1~2개월 검증하세요. 실시간 시장에서 보조지표 계산 타이밍과 체결 슬리피지가 의외로 큰 영향을 줍니다. 매일 빠르게 변하는 시장 흐름을 같이 점검하고 싶다면 오늘의단타 같은 일일 종목 리포트를 참고해 백테스트 시그널과 실제 시장 분위기를 교차 검증하는 것도 한 방법입니다.

결과 해석에 쓰이는 지표

수익률만 보면 안 됩니다. 다음 지표들을 함께 봐야 전략의 진짜 품질을 판단할 수 있습니다.

  • CAGR (연복리수익률) - 기간에 따라 다르게 보이는 누적수익률을 표준화한 값
  • MDD (최대낙폭) - 자산이 고점 대비 얼마나 쪼그라들었는지. 30% 넘으면 실전에서 버티기 힘듭니다
  • 샤프지수 - 변동성 대비 초과수익. 1 이상이면 양호, 2 이상이면 우수로 평가
  • 승률과 손익비 - 승률 40%여도 손익비 2:1이면 기댓값은 양수
  • 거래 횟수 - 표본이 30회 미만이면 통계적 의미가 약합니다

흔한 함정과 주의사항

백테스트에서 가장 많이 빠지는 함정은 과최적화(overfitting)입니다. 파라미터를 이리저리 바꿔서 과거 데이터에 완벽하게 맞춘 전략은 미래에는 거의 작동하지 않습니다.

대표적인 실수들

  • 미래 데이터 참조 - 종가가 결정된 시점에 종가로 매수하는 식의 비현실적 가정
  • 생존편향 - 상장폐지된 종목을 빼고 검증해 수익률이 부풀려지는 현상
  • 거래 비용 누락 - 수수료, 세금, 슬리피지를 0으로 가정
  • 샘플 외 검증 부재 - 학습 구간과 검증 구간을 분리하지 않음

이를 피하려면 데이터를 인샘플(In-Sample)아웃오브샘플(Out-of-Sample)로 7:3 정도 나눠서 검증하세요. 인샘플에서 만든 전략을 아웃오브샘플에서 다시 돌렸을 때도 비슷한 성과가 나오면 신뢰도가 높습니다. 또한 실시간 시장 흐름을 함께 모니터링하면서 백테스트 결과의 현재 유효성을 가늠하고 싶다면 오늘의단타 LIVE 같은 실시간 종목 흐름 페이지로 시장 톤을 확인하는 습관을 들이는 게 좋습니다.

실전 적용 체크리스트

지금까지의 내용을 본인 전략에 적용하려면 다음 항목을 점검하세요.

  • 매매 규칙이 한 문장으로 명확히 적혀 있는가
  • 최소 3년 이상의 데이터로 검증했는가
  • 수수료, 거래세, 슬리피지를 모두 반영했는가
  • MDD가 본인이 감내할 수 있는 수준인가
  • 거래 횟수가 30회 이상인가
  • 인샘플과 아웃오브샘플 결과가 비슷한가

오늘부터 할 일은 두 가지입니다. 첫째, 본인이 평소 쓰던 매매 규칙을 한 문장으로 적어보세요. 둘째, 무료 데이터인 FinanceDataReader와 엑셀만으로 가장 단순한 전략(예: 20일선 돌파 매수, 5% 익절/3% 손절)을 1년치라도 돌려보세요. 검증되지 않은 직감보다 숫자로 본 작은 결과가 훨씬 강력한 무기가 됩니다.

3일 무료체험큰손탐지기, 지금 바로 시작하세요

설치 없이 웹에서 바로 사용 가능 · PC & 모바일 지원

무료체험 시작
카카오톡 상담