Walk-forward 검증은 과거에 만든 모델을 그보다 뒤의 기간에서 평가하는 절차입니다. 주식 데이터는 시간에 따라 구조가 바뀌므로 전체 기간을 무작위로 섞어 학습과 평가에 사용하면 미래 정보가 과거 판단에 스며들 수 있습니다.
Lee Trader의 walkforward_acceptance는 시간 순서를 지킨 성과, 위험, 신뢰도와 실제 실행 근거를 모아 운영 승격 가능성을 ACCEPTED, CONDITIONAL, REJECTED로 정리합니다. 이 판정은 종목 하나의 상승 여부가 아니라 시스템을 어느 강도로 사용할 수 있는지에 관한 운영 판단입니다.
일반적인 백테스트와 무엇이 다른가요?
일반 백테스트도 과거 성과를 확인하지만, 분석 과정에서 전체 기간을 반복해서 보며 가장 좋아 보이는 설정을 고르면 평가 구간까지 사실상 학습에 사용하게 됩니다. 결과는 좋아 보여도 실제 미래에는 재현되지 않을 수 있습니다.
Walk-forward 방식은 먼저 과거 구간으로 모델과 기준을 만들고 바로 다음 구간을 평가합니다. 이후 기준 시점을 앞으로 옮겨 같은 과정을 반복합니다.
과거 학습 구간 A → 미래 평가 구간 A
과거 학습 구간 B → 미래 평가 구간 B
과거 학습 구간 C → 미래 평가 구간 C실제 운영에서 시간이 흐르는 방식과 비슷하다는 장점이 있습니다. 대신 충분한 평가 구간이 쌓이려면 시간이 필요합니다.
acceptance가 확인하는 다섯 영역
현재 판정기는 60일 Top20 결과를 중심으로 다음 항목을 확인합니다.
1. 시장 대비 성과
Top20의 평균 초과수익이 양수이고 적중률이 일정 수준 이상인지 봅니다. 현재 기준은 초과수익 양수와 적중률 55% 이상입니다.
한 번의 큰 수익이 평균을 끌어올릴 수 있으므로 이 조건 하나만으로 ACCEPTED가 되지는 않습니다.
2. 순위의 일관성
Top20 평균 수익이 Top50보다 높고, Top50이 전체 종목군보다 높은 순서를 보이는지 확인합니다.
Top20 > Top50 > 전체 종목군상위 후보를 고르는 점수라면 더 높은 순위의 집단이 일관되게 더 좋은 결과를 보여야 합니다. Top50이 Top20보다 좋다면 최상위 선별의 구분력이 충분하지 않을 수 있습니다.
3. 최대낙폭
Top20의 평균 최대낙폭이 허용 범위 안인지 봅니다. 현재 판정 기준은 -25%보다 깊지 않은 것입니다.
평균 수익이 좋아도 중간 하락이 지나치게 크면 실제 운용에서 유지하기 어렵습니다. 수익과 위험을 함께 보는 이유입니다.
4. 신뢰도 단조성
신뢰도 점수 구간이 높아질수록 실제 적중률도 높아지는지 확인합니다. 표본이 충분한 안정 구간이 두 개 이상 있어야 하며, 적중률이 순서대로 증가해야 합니다.
신뢰도 80이 신뢰도 60보다 실제로 나쁘다면 그 숫자를 주문 강도나 사용자 설명에 그대로 쓰기 어렵습니다.
5. 실제 실행 가능성
실제 주문 자료가 있으면 체결률과 슬리피지를 확인합니다. 현재 기준은 체결률 60% 이상이고 중앙 절대 슬리피지가 존재할 경우 3% 이하입니다.
실행 자료가 아직 없으면 이 항목만으로 실패시키지는 않지만, ACCEPTED 해석에는 실제 체결 근거가 많을수록 좋습니다.
세 가지 판정의 의미
ACCEPTED는 성과, 순위 일관성, 위험, 신뢰도, 실행 조건이 모두 기준을 통과한 상태입니다. 미래 수익을 보장한다는 뜻은 아니지만 운영 승격을 검토할 최소 근거가 갖춰졌다는 의미입니다.
CONDITIONAL은 성과와 기본 위험 조건은 일부 확인됐지만 다른 항목이 부족한 상태입니다. 제한된 pilot이나 관찰은 가능하더라도 전면 BUY_ALLOWED로 해석하기 어렵습니다.
REJECTED는 현재 자료에서 정식 승격 근거가 부족하다는 뜻입니다. 모델 전체가 영구적으로 실패했다는 의미는 아닙니다. 표본 부족, 순위 불안정, 큰 낙폭, 신뢰도 불일치 중 무엇이 원인인지 확인하고 추가 데이터를 기다려야 합니다.
2026년 6월 22일 운영 스냅샷
현재 공개 문서를 보강한 시점의 outputs/walkforward_acceptance.json 상태는 REJECTED입니다. 이 결과를 숨기지 않고 이유를 함께 기록합니다.
- Top20의 60일 시장 대비 초과수익은 양수
- Top20 적중률은 기준을 통과
- Top50 평균 수익이 Top20보다 높아 순위 순서가 안정적이지 않음
- Top20 평균 최대낙폭이 -27.11%로 -25% 기준보다 깊음
- 안정 신뢰도 구간은 3개지만 적중률이 단조 증가하지 않음
- 실제 실행 근거는 아직 판정 가능한 수준으로 준비되지 않음
- 60일 평가 run은 1개뿐이라 표본이 매우 적음
Top20 평균 수익이 34.13%, 초과수익이 6.38%였다는 숫자만 보면 좋아 보입니다. 그러나 Top50 평균은 36.72%로 더 높았고 Top20 평균 낙폭도 컸습니다. 좋은 수익 숫자 하나만 선택해 시스템이 검증됐다고 말할 수 없는 이유입니다.
이 수치는 2026년 6월 22일 산출물의 스냅샷이며 이후 만기 데이터가 추가되면 바뀔 수 있습니다. 최신 상태는 운영 산출물을 다시 계산해 확인해야 합니다.
REJECTED인데 모델을 계속 쓰는 이유
검증 실패와 모든 데이터 활용 중단은 같은 뜻이 아닙니다. 모델 점수는 후보를 정리하고 연구 표본을 축적하는 데 사용할 수 있습니다. 다만 점수를 강한 매수 허용 근거로 승격하지 않고 WATCH, PAPER 또는 제한된 범위로 다룹니다.
Lee Trader는 모델 예측, 정책 상태, 주문과 실제 체결을 분리해 기록합니다. REJECTED 상태에서도 어떤 후보가 이후 어떻게 움직였는지 관찰해야 다음 검증 구간이 생깁니다.
반대로 REJECTED라는 이유로 즉시 가중치와 기준을 바꾸면 현재 한 개뿐인 평가 run에 과도하게 맞출 위험이 있습니다. 원인을 기록하고 독립된 후속 구간을 기다리는 것이 우선입니다.
표본 수가 왜 중요한가요?
한 번의 60일 평가 구간은 특정 시장 국면의 영향을 크게 받습니다. 강한 상승장에서는 대부분의 종목이 올라 상위 선별의 실력을 구분하기 어렵고, 급락장에서는 좋은 후보도 큰 낙폭을 겪을 수 있습니다.
여러 시작일과 상승·중립·방어 국면이 쌓여야 결과가 반복되는지 확인할 수 있습니다. 평균뿐 아니라 중앙값, 최악 구간, 회전율과 비용도 봐야 합니다.
표본이 적을 때 가장 위험한 행동은 좋은 숫자만 홍보하거나 나쁜 숫자에 맞춰 즉시 공식을 바꾸는 것입니다. 둘 다 다음 기간의 재현성을 떨어뜨릴 수 있습니다.
acceptance와 BUY_ALLOWED의 관계
Walk-forward acceptance는 운영 gate의 중요한 입력입니다. 상태가 CONDITIONAL 또는 REJECTED이면 일반적인 BUY_ALLOWED 승격이 제한되고 WATCHLIST나 PAPER_ONLY가 유지될 수 있습니다.
하지만 ACCEPTED만으로 개별 주문이 자동 생성되는 것은 아닙니다. 시장 상태, 데이터 신선도, 종목별 진입 품질, 계좌 현금과 한도, 중복 주문 검사를 추가로 통과해야 합니다.
상태 차이는 WATCHLIST와 BUY_ALLOWED 설명에서 자세히 볼 수 있습니다.
검증 기준도 과적합될 수 있습니다
결과를 본 뒤 적중률 기준을 낮추거나 낙폭 기준을 넓히면 어떤 모델도 통과시킬 수 있습니다. 기준은 평가 전에 정하고 변경 이유와 버전을 기록해야 합니다.
현재 acceptance 조건도 완벽한 기준은 아닙니다. 특정 수치의 선택 근거와 시장 국면별 적절성은 더 많은 운영 데이터로 재검토해야 합니다. 다만 기준이 불완전하다는 이유로 매번 임의로 바꾸는 것보다 일관되게 기록하는 편이 분석에 유리합니다.
독자가 기억할 점
ACCEPTED는 수익 보증서가 아니며 REJECTED는 모든 예측이 무가치하다는 판정도 아닙니다. acceptance는 현재 확보된 시간 분리 자료로 운영 강도를 높여도 되는지 평가하는 안전 장치입니다.
Lee Trader는 현재 모델이나 계산식 개선보다 관측과 원인 분석을 우선하고 있습니다. 충분한 60일 만기와 실제 체결 표본이 쌓일 때까지 현재 기준을 유지하고, 변경 후보는 실주문과 분리된 실험으로 먼저 검증합니다.
이 글은 검증 절차를 설명하는 정보 콘텐츠입니다. 과거 walk-forward 결과는 미래 성과를 보장하지 않으며 특정 종목의 매수·매도를 권유하지 않습니다.