과거 데이터 전체를 보면서 가장 좋은 이동평균 기간과 손절 폭을 골랐다면, 그 결과는 이미 답을 알고 푼 시험과 비슷합니다. 같은 데이터에서 다시 성과를 측정해도 전략이 새로운 시장 구간에서 작동하는지는 알 수 없습니다.
전진분석(Walk-forward Analysis)은 규칙을 선택한 구간과 확인할 구간을 분리하고, 이 과정을 시간 순서대로 반복하는 방법입니다. 목적은 실전 수익을 보장하는 것이 아니라, 과거에 맞춘 규칙이 새로운 구간에서 얼마나 달라지는지 확인하는 데 있습니다.
이 글의 핵심
- 표본 내 구간에서는 규칙과 변수 후보를 선택하고, 표본 외 구간에서는 선택을 바꾸지 않은 채 확인합니다.
- 전진분석은 한 번의 분할보다 선택·확인을 여러 시점에서 반복합니다.
- 표본 외 성과가 좋아도 미래 수익이 보장되지는 않습니다. 비용, 데이터 한계, 시장 구조 변화는 별도로 점검해야 합니다.
전진분석이 필요한 이유
백테스트에서 변수 조합을 여러 개 시험하면 가장 높은 결과가 하나는 나옵니다. 문제는 그 값이 전략의 원리보다 해당 기간의 우연한 가격 경로를 잘 맞췄을 수 있다는 점입니다.
예를 들어 10년 데이터 전체에서 가장 좋은 17일 이동평균선을 골랐다면, 17일이라는 값은 그 10년을 이미 본 뒤에 정한 값입니다. 그 결과를 같은 10년으로 다시 평가하면 선택 과정의 편향이 남습니다.
전진분석은 시간을 아래처럼 나눕니다.
| 구간 | 하는 일 | 바꾸면 안 되는 것 |
|---|---|---|
| 표본 내(In-sample) | 가설에 맞는 변수 후보와 규칙을 선택 | 표본 외 결과를 미리 보는 일 |
| 표본 외(Out-of-sample) | 선택한 규칙을 새 구간에 그대로 적용 | 결과가 나쁘다고 변수 재선택하는 일 |
| 다음 단계 | 시간 창을 앞으로 옮겨 다시 선택·확인 | 과거의 표본 외 결과를 선택 기준에 섞는 일 |
백테스트 결과를 믿기 전 확인할 3가지에서 다룬 과최적화는 이 구분 없이 최고 성과만 고를 때 특히 커집니다.
한 번의 분할과 전진분석은 무엇이 다른가
한 번의 표본 내·표본 외 분할도 기본 검증에 도움이 됩니다. 다만 시작점이 우연히 좋거나 나쁜 시장 국면에 걸리면 결과가 한 구간의 특성에 크게 흔들릴 수 있습니다.
전진분석은 선택과 확인을 여러 번 반복합니다.
과거 구간 A에서 규칙 선택 → 다음 구간 A에서 확인
과거 구간 B에서 규칙 선택 → 다음 구간 B에서 확인
과거 구간 C에서 규칙 선택 → 다음 구간 C에서 확인
각 확인 구간의 거래 내역을 시간 순서로 이어 보면, 과거의 정보만 사용해 전략을 갱신했을 때 어떤 경로가 나왔는지 살펴볼 수 있습니다. 여기서도 각 구간의 신호 시점, 체결 가격, 비용 가정은 같아야 합니다.
확장형과 롤링형 중 무엇을 쓸까
전진분석에는 대표적으로 두 가지 창 이동 방식이 있습니다.
| 방식 | 선택 구간 | 장점 | 주의할 점 |
|---|---|---|---|
| 확장형(Expanding) | 처음부터 현재까지 누적 | 긴 과거를 모두 사용해 추정이 덜 흔들릴 수 있음 | 오래된 시장 구조의 영향도 계속 남음 |
| 롤링형(Rolling) | 최근 일정 기간만 사용 | 최근 환경에 더 민감하게 반응 | 표본이 짧아져 변수 선택이 더 자주 흔들릴 수 있음 |
어느 방식이 항상 더 낫지는 않습니다. 전략이 긴 주기의 흐름을 이용하는지, 최근 변동성 변화에 민감한지, 재선택 비용을 감당할 수 있는지에 따라 선택이 달라집니다. 따라서 한 방식의 높은 수익률만 보여 주기보다, 변수 변경 횟수·거래 수·낙폭의 차이도 함께 기록해야 합니다.
전진분석에서 먼저 고정할 항목
전진분석은 매 구간마다 마음대로 전략을 고치는 작업이 아닙니다. 다음 항목을 먼저 문서로 고정해야 합니다.
- 대상 종목군과 데이터 처리 기준
- 신호 확정·주문·체결 시점
- 수수료·세금·슬리피지 같은 비용 가정
- 시험할 변수 범위와 후보 선택 기준
- 표본 내·표본 외 기간과 창을 움직이는 단위
- 표본 외 결과가 나쁜 경우에도 해당 구간의 기록을 보존하는 규칙
시스템 트레이딩 전략은 어떻게 만들까? 아이디어부터 검증까지 6단계의 표본 외 확인 단계도 이 원칙을 따릅니다. 순서를 고정하지 않으면 전진분석 결과도 사후 조정된 백테스트가 될 수 있습니다.
결과는 어떻게 읽어야 하는가
전진분석에서 한두 구간의 성과가 약하다고 바로 전략이 틀렸다고 결론낼 수는 없습니다. 반대로 모든 구간이 수익이라고 해도 미래에 같은 결과가 반복된다고 말할 수 없습니다.
대신 아래 질문을 함께 봅니다.
- 표본 외 구간에서 거래 수와 손실 규모가 예상 범위에서 크게 벗어났는가
- 선택 구간의 최고 변수와 표본 외에서 상대적으로 견딘 변수가 같은가
- 인접한 변수에서도 결과의 성격이 유지되는가
- 비용을 조금 높이거나 체결을 보수적으로 바꿔도 결론이 유지되는가
- 특정 시장 국면에서만 결과가 좋았는가
결과가 약한 구간은 숨길 실패가 아니라 전략의 적용 범위를 알려 주는 자료입니다. 그 이유를 가설, 데이터, 체결, 종목군 중 어디에서 다시 확인할지 기록하는 것이 전진분석의 목적에 가깝습니다.
실전 전 마지막 확인 항목
전진분석을 통과한 뒤에도 바로 자동 주문으로 넘어가지 않습니다. 신호와 체결이 실제 환경에서 일치하는지 모의 또는 작은 규모로 확인하고, 계획보다 큰 낙폭·데이터 오류·주문 오류가 생길 때 중지할 기준을 둬야 합니다.
자동매매 시작 전 준비할 3가지: 데이터·검증·주문 환경은 검증 결과를 주문 환경으로 옮길 때 분리해야 할 항목을 다룹니다. 포지션 사이징 계산법: 1% 룰을 적용하기 전에 알아야 할 것은 표본 외에서 확인한 손실 경로를 실제 거래 수량과 연결하는 출발점입니다.
이 글은 전진분석의 개념과 검증 절차를 설명하기 위한 교육용 자료입니다. 예시는 특정 종목의 매수·매도 추천이나 미래 수익을 의미하지 않으며, 실제 투자 판단과 책임은 투자자 본인에게 있습니다.