# ECR-004 **Title:** 威科夫区间评分硬化与主站 VP 绘图减负 **Status:** Done (Reviewed) **Date:** 2026-08-06 **Change Level:** L2 ## Change 跟进 ECR-003 CODE_REVIEW Findings:改进交易区间选取启发式、阶段最小长度、收紧单测;主站 VP/叠层降低 Lightweight series 数量;`include_wyckoff` 与主周期分析同门闩。 ## Motivation 003 已 Approve 合入;质量与内存项不得回塞已审变更,须独立可审闭环。 ## Scope ### Allowed - `chanlun/analysis/wyckoff/range.py` / `events.py`(阶段)启发式与单测 - `web/static/js/app/chart_tv.js` 威科夫 VP/填充绘制路径 - `web/api/analyze.py`:`elements_only` 时不跑威科夫;默认 `vp_bins` 上限 24 - ESS 文档与契约测试补充断言(不删既有 `wyckoff` 键) ### Forbidden - 改笔/段/中枢/买卖点语义 - `config/` / `strategies/` - `/chan_tv` - 新数据源 / 订单流 - **按币种独立参数表**(全局 ATR 相对即可;当前以 BTC 场景验证) ## Decisions(Approve 时锁定) - VP:**A+C**(前端 Top-N 有量 bin + 服务端 bins 上限 24) - 不做 per-symbol 参数 ## Risk | Risk | Mitigation | |------|------------| | TR 结果相对 003 漂移 | 合成夹具锁定高低与起点;文档标明启发式迭代 | | 前端 VP 观感变化 | 保留 POC/VAH/VAL;密度用 Top-N | | 回归 | 扩展 `tests/test_wyckoff.py` + 既有契约套件 | ## Acceptance Criteria - [x] 合成箱体夹具:`trading_range` 高低接近箱体边界,起点不落入明显前置趋势段 - [x] 开启 VP 时主图新增 series 数显著低于「每 bin 一条」(目标:填充+VP ≤ ~15 或等价合并策略) - [x] 阶段输出满足最小跨度或合并退化段;文档说明规则 - [x] `elements_only=true` 即使 `include_wyckoff=1` 也不返回 `wyckoff` - [x] golden 缠论基线不变;相关 pytest 绿 - [x] TEST/IMPL/CHANGELOG/TRACEABILITY + CODE_REVIEW ## Rollback `git revert`;UI 关威科夫即可无图面影响。 ## Risk Review - `docs/RISK_REVIEW/ECR-004.md` — N/A(展示/启发式,非 Live 策略) ## Linked - IDEA: `docs/IDEA/IDEA-005-wyckoff-harden.md` - 上游: `docs/CODE_REVIEW/ECR-003.md` Findings 1–5 - PRODUCT_SPEC / ENGINEERING_SPEC: 同目录 ECR-004-* - TRACEABILITY: Yes - CODE_REVIEW: `docs/CODE_REVIEW/ECR-004.md` — Approve