과거 유사 국면 분석은 통하는가 — 직접 검증한 결과
"지금과 가장 닮은 과거를 찾아 그 다음에 무슨 일이 있었는지 본다." 그럴듯하다. 우리는 이걸 만들어서 검증했고, 결과는 좋지 않았다. 그 숫자를 그대로 공개한다.
방법
각 시점의 국면을 9개 수치로 압축한다. 20봉 모멘텀(ATR 단위), RSI(14), 변동성 분위, 밴드폭 분위, EMA50 이격(ATR 단위), EMA20 기울기(ATR 단위), 거래량 z, 20봉 양봉 비율, 52봉 레인지 위치.
전 구간에 대해 열별 z-score로 표준화하고 ±4로 클리핑한 뒤, 기준 시점 벡터와의 유클리드 거리로 가장 가까운 K개를 고른다. 중복 사건을 여러 번 세지 않도록 최소 15봉 간격을 강제한다.
검증에서 반드시 막아야 하는 세 가지 누출
1. 미래 유사국면. 후보를 고를 때 기준 시점 이후 구간이 섞이면 안 된다. 조건은 j + 지평선 ≤ 기준시점이다. 우리 코드도 처음엔 전체 배열 길이를 기준으로 걸러서 이 누출이 있었다. 라이브에서는 기준이 마지막 봉이라 무해했지만, 과거 시점 백테스트에서는 미래를 훔쳐본다.
2. 표준화 모수. z-score의 평균·표준편차를 전체 구간에서 계산하면 검증 구간 정보가 학습에 들어간다. 학습 구간만으로 계산해야 한다.
3. 기준선. 비교 대상인 무조건부 분포도 기준 시점까지로 제한해야 한다.
이 세 개를 막지 않으면 백테스트가 훌륭하게 나오고, 그 숫자로 상품을 만들게 된다.
측정 결과 — 방향 예측력 없음
8개 메이저 USDT 페어 일봉, 학습 60%/검증 40%(2023-07~2026-07), 왕복 비용 0.25%, K=24, 통합 8,107개 시점(중첩 보정 유효표본 813개).
| 항목 | 결과 | 판정 |
|---|---|---|
| 예측·실현 순위상관 | +0.0216 (z=0.62) | 유의하지 않음 |
| 5분위 캘리브레이션 | 단조성 없음 | 실패 |
| 상·하위 5분위 격차 | −1.56% (역전) | 실패 |
| 신호 롱 평균순익 | +0.29% | — |
| 무조건부 롱 (기준) | +0.60% | 신호가 오히려 해로움 |
| 신호 롱 t값 | 0.65 | 실패 |
가장 결정적인 것은 캘리브레이션 역전이다. 가장 강한 상승을 예측한 5분위(예측 평균 +4.72%)의 실제 결과는 +0.12%였고, 가장 강한 하락을 예측한 1분위(예측 평균 −4.04%)의 실제는 +1.69%였다. 지평선을 5봉·20봉으로 바꿔도 6개 기준 전부 실패했다.
구간(범위) 예보는 어땠나
방향이 아니라 변동폭이라면 사정이 낫다. 유사국면 분위로 만든 80% 구간의 실제 적중률은 75.5%(목표 80%)였고 50% 구간은 48.3%로 거의 정확했다.
다만 단순 기준선을 이기지 못했다. 최근 20봉 로그수익률 표준편차 × √기간으로 만든 정규 구간이 pinball 손실 2.354 대 2.436으로 더 좋았다. 9차원 k-NN 기계장치가 3줄짜리 계산보다 나은 게 없었다.
그래서 무엇에 쓸 수 있나
유사국면 조회는 맥락 파악용으로는 여전히 유용하다. "지금과 비슷했던 때가 2023-07-18, 2024-10-08이었고 결과는 각각 이랬다"는 사실 자체는 참고가 된다.
쓸 수 없는 것은 진입 신호다. 승률 63% 같은 숫자를 인샘플에서 뽑아 파는 서비스가 많지만, 우리 경험으로는 그 우위가 표본외에서 사라진다. 누가 이런 통계를 보여주면 학습/검증을 어떻게 나눴는지, 무조건부 기준선은 얼마인지를 물어보면 된다.
우리 판독 화면에는 이 검증 결과가 항상 함께 표시된다.
국면 스캐너 열기같이 읽을 문서
투자자문이 아니다. 이 문서와 서비스는 공개 시장 데이터에 대한 통계적 관측 방법을 설명하며, 특정 종목의 매수·매도를 권유하지 않는다. 제시된 수치는 거래비용·슬리피지를 포함한 측정 조건을 함께 밝혔으나, 미래 수익을 보장하지 않는다.