NOONOO TRADING무료 채팅방 입장

워크포워드 분석이란? 백테스트를 실전에 가장 가깝게 검증하는 절차

백테스트 수익 곡선이 우상향하면 전략이 검증된 것처럼 보입니다. 그런데 그 곡선은 대부분 답을 이미 본 상태에서 그린 것입니다. 워크포워드 분석은 답을 가린 채 같은 작업을 반복하는 절차입니다.

왜 백테스트 결과를 그대로 믿으면 안 되나

전략을 만들 때 우리는 거의 항상 같은 순서를 밟습니다. 과거 데이터를 열고, 규칙을 세우고, 결과가 나쁘면 이동평균 기간이나 손절 폭 같은 값을 바꿔 다시 돌립니다. 이 반복이 끝나면 수익 곡선이 예쁘게 나옵니다.

문제는 그 예쁜 곡선이 전략의 실력이 아니라 그 데이터에 대한 기억일 수 있다는 점입니다. 파라미터를 100번 바꿔 가장 좋은 하나를 고르면, 우연히 그 구간에만 맞는 값이 뽑힐 확률이 매우 높습니다. 이게 과최적화(커브피팅)이고, 백테스트의 가장 큰 함정입니다.

워크포워드 분석(Walk-Forward Analysis)은 이 문제를 절차로 막습니다. 핵심 규칙은 한 줄입니다.

파라미터를 정한 데이터로는 성과를 재지 않는다.

학습 구간(In-Sample) → 파라미터 결정에만 사용
검증 구간(Out-of-Sample) → 성과 측정에만 사용

두 구간은 절대 겹치지 않고, 검증 구간은 항상 학습 구간보다 에 있다.

단순 2분할로는 부족한 이유

흔한 방법은 데이터를 앞 70% · 뒤 30%로 한 번 자르는 것입니다. 앞에서 파라미터를 정하고 뒤에서 확인합니다. 이것만으로도 아무 검증 없는 백테스트보다는 훨씬 낫지만, 두 가지 구멍이 남습니다.

구멍 1 — 검증 구간이 한 개뿐입니다. 뒤 30%가 마침 상승장이었다면, 상승장에서만 되는 전략이 통과합니다. 표본이 하나면 운과 실력을 구분할 수 없습니다.

구멍 2 — 결국 검증 구간도 오염됩니다. 뒤 30%에서 성적이 나쁘면 대부분 앞으로 돌아가 파라미터를 다시 만집니다. 그 순간 뒤 30%는 더 이상 미검증 구간이 아닙니다. 답을 본 뒤 문제를 푼 것과 같습니다.

워크포워드는 이 분할을 여러 번, 시간 순서대로 반복해서 검증 구간 표본을 늘립니다.

절차 — 창을 밀면서 반복한다

2년치 데이터로 예를 들겠습니다. 학습 6개월, 검증 2개월, 2개월씩 앞으로 미는 구성입니다.

1회차 학습 1~6월  → 검증 7~8월
2회차 학습 3~8월  → 검증 9~10월
3회차 학습 5~10월 → 검증 11~12월
4회차 학습 7~12월 → 검증 13~14월
… 같은 방식으로 9회차까지

최종 성과 = 검증 구간 9개를 이어 붙인 수익 곡선

회차마다 파라미터는 그 회차의 학습 구간에서 새로 뽑습니다. 1회차에서 이동평균 20이 최적이었어도, 2회차 학습 구간에서 34가 최적이면 2회차 검증은 34로 돌립니다. 실전에서 주기적으로 재최적화하는 운영 방식을 그대로 흉내 내는 것입니다.

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

롤링(Rolling) — 학습 구간 길이를 고정하고 통째로 밉니다. 위 예시가 롤링입니다. 최근 시장 성격에 빠르게 적응하지만, 오래된 구간의 정보를 버립니다.

앵커드(Anchored) — 시작점을 고정하고 끝만 늘립니다. 1회차 1~6월, 2회차 1~8월, 3회차 1~10월 식입니다. 표본이 계속 쌓여 파라미터가 안정적이지만, 시장 구조가 바뀌었을 때 반응이 느립니다.

