Files
cointrader/docs/plans/2026-05-04-mtf-btc-filter-design.md
21in7 f53b8a5a0f research: MTF + BTC 추세 필터 백테스트 — FAIL, MTF 전략 최종 폐기
- 메인 가설(BTC 1h EMA50/200 ADX>20) OOS fees PF 0.90, 베이스라인(0.94)보다 악화
- 12개 sweep 조합 중 합격(fees PF>=1.2) 0개
- 761일 데이터로 전략 근본적 edge 부재 확인

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-04 09:24:45 +09:00

3.0 KiB
Raw Blame History

MTF + BTC 추세 필터 백테스트 설계

가설

BTC 추세 방향과 일치하는 MTF 풀백 시그널만 실행하면 비용 반영 후에도 PF > 1.2를 달성한다.

메인 가설 (사전 확정 — commitment device)

메인 가설은 sweep 결과를 보기 전에 BTC 1h + EMA 50/200 + ADX > 20으로 확정한다. sweep 12개 결과에서 가장 좋은 조합으로 사후 변경하지 않는다. 4h/1d 결과는 robustness 참고용이며, 메인 가설이 OOS 실패 시 "다른 조합이 됐으니 PASS"로 구제하지 않는다.

  • BTC 타임프레임: 1h
  • BTC EMA: fast=50, slow=200
  • BTC ADX 임계값: 20
  • 선택 근거: XRP MTF bot의 1h 메타필터와 동일 기준 → 시그널 정합성 확보, 사후 정당화 차단

필터 로직

BTC_trend = (BTC EMA_fast > BTC EMA_slow) AND (BTC ADX > 20)
    ? (EMA_fast > EMA_slow ? "UP" : "DOWN")
    : "NEUTRAL"

if BTC_trend == "UP":    SHORT 차단, LONG만 허용
if BTC_trend == "DOWN":  LONG 차단, SHORT만 허용
if BTC_trend == "NEUTRAL": 양방향 차단 (추세 불명확)

Sweep 파라미터 (robustness check용)

파라미터 후보 설명
BTC 타임프레임 1h, 4h, 1d BTC 추세 판단 주기
BTC EMA fast 20, 50 단기 EMA
BTC EMA slow 100, 200 장기 EMA

총 조합: 3 × 2 × 2 = 12개. ADX > 20은 전 조합 고정.

데이터

  • XRP: data/xrpusdt/combined_15m.parquet (기존)
  • BTC: data/btcusdt/combined_15m.parquet (fetch 필요)
  • 기간: 최소 6개월 (XRP와 동일 기간)
  • BTC 15m → 1h/4h/1d resample 후 EMA/ADX 계산
  • merge: merge_asof(direction="backward") — look-ahead bias 방지
  • fetch 후 XRP/BTC 첫/마지막 timestamp + bar 수 일치 검증 필수

IS/OOS 분할

  • 앞 70% IS, 뒤 30% OOS (단순 시간 분할)
  • ML 없고 sweep 12개뿐이므로 walk-forward 불필요

합격 기준

기준 비고
메인 가설 OOS fees_only PF >= 1.2 실거래 마진 확보
메인 가설 OOS realistic PF >= 1.0 슬리피지+펀딩 반영 후 흑자
LONG/SHORT 양쪽 fees_only PF >= 0.8 대칭성
OOS 거래 수 >= 50 통계적 유의성
IS/OOS PF 격차 < 30% 과적합 방지
베이스라인 대비 OOS PF 명확한 개선 절대값보다 차이 중요
IS 거래 수 >= 100 미달 시 조합 자동 제외

판정 흐름

  1. 베이스라인(BTC 필터 없는 MTF) IS/OOS 결과 먼저 산출
  2. 12개 조합 IS sweep, 모두 결과 저장 (IS 거래 수 < 100 자동 제외)
  3. 메인 가설(1h/EMA50-200/ADX20) OOS 검증 → 합격 기준 통과 시 PASS
  4. 나머지 11개도 OOS 검증 → robustness 보고서 (참고용)
  5. 메인 가설 실패 시 → 전략 폐기 (다른 조합으로 구제 안 함)

산출물

  • scripts/mtf_btc_filter_backtest.py — 백테스트 스크립트
  • docs/plans/2026-05-04-mtf-btc-filter-result.md — 결과 문서
  • 거래 수준 로그 (CSV) — entry/exit/BTC trend/PnL 포함, 사후 분석용