워크포워드 분석이란? 백테스트 과최적화를 점검하는 방법

업데이트

워크포워드 분석(Walk-Forward Analysis)은 데이터를 학습 구간과 검증 구간으로 나눠, 학습 구간에서 고른 설정이 처음 보는 검증 구간에서도 성과를 유지하는지 시간순으로 반복해 확인하는 검증 방법입니다. 과최적화를 점검하는 데 쓰입니다.

왜 필요한가: 과최적화 문제

백테스트에서 이동평균 기간이나 손절 비율 같은 설정값을 바꿔 가며 가장 성과가 좋은 조합을 고르면, 그 조합은 그 기간의 우연한 흐름까지 외운 결과일 수 있습니다. 이를 과최적화(overfitting, 커브 피팅)라고 합니다. 같은 데이터로 설정을 고르고 같은 데이터로 평가했기 때문에 성과가 부풀려 보이는 것입니다.

워크포워드 분석은 설정을 고르는 데이터와 평가하는 데이터를 분리해서 이 문제를 점검합니다.

기본 개념: 학습 구간과 검증 구간

전체 기간을 여러 개의 창(window)으로 나누고, 각 창을 두 부분으로 쪼갭니다. 앞부분은 설정값을 탐색하는 학습 구간(In-Sample, IS), 뒷부분은 학습에서 고른 설정을 그대로 적용해 보는 검증 구간(Out-of-Sample, OOS)입니다. 검증 구간의 데이터는 설정을 고를 때 전혀 사용되지 않습니다.

한 창이 끝나면 창을 시간순으로 앞으로 밀어 같은 과정을 반복합니다. 마지막에는 모든 검증 구간의 결과를 모아 전체 성과를 봅니다. 이름의 '워크포워드'는 이렇게 시간을 따라 앞으로 걸어가며(walk forward) 시험한다는 뜻입니다.

롤링과 확장(앵커드)

창을 미는 방식은 두 가지입니다.

  • 롤링(Rolling): 학습 구간의 길이를 고정한 채 창 전체를 앞으로 이동합니다. 오래된 데이터는 점차 학습에서 빠지므로, 최근 데이터에 더 민감합니다.
  • 확장(Anchored, Expanding): 학습 구간의 시작을 고정하고 끝만 늘려 갑니다. 갈수록 학습 데이터가 쌓이므로 더 많은 데이터를 쓰지만 오래된 구간의 영향이 남습니다.

구간 나누기 예시

10년(약 2,520거래일) 데이터를 학습 3년, 검증 1년으로 롤링하면 첫 창은 1~3년차 학습 + 4년차 검증, 다음 창은 2~4년차 학습 + 5년차 검증이 됩니다. 이렇게 (10 − 3) ÷ 1 = 7개의 검증 구간이 만들어지고, 4년차부터 10년차까지의 검증 결과가 이어집니다.

학습 비중을 키우면 설정을 고를 데이터는 늘지만 검증 구간이 짧아져 결과의 잡음이 커집니다. 검증 구간이 너무 짧으면 거래가 거의 없어 평가 자체가 불안정해지므로, 검증 구간에도 의미 있는 거래 수가 나오도록 길이를 잡아야 합니다.

결과 읽는 법

워크포워드 결과에서 보는 핵심은 학습 구간 성과와 검증 구간 성과의 차이입니다.

  • 검증 구간 성과: 학습에서 고른 설정이 처음 보는 데이터에서 어떤 성과를 냈는지 보여 줍니다. 전체 기간 최적화 결과보다 보수적으로 나오는 것이 일반적입니다.
  • 성과 유지 비율(WFE): 학습 구간 성과 대비 검증 구간 성과의 비율입니다. 비율이 1에 가까울수록 학습 성과가 검증에서도 유지됐다는 뜻이고, 크게 낮으면 학습 구간에만 맞춘 설정일 가능성을 시사합니다.
  • 구간별 편차: 일부 검증 구간에서만 성과가 좋고 나머지는 부진하다면, 특정 시기에만 작동한 규칙일 수 있습니다. 구간별 결과를 함께 확인합니다.
  • 선택된 설정의 안정성: 창마다 최적 설정값이 크게 달라진다면 설정이 데이터에 민감하다는 신호입니다.

워크포워드 분석의 한계

워크포워드를 통과했다고 미래에도 작동한다는 뜻은 아닙니다.

  • 검증 구간의 거래 수가 적으면 결과가 우연에 크게 좌우됩니다. 특히 짧은 검증 구간의 연환산 수익률(CAGR)은 잡음이 큽니다.
  • 워크포워드 설정을 바꿔 가며 반복해서 시도하면, 이번에는 그 반복 과정이 과최적화를 일으킵니다.
  • 학습·검증 구간 모두 과거 데이터이므로, 시장 구조가 바뀌는 상황까지 시험하지는 못합니다.

널스탁의 워크포워드 분석

널스탁은 이미 만든 전략에 대해 최적화할 설정값의 범위, 구간 길이와 학습 비중, 롤링·확장 방식을 정해 워크포워드 분석을 실행할 수 있습니다(구간 수는 이 설정으로 계산되어 표시됩니다). 결과는 구간별 학습·검증 성과와 성과 유지 비율로 표시되며, 과거 데이터에서의 관측을 서술할 뿐 미래 성과를 예측하지 않습니다.

자주 묻는 질문

워크포워드 분석이란 무엇인가요?
데이터를 학습 구간과 검증 구간으로 나눠, 학습 구간에서 고른 설정이 처음 보는 검증 구간에서도 성과를 유지하는지 시간순으로 반복해 확인하는 검증 방법입니다.
롤링과 확장(앵커드) 방식은 어떻게 다른가요?
롤링은 학습 구간의 길이를 고정한 채 창 전체를 앞으로 옮기고, 확장은 학습 구간의 시작을 고정하고 끝만 늘려 갑니다. 롤링은 최근 데이터에 더 민감하고, 확장은 더 많은 데이터를 쓰지만 오래된 구간의 영향이 남습니다.
워크포워드 분석을 통과하면 미래에도 작동하나요?
그렇지 않습니다. 학습·검증 구간 모두 과거 데이터이고, 설정을 바꿔 가며 반복 시도하면 그 과정이 다시 과최적화를 일으킬 수 있습니다.

떠오른 전략 아이디어를 문장으로 입력하면 과거 데이터로 백테스트해 볼 수 있습니다.

전략 백테스트하기

이 가이드는 투자 연구에 필요한 개념과 계산 방법을 설명하는 교육 자료입니다. 특정 종목·전략의 매수·매도를 권유하거나 미래 수익을 예측하지 않으며, 백테스트 결과는 과거 데이터 기반 시뮬레이션이므로 미래 수익은 보장되지 않습니다.