둘 중 뭐가 맞는지는 전략 성격에 달렸습니다. 다만 결과를 보고 유리한 쪽을 고르는 것은 그 자체가 최적화입니다. 어느 쪽을 쓸지는 돌리기 전에 정합니다.

구간 길이는 어떻게 정하나

정답은 없지만 실무 기준은 있습니다.

학습 구간은 파라미터를 뽑을 만큼 거래 수가 나와야 합니다. 학습 구간 거래가 20건이면 그 안의 최적값은 거의 의미가 없습니다. 최소 100건, 가능하면 200건 이상을 목표로 잡습니다.

검증 구간은 실전에서 재최적화할 주기와 맞춥니다. 한 달에 한 번 파라미터를 다시 볼 계획이면 검증 구간도 1개월입니다. 백테스트만 3개월 단위로 검증해 놓고 실전은 반년째 같은 값으로 돌리면, 검증한 것과 운영하는 것이 다른 물건이 됩니다.

회차 수는 최소 8~10회를 봅니다. 검증 표본이 서너 개면 여전히 운을 걸러내지 못합니다.

1분봉 단타 전략 (하루 3~5건)
학습 60일(약 250건) · 검증 20일 · 20일씩 롤링
2년 데이터 → 회차 약 33회

일봉 추세 전략 (월 2~3건)
학습 24개월(약 60건) · 검증 6개월 · 6개월씩 롤링
6년 데이터 → 회차 약 8회 — 데이터가 더 필요한 쪽

워크포워드 효율(WFE) — 통과선 읽는 법

워크포워드가 끝나면 숫자 두 개가 남습니다. 학습 구간 성과(최적화된 값)와 검증 구간 성과(실제 성적)입니다. 이 둘의 비율이 워크포워드 효율(Walk-Forward Efficiency)입니다.

WFE = 검증 구간 연환산 수익 ÷ 학습 구간 연환산 수익 × 100

학습 구간 연환산 +60% · 검증 구간 연환산 +21%
WFE = 21 ÷ 60 × 100 = 35%

WFE가 100%를 넘는 경우는 드물고, 넘었다면 검증 구간이 유난히 좋은 장이었을 가능성을 먼저 의심합니다. 실무에서 쓰이는 대략적인 눈금은 이렇습니다.

WFE 50% 이상 — 견고한 편. 실전 후보로 검토 가능
WFE 30~50% — 보통. 다른 지표와 같이 판단
WFE 30% 미만 — 학습 구간 성과 대부분이 커브피팅일 가능성
WFE 음수 — 검증 구간에서 손실. 폐기

다만 WFE 하나로 판정하지 않습니다. 더 중요한 것은 구간별 일관성입니다.

전략 A 검증 9회: +4 +3 +5 +2 +4 +3 +6 +2 +3 (합 +32%)
전략 B 검증 9회: +38 −3 −2 −4 +5 −2 −1 +2 −1 (합 +32%)

합계는 같지만 B는 1회차 한 번이 전부.
그 한 구간을 빼면 −6%. 실전에서 재현될 근거가 없다.

전략 A처럼 대부분 구간에서 조금씩 이기는 형태를 찾습니다. 총수익보다 플러스 구간 비율최대 낙폭을 먼저 봅니다. 성과 판정에 쓸 지표는 샤프지수프로핏 팩터를 같이 놓고 보는 편이 안전합니다.

파라미터가 회차마다 널뛰면 그것도 신호다

회차별로 뽑힌 최적 파라미터를 나열해 보는 것이 WFE 못지않게 유용합니다.

안정 회차별 이동평균 기간: 18 · 20 · 22 · 20 · 19 · 21 · 20 · 23 · 20
→ 20 근처에 실제 구조가 있을 가능성

불안정 회차별 이동평균 기간: 9 · 47 · 12 · 88 · 31 · 6 · 64 · 15 · 52
→ 매번 다른 답. 데이터의 잡음을 맞추고 있다는 뜻

불안정한 쪽은 검증 성적이 우연히 괜찮게 나와도 실전에 올리지 않습니다. 다음 재최적화에서 어떤 값이 뽑힐지 예측할 수 없고, 그건 전략을 운영하는 게 아니라 매달 새 전략을 뽑는 것입니다.

