레버리지 ETF 백테스트 ETF·개별주 223종 · 전략 17종 백테스트
홈 › 가이드

백테스트가 좋게 나왔을 때 제일 먼저 해야 할 검증

2026-09-20 수정 · 약 6분

알림 — 이 글의 S1~S4·R1 같은 전략 이름은 연구 당시 이름이며, 지금 사이트의 전략 목록(A·D·B·G·I 계열)에는 없습니다. 현재 전략은 전략 설명에서 볼 수 있습니다.

백테스트를 돌려 좋은 숫자가 나왔습니다. 그 숫자를 믿어도 될까요.

이 글은 저희가 직접 만든 전략이 검증에서 어떻게 무너졌는지를 숨기지 않고 보여드립니다. 남의 전략을 비판하는 글보다 이쪽이 훨씬 쓸모 있을 겁니다.

문제의 전략

기준금리 국면별로 전략 성과를 재보니 패턴이 뚜렷했습니다. SOXL 2010~2026년 기준 연환산 수익률입니다.

인상기 유지기 인하기
S1 안정형 54.6% 39.6% 78.5%
S2 앙상블 24.7% 62.0% 197.8%

인상기에는 S1이, 나머지 국면에서는 S2가 이깁니다. 그러면 "인상기엔 S1, 나머지엔 S2"로 갈아타면 되겠네라는 생각이 자연스럽게 나옵니다. 그렇게 만든 게 R1입니다. (지금은 사이트에서 지운 전략입니다. 왜 지웠는지가 이 글의 내용입니다.)

결과는 훌륭했습니다.

CAGR 최대낙폭 칼마 손실 연도
R1 (국면 전환) 71.8% −23.9% 3.01 0
S2 고정 65.1% −42.9% 1.52 2
S1 고정 49.6% −21.9% 2.27 0
단순 보유 37.5% −87.9% — 5

수익률은 S2를 넘고 낙폭은 거의 반으로 줄었으며 손실 연도가 0입니다. 여기서 멈추면 훌륭한 전략을 발견한 겁니다.

첫 번째 확인: 미래를 보고 있지는 않은가

가장 먼저 의심해야 할 건 룩어헤드(미래참조) 입니다. 오늘 결정을 내릴 때 오늘 이후의 데이터를 쓰고 있지 않은지.

R1은 깨끗했습니다. 국면 판정은 "오늘 금리 vs 126거래일 전 금리"뿐이고, 전략들도 전일까지의 지표만 봅니다. 기술적으로는 아무 문제가 없습니다.

그런데도 이 전략은 믿을 수 없습니다. 이유가 다른 데 있기 때문입니다.

두 번째 확인: 언제 그 규칙을 정했는가

R1의 진짜 문제는 이것입니다. "인상기엔 S1"이라는 규칙을 2010~2026년 성적을 다 보고 나서 정했습니다. 2015년의 저는 그 규칙을 알 수 없었습니다.

이걸 인샘플 선택 편향이라고 합니다. 룩어헤드보다 잡아내기 어렵고 훨씬 흔합니다. 코드 어디를 봐도 미래 데이터를 읽는 줄이 없으니까요.

워크포워드 검증

제대로 확인하려면 이렇게 해야 합니다. 각 시점에서, 그 시점까지의 데이터만으로 규칙을 다시 고릅니다.

R1에 적용하면 이렇게 됩니다.

  1. 첫 번째 인상기가 시작됐다. 인상기 데이터가 아직 없다 → 기본값 S2
  2. 그 인상기가 끝났다. 성적을 기록한다
  3. 두 번째 인상기가 시작됐다. 지금까지의 인상기 성적만 보고 고른다
  4. 반복

결과입니다.

CAGR 최대낙폭 칼마
R1 (전체 구간 보고 고름) 71.8% −23.9% 3.01
워크포워드 67.5% −31.4% 2.15
S2 고정 65.1% −42.9% 1.52

R1, 워크포워드, S2 고정의 CAGR과 최대낙폭

이점의 대부분이 사라졌습니다. 그런데 더 중요한 건 숫자가 아니라 워크포워드가 실제로 무엇을 골랐는지입니다.

