Files
Chan/docs/CODE_REVIEW/ECR-004.md
2026-08-06 18:47:18 +08:00

54 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CODE_REVIEW — ECR-004
**Role:** REVIEWER
**Date:** 2026-08-06
**Scope:** `d3188ca`(相对 ECR-003)威科夫硬化
**Decision:** Approve
## Evidence loaded
- Diff `d3188ca``range.py` / `events.py` / `analyze.py` / `chart_tv.js` / tests / ESS
- 复跑:`tests/test_wyckoff.py` + golden + analyze contract → **14 passed**
- 合成夹具抽查:`abs_start_idx=20`low/high≈40.1/59.9(相对 003 的 bar0 已修好)
## Acceptance ↔ Evidence
| Acceptance | Verdict | Evidence |
|------------|---------|----------|
| TR 不吞明显前置趋势;边界近箱体 | PASS | 评分选段;单测 low/high 带 + `abs_start≥12` + start 时间容差 |
| VP series 减负 | PASS | Top-8 + 填充 3 + POC/VAH/VALAPI bins≤24 |
| 阶段最小跨度 / 不重合 | PASS | 链式 cursorunique (start,end) 断言 |
| elements_only 门闩 | PASS | `include_wyckoff and not elements_only` + 契约测试 |
| golden 不变 / 无策略改动 / 无币种表 | PASS | golden 绿;diff 无 config/strategies |
## Findings
### Medium(不挡 Approve
1. **同分 tie-break 偏向更长窗口**
循环从长到短,`score <= best_score` 时保留已有(更长)。多数情况分数拉开;若实盘出现「长窗与短窗同分」,仍可能略偏长。可选:同分取更短,或加 `1/length` 微项。
2. **阶段常截断为 AC**
Spring/SOS 落在尾部时 D/E 因 `min_span` 被吃掉——与 ENG「空间不足截断」一致,但 UI 勾选「阶段」时用户可能期望总见 D/E。属产品预期,非缺陷;可在 UI/文档标明「尾部不足则省略」。
### Low
3. **`abs_start_idx >= 12` 弱于「箱体起点」** —— 主测已用时间容差;该断言可再收紧到 `>= 16` 一类。
4. **VP Top-N 无自动化 series 计数** —— 靠代码审查 + ENG 约定。
5. 事件 marker 仍一律 `arrowUp`003 遗留)。
6. 失败路径仍回传 `wyckoff.error` 字符串。
### No blockers
未发现契约删键、缠论语义改动、策略改动、或回归红灯。
## Decision
**Approve**
ECR-004 可维持 Done (Reviewed)。Medium 项进 backlog,不必立刻新 ECR,除非实盘 TR 仍偏长。
## Next owner
Human — 主站 BTC 勾选威科夫目测;无发版要求则保持 `v1.0.0` Unreleased 累计。