왜 필요한가: 과최적화 문제
백테스트에서 이동평균 기간이나 손절 비율 같은 설정값을 바꿔 가며 가장 성과가 좋은 조합을 고르면, 그 조합은 그 기간의 우연한 흐름까지 외운 결과일 수 있습니다. 이를 과최적화(overfitting, 커브 피팅)라고 합니다. 같은 데이터로 설정을 고르고 같은 데이터로 평가했기 때문에 성과가 부풀려 보이는 것입니다.
워크포워드 분석은 설정을 고르는 데이터와 평가하는 데이터를 분리해서 이 문제를 점검합니다.
업데이트
워크포워드 분석(Walk-Forward Analysis)은 데이터를 학습 구간과 검증 구간으로 나눠, 학습 구간에서 고른 설정이 처음 보는 검증 구간에서도 성과를 유지하는지 시간순으로 반복해 확인하는 검증 방법입니다. 과최적화를 점검하는 데 쓰입니다.
백테스트에서 이동평균 기간이나 손절 비율 같은 설정값을 바꿔 가며 가장 성과가 좋은 조합을 고르면, 그 조합은 그 기간의 우연한 흐름까지 외운 결과일 수 있습니다. 이를 과최적화(overfitting, 커브 피팅)라고 합니다. 같은 데이터로 설정을 고르고 같은 데이터로 평가했기 때문에 성과가 부풀려 보이는 것입니다.
워크포워드 분석은 설정을 고르는 데이터와 평가하는 데이터를 분리해서 이 문제를 점검합니다.
전체 기간을 여러 개의 창(window)으로 나누고, 각 창을 두 부분으로 쪼갭니다. 앞부분은 설정값을 탐색하는 학습 구간(In-Sample, IS), 뒷부분은 학습에서 고른 설정을 그대로 적용해 보는 검증 구간(Out-of-Sample, OOS)입니다. 검증 구간의 데이터는 설정을 고를 때 전혀 사용되지 않습니다.
한 창이 끝나면 창을 시간순으로 앞으로 밀어 같은 과정을 반복합니다. 마지막에는 모든 검증 구간의 결과를 모아 전체 성과를 봅니다. 이름의 '워크포워드'는 이렇게 시간을 따라 앞으로 걸어가며(walk forward) 시험한다는 뜻입니다.
창을 미는 방식은 두 가지입니다.
10년(약 2,520거래일) 데이터를 학습 3년, 검증 1년으로 롤링하면 첫 창은 1~3년차 학습 + 4년차 검증, 다음 창은 2~4년차 학습 + 5년차 검증이 됩니다. 이렇게 (10 − 3) ÷ 1 = 7개의 검증 구간이 만들어지고, 4년차부터 10년차까지의 검증 결과가 이어집니다.
학습 비중을 키우면 설정을 고를 데이터는 늘지만 검증 구간이 짧아져 결과의 잡음이 커집니다. 검증 구간이 너무 짧으면 거래가 거의 없어 평가 자체가 불안정해지므로, 검증 구간에도 의미 있는 거래 수가 나오도록 길이를 잡아야 합니다.
워크포워드 결과에서 보는 핵심은 학습 구간 성과와 검증 구간 성과의 차이입니다.
워크포워드를 통과했다고 미래에도 작동한다는 뜻은 아닙니다.
널스탁은 이미 만든 전략에 대해 최적화할 설정값의 범위, 구간 길이와 학습 비중, 롤링·확장 방식을 정해 워크포워드 분석을 실행할 수 있습니다(구간 수는 이 설정으로 계산되어 표시됩니다). 결과는 구간별 학습·검증 성과와 성과 유지 비율로 표시되며, 과거 데이터에서의 관측을 서술할 뿐 미래 성과를 예측하지 않습니다.
떠오른 전략 아이디어를 문장으로 입력하면 과거 데이터로 백테스트해 볼 수 있습니다.
전략 백테스트하기이 가이드는 투자 연구에 필요한 개념과 계산 방법을 설명하는 교육 자료입니다. 특정 종목·전략의 매수·매도를 권유하거나 미래 수익을 예측하지 않으며, 백테스트 결과는 과거 데이터 기반 시뮬레이션이므로 미래 수익은 보장되지 않습니다.