Files
Chan/docs/CODE_REVIEW/ECR-003.md
T
jackyu66gitandCursor 081a57a90e feat: ECR-003 主站威科夫分析与图表叠层(已审)
独立 wyckoff 引擎 + 按需 include_wyckoff;主站 Lightweight 绘制区间/阶段/事件/VP。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 18:33:57 +08:00

3.2 KiB
Raw Blame History

CODE_REVIEW — ECR-003

Role: REVIEWER
Date: 2026-08-06
Scope: 工作区未提交 ECR-003(相对 origin/dev @ df27b4d
Decision: Approve(带非阻断 Findings;建议合并前勿提交 .DS_Store

Evidence loaded

  • chanlun/analysis/wyckoff/{engine,range,events,volume_profile}.py
  • web/api/analyze.pyinclude_wyckoff
  • web/templates/index.htmlchart_view.jsmacd_ui.jschart_tv.js 威科夫块
  • tests/test_wyckoff.pyweb/tests/test_analyze_contract.py
  • ESSECR/PRODUCT/ENG/IMPL/TEST/HANDOFF

Acceptance ↔ Evidence

Acceptance Verdict Evidence
include_wyckoff=1 返回约定键;默认不强制 PASS 契约测试;默认无 wyckoff
合成 TR + 事件;VP POC PASS test_wyckoff.py12 相关套件全绿)
主站可开关绘制 PASS 主开关按需拉取;子项本地重绘
golden 不变 PASS test_golden_pipeline
未改缠论算法 / strategies / chan_tv PASS diff 范围核对
ESS 闭环 PASS IMPL/TEST/TRACE/CHANGELOG/本文件

复跑

PYTHONPATH=.:web python -m pytest \
  tests/test_wyckoff.py tests/test_golden_pipeline.py \
  web/tests/test_analyze_contract.py -q
→ 12 passed

Findings

Important(不挡 Approve,建议跟进)

  1. 交易区间易吞并前置趋势
    detect_trading_range 从最长窗口向下搜,合成夹具下 abs_start_idx=0,箱体前下跌段被算进 TR。单测只断言「有区间 + 有事件」,未锁定高低/起点。
    建议: 用「宽度/触边密度」评分取最优段,或要求近端触边;测试断言 high≈60/low≈40 与起点靠近箱体。

  2. VP 叠层系列数偏多,可能加压自动刷新内存
    开启 VP 时约每个 bin 一条 addLineSeries(默认 ~50),再加区间填充/阶段。与 IDEA-002 内存修复同路径全量重建时放大。
    建议: 只画非零 bin 或合并为少量 series / histogram;或限制 vp_bins 上限到 24。

Medium

  1. 阶段 CE 在事件扎堆时常退化重叠
    夹具输出中 D/E 起止几乎相同;状态机按事件锚点硬切,缺少最小阶段长度。展示可用,语义偏弱。

  2. elements_only=true 仍可能跑威科夫
    威科夫挂在路由末尾,不依赖 not elements_only。主站当前不这么发,但契约上奇怪;建议与主周期分析同门闩。

  3. 单测断言偏松
    Spring in types or SOSabs(poc-50)<2 对回归保护不足。

Low

  1. 失败时 wyckoff.error 回传异常字符串(与结构区 print 风格一致,信息暴露轻微)。
  2. 事件 marker 一律 arrowUp(跌破类也可 arrowDown)。
  3. 工作区 .DS_Store 脏文件——勿纳入 commit

No blockers

未发现:契约删键、缠论语义改动、策略/config 改动、未鉴权危险写操作、主站误引 WS。

Decision

Approve

可合并提交(排除 .DS_Store)。Important #1/#2 可开后续 L1/L2,不阻塞本 ECR 着陆。

Next owner

engineer / Human — commit(勿含 .DS_Store);可选跟进 TR 评分与 VP 绘图优化。