구간 시작 국면 선택
2015-12 인상기 S2
2016-12 인상기 S2
2017-12 인상기 S2
2022-03 인상기 S1

14개 구간 중 S1으로 바꾼 건 2022년 딱 한 번입니다. 그전까지는 인상기 표본이 2015년 하나뿐이었고, 그 한 번은 하필 S2가 이겼기 때문입니다.

즉 워크포워드 버전의 초과수익은 전부 결정 한 번에서 나옵니다. n=1짜리 근거입니다.

세 번째 확인: 학습/검증 분리

한 번 더 갈라봤습니다. 2010~2018년만 보고 규칙을 정한 뒤, 2019~2026년에 그대로 적용합니다.

학습 구간이 고른 인상기 전략은 S1이 아니라 D5였습니다. 그 규칙으로 2019년 이후를 돌리면:

검증 구간 (2019~2026) CAGR 최대낙폭
국면 전환 (학습기 선택) 109.3% −24.9%
S2 그냥 계속 보유 114.7% −26.3%

표본 밖에서는 아무것도 안 하는 편이 나았습니다.

네 번째 확인: 무작위와 비교

마지막으로, 스위칭 자체가 주는 효과와 금리 신호가 주는 효과를 갈라야 합니다. 같은 구간 경계에서 전략을 무작위로 배정해 200번 돌렸습니다.

금리 신호가 무작위보다는 낫습니다. 하지만 그 우위가 표본 4개에서 나온 것이라 통계적 근거로 삼기에는 약합니다.

무작위 전환 200회와 금리 신호 전략의 CAGR

그래서 어떻게 했나

R1과 R2를 사이트에서 지웠습니다. 한동안 "실험" 표시를 달아 남겨 둘까도 생각했지만, 결론이 분명했기 때문입니다. 좋아 보이는 숫자가 규칙을 고른 구간 안에서만 나오고, 그 우위의 근거가 인상기 에피소드 네 번뿐이라면, 그 전략은 앞으로도 통한다고 말할 근거가 없습니다. 지금까지의 결과와 이후의 결과가 다를 전략은 남겨 둘 이유가 없습니다.

그래서 지금 전략 목록에는 분할매수(A), 듀얼모드(D), SOXL 사다리(S), FAS 전용(F) 계열만 있습니다. 금리 국면으로 갈아타는 전략은 없습니다.

검증 과정을 지우지 않고 이렇게 글로 남겨 두는 이유는, 어떤 검증에서 무엇이 걸렸는지가 전략 자체보다 오래 쓸모 있기 때문입니다.

직접 해보실 수 있는 검증 네 가지

백테스트가 좋게 나왔을 때 순서대로 확인해 보세요.

  1. 규칙을 언제 정했는가. 결과를 보고 정한 규칙이면 그 결과는 근거가 아닙니다.
  2. 파라미터를 20%씩 흔들어 본다. 이웃 설정도 비슷하게 좋으면 구조가 있는 것이고, 딱 그 설정만 좋으면 과거 요철에 맞춘 것입니다. (좋은 파라미터는 고원 위에 있습니다)
  3. 기간을 갈라 본다. 앞쪽 절반으로 정하고 뒤쪽 절반에서 확인합니다. 이 사이트의 30개년 성적 버튼이 연도별로 갈라 주니 눈으로 확인하기 쉽습니다.
  4. 표본이 몇 개인지 센다. "인상기에 유효"라고 말하려면 인상기가 몇 번 있었는지 세어야 합니다. 4번이면 그건 관찰이지 통계가 아닙니다.

마지막으로

좋은 백테스트 결과를 만드는 건 쉽습니다. 파라미터를 충분히 많이 시도하면 아무 의미 없는 규칙도 좋아 보입니다. 어려운 건 그 결과를 스스로 깨뜨려 보는 일이고, 그걸 안 하면 실전에서 시장이 대신 해줍니다.

직접 돌려보기 분할매수 전략을 과거 데이터로 검증하고 수익률, 최대낙폭, 칼마 지수를 한 화면에서 비교합니다.