본문으로 건너뛰기
ModuQuant
알고리즘 투자 기초

백테스트가 속이는 5가지 함정

미래 정보·생존 편향·과최적화·비용과 세금·짧은 기간 — 각각 어떻게 숫자를 부풀리고 어떻게 막는가

약 5분 소요 · 최종 정리 2026-10-19

읽은 내용을 바로 확인해 보세요알고리즘 직접 시험 →실전 기록

백테스트는 규칙을 과거 자료에 적용해 보는 실험입니다. 그런데 실험 방법이 조금만 잘못돼도 숫자는 실제보다 훨씬 좋아 보입니다. 이 글은 가장 흔한 다섯 가지 함정이 어떻게 수익을 부풀리는지, 그리고 어떻게 막는지를 정리합니다.

1. 미래 정보(룩어헤드) — 그때는 몰랐던 것을 쓴다

가장 흔하고 가장 치명적인 실수입니다. 판단하는 순간에는 알 수 없던 자료를 판단에 쓰면, 백테스트는 미래를 아는 사람의 성적이 됩니다.

흔한 형태왜 문제인가바른 처리
월말 종가로 판단하고 같은 종가에 산다종가는 장이 끝나야 확정된다 — 그 가격에 살 수 없다판단은 그날 종가로, 체결은 다음 거래일
연간 재무제표를 1월부터 쓴다사업보고서는 이듬해 3월 이후 공시된다공시일 이후에만 사용
연말 PER·PBR 을 1년 내내 쓴다가격이 바뀌면 PER·PBR 도 바뀐다리밸런싱 시점 주가로 다시 계산
전체 기간의 평균·표준편차로 정규화미래 구간의 통계가 과거 판단에 섞인다그 시점까지의 자료로만 계산

모두퀀트 엔진은 월말에 판단하고 다음 거래일에 체결하며, PER·PBR 을 리밸런싱 시점 종가로 다시 계산합니다. 이 두 가지를 고쳤을 때 일부 카드의 연 수익률이 크게 낮아졌습니다 — 그만큼 이 함정이 숫자를 부풀립니다.

2. 생존 편향 — 살아남은 종목만 본다

지금 코스피200 에 있는 종목으로 10년 전을 계산하면, 그 사이 상장폐지되거나 지수에서 빠진 종목이 사라집니다. 남은 것은 살아남아 커진 종목뿐이라 결과가 좋아 보입니다.

바른 처리는 매달 그 시점에 실제로 지수에 속해 있던 종목 안에서만 고르는 것입니다. 「대형주 1·2위」 같은 규칙도 지금의 삼성전자·SK하이닉스가 아니라 그 시점의 1·2위를 써야 합니다.

시가총액을 계산할 때 액면분할을 반영하지 않으면 분할 전 종목의 시가총액이 수십 분의 일로 잡혀 순위가 왜곡됩니다(예: 2018년 분할 전 삼성전자). 생존 편향과 비슷한 종류의 자료 함정입니다.

3. 과최적화 — 수백 번 시도한 뒤 가장 좋은 것을 고른다

이동평균 기간을 5일부터 200일까지, 종목 수를 5개부터 30개까지 바꿔 보면 조합이 수천 개 나옵니다. 그중 가장 좋은 조합은 우연히 과거에 맞춰졌을 가능성이 큽니다. 동전을 1,000번씩 던지는 사람 100명 중 1등은 실력이 아니라 운입니다.

알아보는 신호

  • 조건을 조금만 바꿔도(20일선 → 22일선) 결과가 크게 달라진다
  • 규칙에 예외가 많다(「단, 반도체는 제외」, 「2020년 3월은 빼고」)
  • 규칙이 왜 통하는지 설명할 수 없다
  • 공개 이후 실제 기록이 백테스트보다 크게 나쁘다

막는 방법

  • 조건을 바꿔 보는 민감도 분석 — 옆 숫자에서도 비슷해야 한다
  • 시도 횟수를 감안해 샤프 지수를 깎는 보정 샤프(Deflated Sharpe)
  • 규칙을 정한 뒤의 기간으로 확인하는 표본 외 검증과 실전 기록
  • 규칙을 단순하게 — 조건이 적을수록 우연히 맞출 여지가 줄어든다

자세한 방법은 강건성 검증에 있습니다.

4. 비용·세금·환율 누락

수수료·호가 차이(슬리피지)·세금을 빼면 회전이 잦은 규칙일수록 실제보다 좋아 보입니다. 매달 종목을 절반씩 바꾸는 규칙은 1년에 원금의 몇 배를 거래하므로, 편도 0.15% 의 비용도 연 수익을 눈에 띄게 깎습니다.

항목모두퀀트 가정참고
거래비용편도 0.15%수수료 + 슬리피지 근사
국내 주식·국내 주식형 ETF 매매차익비과세대주주 요건 등 예외는 미반영
해외 주식·채권·금·원자재 ETF 매매차익15.4%손실 상계·분배금 과세는 미반영
미국 자산매달 원/달러 환율로 원화 환산실제 매수는 국내 상장 대체 ETF 기준

환율은 특히 중요합니다. 미국 자산을 담는 전략의 과거 우위에는 원화 약세 몫이 섞여 있을 수 있습니다. 한국 투자자 기준 계산을 함께 보세요.

5. 짧은 기간 — 한 번의 장세가 전부다

2~3년 결과는 한 번의 상승장이나 하락장에 좌우됩니다. 2020~2021 같은 강세장만 담긴 결과는 어떤 공격적인 규칙도 좋아 보이게 만듭니다.

  • 상승·하락·횡보장이 모두 들어간 긴 기간(가능하면 10년 이상)으로 본다
  • 기간을 앞 절반·뒤 절반으로 나눠 둘 다 이겼는지 본다
  • 3년씩 잘라 어느 시점에 시작했어도 비슷했는지 본다
  • 2018 무역분쟁·2020 코로나·2022 긴축 같은 위기 구간의 손실을 따로 본다

모두퀀트는 3년 미만 결과를 「판정 보류」로 두고, 기간을 나눈 결과를 같은 잣대 판정에 늘 함께 보여 줍니다.

6. 백테스트를 볼 때 체크리스트

  1. 판단 시점과 체결 시점이 분리돼 있는가(다음 거래일 체결)
  2. 그 시점의 종목 구성을 썼는가(상장폐지·지수 편출 포함)
  3. 거래비용·세금·환율이 들어 있는가
  4. 10년 안팎의 기간과 위기 구간이 들어 있는가
  5. 조건을 조금 바꿔도 결과가 비슷한가
  6. 규칙을 정한 뒤의 기록(실전 기록)이 있는가

자주 묻는 질문

Q. 백테스트 수익률이 아주 높으면 의심해야 하나요?

네. 연 30~50% 같은 숫자는 대부분 위 다섯 함정 중 하나 이상이 섞인 결과입니다. 판단·체결 시점, 종목 구성, 비용부터 확인하세요.

Q. 함정을 모두 피하면 백테스트를 믿어도 되나요?

「규칙을 전체 기간을 보고 골랐다」는 사후 지식은 남습니다. 그래서 강건성 검증과 공개 이후 실전 기록을 함께 봅니다.

이 글은 교육·검증용 정보이며 특정 종목·ETF 의 매수·매도를 권유하지 않습니다. 과거 성과는 미래 수익을 보장하지 않습니다.

알고리즘 투자 학습 센터 전체 목록