# Wyckoff BTC System v1 — Decision Rule Locked ``` Architecture: Market State → Decision → Signal Spring: FROZEN Gate v1.1: LOCKED DEFAULT Decision rule (PASS) Soft-score: REJECTED (no increment) Hard-score: REJECTED Minimal rule: market_state in {accumulation, markup} -> allow Spring else -> block Spring Primary invalidation domain: distribution range: observation bucket only (NOT a trading rule) Validity: DEFINED Confidence: MEDIUM / defined-domain PASS Status: DEFAULT RULES FROZEN Next: dry-run / monitoring only(见 operational checklist) ``` ## Operational 上线前不改规则,只验执行链: → [`DRY_RUN_DECISION_CHECKLIST.md`](./DRY_RUN_DECISION_CHECKLIST.md) 覆盖:信号一致性 · 日志字段 · dry-run 监控 · 报警 · 硬禁 · Go/No-Go。 ## Locked stack | Layer | File | Status | |-------|------|--------| | Signal | `Wyckoff_BTC_V1_BASELINE.py` | FROZEN | | State | `engine/market_state.py` | causal v1.1 | | Decision | `Wyckoff_BTC_GATED.py` | **LOCKED state_set** | | Boundary | `VALIDITY_BOUNDARY.md` | active | ## Robustness slices (blocked Spring, by year/era) 证据:`scripts/wyckoff_gate_robustness_slices_result.json` | Slice | blocked n | dist share | top blocked | blocked PF | |-------|-----------|------------|-------------|------------| | 2020 | 3 | **1.00** | distribution | 0.73 | | 2021 | 4 | **0.75** | distribution | 0.31 | | 2022 | 1 | 1.00 | distribution | 0 | | 2023 | 1 | 1.00 | distribution | 0 | | 2024 | 3 | 0.33 | distribution+range | 0 | | 2025 | 1 | 0 | range (obs) | n=1 win | | pre_2023 | 8 | **0.875** | distribution | 0.37 | | 2023plus | 5 | 0.40 | distribution+range | 1.22 | Verdict: **distribution 归因在多数有样本切片上稳定**(PASS)。 2023+ / 2024–25 中 range 占比上升 → 保持 **观察标签**,不升格为交易规则。 ## Do not - 调 Spring / soft-score / Gate 阈值 - 因 range 小样本正 PF 开放 range 交易 - 复活 LPS / 默认跨资产