docs: 开启 ECR-004 威科夫硬化与 VP 减负(Draft)
跟进 ECR-003 Review Findings;待 Approve 后实现。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -20,7 +20,8 @@
|
||||
|
||||
- IDEA-002 / `9f1e736`:主站内存泄漏 dispose、首屏单次 analyze、ChanMACD 复用、chan_tv 体验
|
||||
- ECR-002 Reviewed:拆 `web/services/runtime/`、加深 analyze 契约
|
||||
- ECR-003 Reviewed:主站威科夫叠层(`chanlun/analysis/wyckoff/` + `include_wyckoff`)
|
||||
- ECR-003 Reviewed:主站威科夫叠层(`chanlun/analysis/wyckoff/` + `include_wyckoff`)→ `081a57a`
|
||||
- ECR-004 Draft:TR 评分硬化 + VP 少系列 + 阶段/门闩/单测(IDEA-005)
|
||||
|
||||
## 硬约束提醒
|
||||
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
|
||||
## Unreleased — 2026-08-06
|
||||
|
||||
### ECR-004(L2,Draft)
|
||||
|
||||
- 计划:威科夫 TR 评分硬化、主站 VP 绘图减负、阶段/门闩/单测(见 `docs/ECR/ECR-004-wyckoff-harden.md`)
|
||||
|
||||
### ECR-003(L2,Reviewed)
|
||||
|
||||
- 新增 `chanlun/analysis/wyckoff/`:交易区间、阶段 A–E、Spring/SOS/LPS/UTAD 等事件、区间 VP(POC/VAH/VAL)、量能确认
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
# ECR-004
|
||||
|
||||
**Title:** 威科夫区间评分硬化与主站 VP 绘图减负
|
||||
**Status:** Draft(待 Human/Architect Approve 后编码)
|
||||
**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` 上限
|
||||
- ESS 文档与契约测试补充断言(不删既有 `wyckoff` 键)
|
||||
|
||||
### Forbidden
|
||||
|
||||
- 改笔/段/中枢/买卖点语义
|
||||
- `config/` / `strategies/`
|
||||
- `/chan_tv`
|
||||
- 新数据源 / 订单流
|
||||
|
||||
## Risk
|
||||
|
||||
| Risk | Mitigation |
|
||||
|------|------------|
|
||||
| TR 结果相对 003 漂移 | 合成夹具锁定高低与起点;文档标明启发式迭代 |
|
||||
| 前端 VP 观感变化 | 保留 POC/VAH/VAL;密度可用更少线表示 |
|
||||
| 回归 | 扩展 `tests/test_wyckoff.py` + 既有契约套件 |
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] 合成箱体夹具:`trading_range` 高低接近箱体边界,起点不落入明显前置趋势段
|
||||
- [ ] 开启 VP 时主图新增 series 数显著低于「每 bin 一条」(目标:填充+VP ≤ ~15 或等价合并策略)
|
||||
- [ ] 阶段输出满足最小跨度或合并退化段;文档说明规则
|
||||
- [ ] `elements_only=true` 即使 `include_wyckoff=1` 也不返回 `wyckoff`(或明确文档例外——实现选前者)
|
||||
- [ ] golden 缠论基线不变;相关 pytest 绿
|
||||
- [ ] 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
|
||||
@@ -0,0 +1,45 @@
|
||||
# ENGINEERING_SPEC — ECR-004
|
||||
|
||||
**Status:** Draft
|
||||
**Date:** 2026-08-06
|
||||
|
||||
## Range scoring
|
||||
|
||||
替换「仅取最长合格窗口」:
|
||||
|
||||
1. 仍在 `lookback` + `tail_reserve` 框架内扫描候选段(步长可保留)。
|
||||
2. 对每段计算分数,例如:
|
||||
- `touch_score` = near_hi + near_lo(触边上沿/下沿次数)
|
||||
- `width_penalty` = width / ATR(过宽扣分)
|
||||
- `recency_bonus` = 段终点靠近 core 末
|
||||
- 可选:段内 close 在 [low,high] 比例
|
||||
3. 取分数最高且满足既有硬门槛(near_hi/lo≥2、inside≥0.75 等)的段。
|
||||
4. 单测:`_box_df` 断言 `low∈[38,42]`、`high∈[58,62]`,且 `start` 不早于箱体起始(允许小容差)。
|
||||
|
||||
## Phases
|
||||
|
||||
- 为 A–E 设最小 bar 数(如 ≥3);不足则与相邻段合并或跳过空标签。
|
||||
- 避免 D/E 完全同起止仍输出两条重复色带。
|
||||
|
||||
## API gate
|
||||
|
||||
```text
|
||||
if include_wyckoff and not elements_only:
|
||||
result["wyckoff"] = analyze_wyckoff(...)
|
||||
```
|
||||
|
||||
## Frontend VP
|
||||
|
||||
任选其一(ENG 实现时定一种并写进 IMPL):
|
||||
|
||||
- **A**:只画 volume>0 的 bin,且最多 N 条(按 volume 取 Top-N),POC/VAH/VAL 仍全画
|
||||
- **B**:用少量水平线 + 透明度映射,或单 series 多段(若 Lightweight 版本支持)
|
||||
- **C**:服务端默认 `vp_bins` 上限降到 24,前端再 Top-N
|
||||
|
||||
区间填充线可从 6 降到 3。
|
||||
|
||||
## Tests
|
||||
|
||||
- 扩展 `tests/test_wyckoff.py`
|
||||
- 契约:`elements_only=true&include_wyckoff=1` 无 `wyckoff`
|
||||
- 不改 golden 缠论 JSON
|
||||
@@ -0,0 +1,31 @@
|
||||
# Idea: 威科夫区间评分与主站 VP 绘图优化
|
||||
|
||||
**Date:** 2026-08-06
|
||||
**Status:** Accepted → ECR-004
|
||||
**Source:** `docs/CODE_REVIEW/ECR-003.md` Findings Important #1/#2 + Medium #3–#5
|
||||
|
||||
## Problem
|
||||
|
||||
ECR-003 已上线主站威科夫叠层,但:
|
||||
|
||||
1. 交易区间检测优先「最长窗口」,易吞并箱体前趋势,起点偏早。
|
||||
2. VP 默认按 bin 逐条 `addLineSeries`,自动刷新全量重建时系列过多,有内存压力。
|
||||
3. 阶段 C–E 在事件扎堆时易重叠退化;单测断言偏松;`elements_only` 仍可能跑威科夫。
|
||||
|
||||
## Why now
|
||||
|
||||
CODE_REVIEW Approve 非阻断项;关门后应单独 ECR 跟进,避免塞回已审 003。
|
||||
|
||||
## Proposed direction
|
||||
|
||||
- TR:触边密度/宽度评分选最优段,收紧合成夹具断言
|
||||
- VP:少系列绘制(非零 bin 合并或降 bins 上限)
|
||||
- 阶段最小长度;analyze 门闩与主周期一致;收紧单测
|
||||
|
||||
## Out of scope
|
||||
|
||||
- 缠论算法、`strategies/`/`config/`、`/chan_tv` Study、Live 信号
|
||||
|
||||
## Linked
|
||||
|
||||
- [x] ECR-004
|
||||
@@ -0,0 +1,20 @@
|
||||
# PRODUCT_SPEC — ECR-004
|
||||
|
||||
**Status:** Draft
|
||||
**Date:** 2026-08-06
|
||||
|
||||
## Goal
|
||||
|
||||
主站威科夫叠层在「可解释」前提下更稳:交易区间更贴近真实震荡箱;VP 打开时不拖垮图表刷新。
|
||||
|
||||
## User-visible
|
||||
|
||||
1. 勾选威科夫后,区间框起点/高低更合理(少把前置单边趋势框进去)。
|
||||
2. 开启 VP 时图面仍有 POC/VAH/VAL 与量能密度感,但刷新更轻。
|
||||
3. 阶段标签不再大量重叠在同一根 K 上(可合并短段)。
|
||||
|
||||
## Non-goals
|
||||
|
||||
- 改变缠论笔段中枢
|
||||
- 自动交易建议 / Live
|
||||
- chan_tv Study
|
||||
@@ -34,7 +34,7 @@ Trading System(缠论分析引擎 + 可视化 Web;Freqtrade 策略目录独
|
||||
|
||||
## Active anchors
|
||||
|
||||
- ECR: ECR-002 / ECR-003 Reviewed(主站威科夫)
|
||||
- ECR: ECR-004 Draft(威科夫硬化);ECR-002/003 Reviewed
|
||||
- EXP: N/A
|
||||
- TRACEABILITY: `docs/TRACEABILITY.md`
|
||||
- Memory: `docs/AGENT_MEMORY.md`
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
# RISK_REVIEW — ECR-004
|
||||
|
||||
**Status:** N/A
|
||||
**Date:** 2026-08-06
|
||||
|
||||
展示用威科夫启发式与绘图优化,不改 Freqtrade 策略或 Live 下单。TR 输出相对 ECR-003 可能漂移,由单测与 UI 开关缓解。
|
||||
@@ -1,8 +1,8 @@
|
||||
# STATE
|
||||
|
||||
**owner:** idle
|
||||
**active_ecr:** none
|
||||
**phase:** idle
|
||||
**owner:** architect
|
||||
**active_ecr:** ECR-004
|
||||
**phase:** draft_spec(待 Approve 后实现)
|
||||
**system_version:** v1.0.0
|
||||
**strategy_version:** unchanged
|
||||
**updated:** 2026-08-06
|
||||
@@ -14,9 +14,11 @@
|
||||
| ECR-001 | L3 | Released `v1.0.0` | |
|
||||
| IDEA-002 | L1 | Done | `9f1e736` |
|
||||
| ECR-002 | L3 | Done (Reviewed) | runtime 包拆分 |
|
||||
| ECR-003 | L2 | Done (Reviewed) | 主站威科夫;待本提交合入 |
|
||||
| ECR-003 | L2 | Done (Reviewed) | `081a57a` 主站威科夫 |
|
||||
| ECR-004 | L2 | Draft | 威科夫硬化 / VP 减负;见 IDEA-005 |
|
||||
|
||||
## Notes
|
||||
|
||||
- ECR-003 CODE_REVIEW:**Approve**;Findings 另开 ECR-004
|
||||
- 未请求新 system tag(仍 Unreleased 文档累计)
|
||||
- ECR-003 已合入;Findings → ECR-004
|
||||
- ECR-004 待 Human/Architect **Approve** 后再编码
|
||||
- 未请求新 system tag
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
task_id: ECR-004
|
||||
title: 威科夫区间评分硬化与主站 VP 绘图减负
|
||||
status: draft
|
||||
change_level: L2
|
||||
ecr: docs/ECR/ECR-004-wyckoff-harden.md
|
||||
idea: docs/IDEA/IDEA-005-wyckoff-harden.md
|
||||
notes: Follow-up to ECR-003 CODE_REVIEW Findings 1-5. Await Approve then implement.
|
||||
@@ -36,3 +36,11 @@
|
||||
| ECR-003 | analyze 按需 `include_wyckoff` | ENG-003 | `web/api/analyze.py` | `test_analyze_http_wyckoff_opt_in` |
|
||||
| ECR-003 | 主站 Lightweight 叠层 | PRODUCT-003 | `index.html` `chart_tv.js` `chart_view.js` | 人工 + 开关接线 |
|
||||
| ECR-003 | 契约可选键文档 | ENG-003 | `analyze_contract_keys.json` | golden keys file 断言 |
|
||||
|
||||
## ECR-004(Draft)
|
||||
|
||||
| ECR | Requirement | Spec | Code | Test |
|
||||
|-----|-------------|------|------|------|
|
||||
| ECR-004 | TR 评分选最优段 | ENG-004 | TBD `wyckoff/range.py` | 收紧 `test_wyckoff` |
|
||||
| ECR-004 | VP/填充少 series | ENG-004 | TBD `chart_tv.js` | 人工 / 约定上限 |
|
||||
| ECR-004 | 阶段最小长度 + elements_only 门闩 | ENG-004 | TBD events + analyze | 契约补充 |
|
||||
|
||||
Reference in New Issue
Block a user