fix: ECR-004 威科夫区间评分硬化与 VP 绘图减负(已审)
评分选 TR、阶段最小跨度、elements_only 门闩、Top-8 VP;无币种独立参数。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,45 +1,43 @@
|
||||
# ENGINEERING_SPEC — ECR-004
|
||||
|
||||
**Status:** Draft
|
||||
**Status:** Approved(实现锁定:评分选段;VP=A+C;无币种参数)
|
||||
**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` 不早于箱体起始(允许小容差)。
|
||||
1. 仍在 `lookback` + `tail_reserve` 框架内扫描候选段(步长 -4)。
|
||||
2. 硬门槛不变:near_hi/lo≥2、inside≥0.75、宽度上限等。
|
||||
3. 分数:`touch_density*50 + inside*30 - (width/ATR)*3 + min(length/40, 2)`,取最高。
|
||||
4. 单测:`low∈[38,42]`、`high∈[58,62]`,起点不早于箱体(容差 8 根);`abs_start_idx >= 12`。
|
||||
|
||||
## Phases
|
||||
|
||||
- 为 A–E 设最小 bar 数(如 ≥3);不足则与相邻段合并或跳过空标签。
|
||||
- 避免 D/E 完全同起止仍输出两条重复色带。
|
||||
- 非重叠链式切分;每段至少 `min_bars=3`。
|
||||
- 尾部空间不足则延长上一段并停止新增(避免 D/E 完全重合双画)。
|
||||
|
||||
## API gate
|
||||
|
||||
```text
|
||||
if include_wyckoff and not elements_only:
|
||||
result["wyckoff"] = analyze_wyckoff(...)
|
||||
result["wyckoff"] = analyze_wyckoff(..., vp_bins∈[10,24])
|
||||
```
|
||||
|
||||
## Frontend VP
|
||||
默认 `wyckoff_vp_bins=24`,上限 24。
|
||||
|
||||
任选其一(ENG 实现时定一种并写进 IMPL):
|
||||
## Frontend VP(A+C)
|
||||
|
||||
- **A**:只画 volume>0 的 bin,且最多 N 条(按 volume 取 Top-N),POC/VAH/VAL 仍全画
|
||||
- **B**:用少量水平线 + 透明度映射,或单 series 多段(若 Lightweight 版本支持)
|
||||
- **C**:服务端默认 `vp_bins` 上限降到 24,前端再 Top-N
|
||||
|
||||
区间填充线可从 6 降到 3。
|
||||
- 填充线 6→3
|
||||
- 有量 bin 按 volume Top-8 绘制 + POC/VAH/VAL
|
||||
- 目标:区间填充+边框+VP ≈ ≤15 series 量级
|
||||
|
||||
## Tests
|
||||
|
||||
- 扩展 `tests/test_wyckoff.py`
|
||||
- 契约:`elements_only=true&include_wyckoff=1` 无 `wyckoff`
|
||||
- `tests/test_wyckoff.py` 收紧
|
||||
- `elements_only=true&include_wyckoff=1` 无 `wyckoff`
|
||||
- 不改 golden 缠论 JSON
|
||||
|
||||
## Non-goals
|
||||
|
||||
- 按币种独立参数(全局 ATR 相对;以 BTC 场景验证)
|
||||
|
||||
Reference in New Issue
Block a user