워크포워드를 해도 결과가 거짓이 되는 경우

절차를 지켜도 아래가 섞이면 결과는 무효입니다.

미래참조(Look-ahead) — 진입 시점에 알 수 없는 값이 조건에 들어간 경우입니다. 당일 종가로 계산한 지표로 당일 장중 진입을 판단하거나, 나중에 확정될 값을 진입 조건에 쓰면 검증 구간이라도 결과는 가짜입니다. 워크포워드는 파라미터 오염만 막지 데이터 오염은 막지 못합니다.

수수료·슬리피지 누락 — 단타일수록 치명적입니다. 왕복 0.1% 수수료를 빼먹고 하루 4회 매매하면 연 100회가 아니라 연 1,000회 이상 비용이 누락됩니다.

건당 평균 수익 +0.18% (수수료 제외)
왕복 수수료 0.10% · 슬리피지 0.04%

실제 건당 = 0.18 − 0.14 = +0.04%
거래 1,000건 기준
비용 반영 전 +180% → 반영 후 +40%
같은 전략, 같은 데이터, 결론만 다름

생존편향 — 지금 상장돼 있는 종목만 데이터에 넣으면, 상장폐지된 종목의 손실이 통째로 빠집니다. 알트코인 전략에서 특히 크게 작용합니다.

검증 구간을 본 뒤 재설계 — 가장 흔하고 가장 조용한 실수입니다. 워크포워드를 돌려 결과가 나쁘면 규칙을 고쳐 다시 돌립니다. 이걸 다섯 번 하면 검증 구간 전체가 사실상 학습 구간이 됩니다. 재설계 자체가 금지는 아니지만, 몇 번 다시 돌렸는지 기록하고 최종 판정은 아직 한 번도 쓰지 않은 최신 구간을 남겨 두고 합니다.

그래도 남는 한계

워크포워드를 통과했다고 실전 수익이 보장되지는 않습니다. 어떤 검증도 과거에 없던 시장은 시험하지 못합니다. 통과가 뜻하는 건 하나입니다 — "이 전략의 성과가 특정 구간에만 맞춘 결과는 아니다." 그 이상은 아닙니다.

그래서 마지막 단계는 항상 실거래가 아니라 페이퍼(모의) 운용입니다. 검증에서 나온 기대 성과와 실제 체결 결과를 몇 달 나란히 놓고, 차이가 설명되는지 봅니다. 여기서 벌어지는 차이는 대개 체결 가정과 비용에서 나옵니다. 백테스팅 절차자동매매 운영을 같이 정리해 두면 그 차이를 추적하기 쉬워집니다.

핵심 요약 3줄

① 워크포워드 분석은 학습 구간에서 파라미터를 정하고, 그 뒤 미검증 구간에서만 성과를 재는 절차를 창을 밀며 여러 번 반복하는 검증법이다. 검증 표본을 8~10회 이상 확보하는 것이 목적이다.
② 판정은 총수익이 아니라 구간별 일관성으로 한다. 한 구간이 전체 수익을 다 만들었거나 회차별 최적 파라미터가 널뛰면, 숫자가 좋아도 실전 후보가 아니다.
③ 절차를 지켜도 미래참조·수수료 누락·생존편향·검증 구간을 본 뒤의 재설계가 섞이면 결과는 무효다. 통과 뒤에도 페이퍼 운용으로 한 번 더 대조한다.

주의

본문의 구간 길이, WFE 기준값, 수익률·수수료 수치는 계산 구조와 판단 절차를 설명하기 위한 예시이며 특정 전략의 실측 성과가 아닙니다. 적정 구간 길이와 통과선은 전략의 매매 빈도·보유 기간·시장에 따라 달라지므로 그대로 적용할 값이 아닙니다. 어떤 검증 방법도 미래 수익을 보장하지 않으며, 레버리지 거래는 원금 전액을 잃을 수 있습니다. 투자 판단과 책임은 본인에게 있습니다.

NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.

무료 채팅방 입장 →

📈 OKX 신규 가입 시 거래 수수료 할인

OKX 수수료 할인 가입 →