백테스트 표본이 작으면 결론이 뒤집힙니다 — 10종목 vs 2,632종목
10종목으로 확인했습니다. 36종목으로 늘리니 결론이 뒤집혔습니다
백테스트를 처음 돌리면 감동합니다. 숫자가 나오고, 승률이 찍히고, 결과가 플러스면 규칙을 찾은 것 같습니다.
그 감동은 종목 수를 늘리면 대부분 사라집니다.
미국에서 세 번 뒤집혔습니다
같은 규칙, 같은 기간. 종목 수만 바꿔가며 돌렸습니다.
```
10종목 → A방식이 제일 좋다
36종목 → B방식이 제일 좋다 (뒤집힘)
113종목 → C방식이 제일 좋다 (또 뒤집힘)
```
매번 "이번엔 찾았다" 싶었고 매번 틀렸습니다.
특히 두 가지가 소표본에서 좋아 보였다가 사라졌습니다. 조건을 더 빡빡하게 만든 방식과, 목표 수익을 크게 잡은 방식입니다. 둘 다 신호가 적어서 우연히 좋아 보였을 뿐이었습니다.
한국에서 또 반복됐습니다
이번엔 더 극적이었습니다.
| 대상 종목 | 결과 | 판정 |
|---|---|---|
| 80종 | +0.124 | 통과 |
| 473종 | +0.147 | 통과 |
| 2,632종 (전체) | −0.074 | 실패 |
두 번 연속 "통과"가 나왔습니다. 두 번 다 앞뒤 기간을 갈라서 확인까지 했습니다. 그런데 전체를 넣자 플러스가 마이너스로 바뀌었습니다.
왜 소표본은 거짓말을 하나
첫째, 우연이 결론을 만듭니다.
이 규칙은 열 번 중 예닐곱 번 집니다. 수익의 대부분이 소수의 큰 수익에서 나옵니다. 그러니 그 몇 개가 표본에 들어왔느냐 아니냐로 결과가 완전히 달라집니다.
100번 매매한 결과는 실력이 같아도 크게 흔들립니다. 동전을 100번 던져 앞면이 42번 나올 수도, 58번 나올 수도 있는 것과 같습니다.
둘째, 종목을 고르는 순간 편향이 들어갑니다.
"대형주 80종"이라고 하면 공정해 보입니다. 그런데 그 80종은 오늘 시점에서 고른 것입니다. 지금 대형주라는 건 지난 10년을 잘 버텼다는 뜻입니다. 그 사이 망하거나 쪼그라든 종목은 애초에 후보에 없었습니다.
셋째, 기간이 치우칩니다.
한국 첫 검증은 앞 구간에 97건, 뒤 구간에 477건이었습니다. 그 97건이 전부 하락장에 몰려 있었습니다. 표본이 작으면 특정 시기만 담깁니다.
판별하는 방법
매번 다 돌려볼 수는 없습니다. 대신 신호를 알아두면 됩니다.
표본을 넓혔는데 성적이 나빠지면 — 원래 성적이 가짜였을 가능성이 큽니다.
>
표본을 좁혔더니 성적이 좋아지면 — 실력이 아니라 편향을 보고 있는 것입니다.
건강한 규칙은 표본을 늘려도 크게 안 변합니다. 미국 규칙은 113종에서 503종으로, 10년에서 20년으로 늘려도 결과가 비슷한 범위에 머물렀습니다.
몇 개면 충분한가
정해진 숫자는 없지만, 겪어본 바로는 이렇습니다.
- 매매 횟수가 아니라 종목 수를 세십시오. 매매가 8,000건이어도 종목이 80개면 소표본입니다.
- 앞뒤 구간에 각각 수백 건은 있어야 세부 판정을 믿을 만합니다.
- "사건"을 세는 검증은 더 조심해야 합니다. 10년에 약세장이 세 번뿐이면, 매매가 만 건이어도 사건 표본은 3입니다.
가장 중요한 것
숫자보다 뒤집힌 이력을 남겨두는 것입니다.
한국 검증에서 처음 두 번의 결과를 어디에도 적어두지 않았습니다. 코드에 "이 시장은 검증됨"이라는 메모 한 줄만 있었습니다. 몇 주 뒤 다시 봤을 때 그 판단의 근거가 무엇이었는지 확인할 방법이 없었습니다.
"통과"라는 두 글자만 남기면 나중에 자기 자신에게 속습니다. 몇 종목으로, 몇 년치로, 어떻게 나눠서 쟀는지를 숫자와 함께 남겨야 합니다. 그래야 표본을 늘렸을 때 무엇이 바뀌었는지 비교할 수 있습니다.
직접 확인할 때 쓰는 점검표
남이 보여준 백테스트든 자기가 돌린 것이든, 아래 다섯 가지만 물어봐도 대부분 걸러집니다.
1. 몇 종목으로 쟀는가
매매 횟수가 아니라 종목 수를 물어야 합니다. "8,000건 검증"이라고 해도 종목이 50개면 소표본입니다. 한 종목에서 160번 매매한 것과 800종목에서 10번씩 매매한 것은 전혀 다릅니다.
2. 그 종목 목록은 언제 정했는가
"오늘 기준 시가총액 상위 100종"으로 10년 전부터 검증했다면 이미 답이 정해진 계산입니다. 10년 전에는 그 목록을 알 수 없었습니다.
3. 기간을 나눠서 확인했는가
앞 기간에서 만들고 뒤 기간에서 확인했는지 물어야 합니다. 전체 기간을 한 번에 돌려서 좋은 결과가 나온 것은 시험 문제를 보고 답을 맞춘 것과 같습니다.
4. 수수료와 세금을 넣었는가
빼고 계산하면 대부분의 규칙이 플러스로 나옵니다. 특히 매매가 잦은 방식일수록 비용을 넣는 순간 무너집니다. 한국 주식은 매도 시 거래세가 있어서 차이가 더 큽니다.
5. 실패한 시도는 몇 개였는가
스무 가지를 시도해서 하나가 통과했다면, 그 하나는 우연일 가능성이 큽니다. 몇 개를 시도했는지 밝히지 않는 검증 결과는 신뢰하기 어렵습니다.
표본이 부족할 때 할 수 있는 것
종목이나 기간을 마음대로 늘릴 수 없는 경우도 많습니다. 한국 시장은 미국보다 상장 종목이 적고 데이터 기간도 짧습니다.
그럴 때는 결론을 미루는 것이 가장 정직한 선택입니다.
"아직 모른다"와 "안 통한다"는 다릅니다. 표본이 부족하면 둘 다 결론 내릴 수 없습니다. 이 상태에서 억지로 판단하면, 나중에 표본이 쌓였을 때 이미 그 판단 위에 여러 결정이 쌓여 있어서 되돌리기 어려워집니다.
저희는 한국 종목 알림을 껐습니다. "안 된다"고 판단해서가 아니라 "아직 모른다" 이기 때문입니다. 근거가 생기면 다시 켜면 됩니다.
*이 글의 수치는 실제 검증 결과입니다. 과거 성과가 미래를 보장하지 않으며, 투자 판단과 책임은 본인에게 있습니다.*
- 첫 댓글을 남겨보세요.
연금·절세·ETF·노후 설계 자료와 새 계산기 소식을 이메일로 보내드립니다. 광고성 메일은 보내지 않습니다.