# 백테스트가 당신을 속이는 다섯 가지 방법 — 실제로 당한 사례만 모음
- 출처: FoldAlpha 리서치 (https://app.foldalpha.com/research/backtest-pitfalls) · 게시: 2026-09-01 · 시리즈: 통념 검증 11

백테스트 함정에 대한 글은 많다. 이 글이 다른 점은 하나다 — **전부 우리가 실제로 당한 사례**이고,
당시의 잘못된 숫자와 교정 후 숫자를 함께 적는다.

## 1. 룩어헤드 — 미래를 아는 백테스트

급등주 데이터를 검증하던 중, "급등 전날 종가에 진입"하는 백테스트가 20일 +9.4%p로 나왔다.
문제: 진입 조건에 "급등"이 포함돼 있었다. 급등 **전날**에 진입하려면 내일 급등할 것을 알아야 한다.
급등 조건을 빼고, 같은 전조(가격 +10%·거래량 2배 동반 상승)가 관측된 모든 시점으로 다시 돌리자 -3.7%p가 됐다.
**+9.4%p와 -3.7%p의 차이가 룩어헤드 하나의 크기다.** 급등주 필승법 백테스트의 상당수가 이 형태다.

## 2. 표본 불완전 — 데이터가 이미 편향된 경우

급등 종목을 수집하는 데 증권사 랭킹 API를 썼는데, 이 API는 **30건 고정 + 정렬 불량**이었다.
어떤 날은 급등주 26개 중 16개만 반환됐고, 누락된 종목들 때문에 그날의 "주도 테마" 판정 자체가
틀렸다. 전체 시세 데이터베이스 전수 스캔으로 바꾼 뒤에야 표본이 완전해졌다.
**백테스트 이전에, 유니버스가 완전한지부터 검증해야 한다.**

## 3. 단위 함정 — 조용히 1,000배 틀리는 경우

상장주식수 필드가 **천주 단위**인 것을 놓치고 유통물량을 계산해, 전 종목이 "품절주"로 판정된
적이 있다. 단위 오류는 예외를 던지지 않는다 — 그럴듯하게 틀린 숫자를 조용히 내놓는다.
시가총액이 억원인지 원인지, 수급이 백만원인지 원인지는 테이블마다 다르며, 이것은 문서가 아니라
**알려진 종목 하나로 교차 검증**해야 잡힌다 (삼성전자 상장주식수는 59억 주다. 591만이 나오면 천주다).

## 4. 사후 선택 — 연구자의 기억이 만드는 편향

5월에 오른 섹터를 보고 나서 그 섹터들로 전략을 만들고, 5월이 포함된 12년으로 백테스트해
+272%p 개선을 "확인"한 사례 — [별도 편](/research/backtest-self-deception)에서 전체를 부검했다.
연도별로 분해하자 개선분은 사실상 2023년 한 해였다. **장기 백테스트의 총수익은 기여의
시간 분포와 함께 봐야 한다.**

## 5. 다중검정 — 충분히 많이 던지면 뭐든 맞는다

파라미터 조합을 수십 개 시험하면 그중 몇 개는 반드시 좋아 보인다 (5% 유의수준에서
100개 중 5개는 우연만으로 통과한다). 우리가 쓰는 방어 규칙 두 가지:
시험한 변형의 **전체 목록**을 결과와 함께 보존할 것 (좋은 것만 남기지 않기),
그리고 **모든 백테스트 표시값의 50%를 기대값으로 병기**할 것 — 선택편향·생존편향·비용·레짐
의존을 뭉뚱그린 할인이다. 거칠지만, 이 할인을 견디는 전략만 배치한다.

## 요약

백테스트의 용도는 "된다"의 증명이 아니라 **"확실히 안 된다"의 배제**다.
이 시리즈의 기각 판정들이 채택 판정보다 신뢰할 수 있는 이유이기도 하다 —
위 함정들은 대부분 전략을 좋아 보이게 만드는 방향으로 작동하기 때문이다.

## 데이터 출처

- 자체 검증 파이프라인의 실제 사고·교정 기록 (2026-08)

---
본 글은 과거 데이터에 대한 검증 결과를 기록한 참고 정보이며, 투자 자문이나 특정 종목의 매매 권유가 아닙니다. 과거의 검증 결과가 미래의 수익을 보장하지 않습니다.