Skip to content

feat(quant): Cycle Engine v1 — Probabilistic regime/cycle detection (HMM + BOCPD + walk-forward) #530

@researcherhojin

Description

@researcherhojin

Background

사용자 투자 철학: "모든 주식은 사이클이 있다. 주기가 존재해서 오를 때가 있으면 떨어지면서 지지대를 쌓으면서 우상향한다. 그런 주식을 찾고 투자하고, 수익 실현을 하는 사이클을 만들고 싶다."

→ Wyckoff phases / Stan Weinstein Stage Analysis / Minervini SEPA 정렬. 그러나 단순 MA stage rule은 Round 3 LLM 합의로 폐기 (Brock 1992 / Sullivan 1999 / Marshall 2014 OOS 실패).

전체 컨설팅 archive: `data/llm_consults/2026-04-30_cycle-engine-rigor.md` (Round 3) + `2026-04-30_round5-service-grade-agents.md` (Round 5).

v1 Architecture (Codex + Qwen 합의)

```
┌────────────────────────────────────────────────┐
│ Layer 4: Position Sizing │
│ posterior P(state) → fractional Kelly cap │
│ Full Kelly 금지 (추정 오차 민감) │
└──────────────▲─────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ Layer 3: Confluence Filter (multi-tier) │
│ Market regime (SPY HMM) → Sector RS → Stock │
│ Macro overlay = risk-gate only (예측기 X) │
└──────────────▲───────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ Layer 2: Trend & Changepoint │
│ Kalman state-space (statsmodels) │
│ BOCPD AR(p) (Adams & MacKay 2007 + 2024 ext) │
└──────────────▲───────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ Layer 1: Hidden State Estimation │
│ 4-state Ensemble HMM (hmmlearn voting) │
│ Hamilton 1989 Markov-switching │
│ Output: posterior P(state | obs) │
└──────────────────────────────────────────────────┘
```

Validation Framework (이게 진짜 "엄밀")

  • Walk-forward (anchored + rolling, Pardo 1992)
  • Purged K-Fold + Embargo CV (López de Prado 2018)
  • CPCV / CSCV (Bailey-LdP 2014)
  • DSR / PSR / PBO (`pypbo` library 직접 사용)
  • Bull/bear/crisis sub-sampling
  • Kyle's λ + Almgren-Chriss slippage (capacity 모델)
  • Survivorship-bias-free universe (point-in-time)

Phase Plan (Codex 6주 build order의 Phase 3-6 매핑)

이 이슈는 `#529` (service-grade infra) 위에서 구현. `#529` Phase 1 완료 후 시작.

Phase Scope DoD
3a (#529 위 1-2주차) `nuri/quant/cycle/` 신규 모듈, hmmlearn 기반 4-state HMM, 사용자 watchlist 50종목 5y backtest walk-forward + DSR 산출
3b BOCPD AR(p) (`dtolpin/bocd` + 2024 tandfonline 확장) online changepoint 작동
4 Multi-tier confluence (SPY → XLK/XLV/XLF → stock posterior) + macro risk-gate confluence filter 작동
5 Causal-Factor-Auditor (DoWhy + LdP causal DAG) factor mirage 탐지 spurious factor 제거
5b Foundation-Benchmark lane (Chronos-2 fine-tune) vs HMM 비교 apples-to-apples EV 비교표
6 Forward-test live tracker (emit→realized + drift detection) hit rate 시계열

"엄밀"의 위치

  • 모든 layer 출력에 sample N + 신뢰구간 + 사용자 universe 위 측정값
  • 학술 인용은 가설일 뿐, 실측이 진실
  • "셋업 5년 hit rate 58%" 같은 mock 숫자 X — 데이터 검증 체인 통과 못 한 항목은 표시 자체 X

Anti-Patterns

  • Feature leakage (rolling window 미래 데이터)
  • Regime overfitting (10y HMM이 미래 적응 X)
  • Single backtest 신뢰 (multiple testing 보정 X)
  • In-sample hyperparameter tuning
  • Look-ahead bias
  • LLM을 enforcement path에 (Layer A는 100% rule)

Honest Verdict (Codex Round 3)

  • "사이클 trading이 retail이 passive를 안정적으로 이긴다"는 명제 → 두 LLM 모두 반대
  • SPIVA 2025: 장기 active 구조적 열위
  • HFT/passive flow 시대 패턴 반감기 단축
  • +EV 가능 영역: alpha 보장 X, "낙폭 관리 + 고변동 회피"

Dependencies

Out of Scope

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions