# ENGINEERING_SPEC — ECR-004 **Status:** Approved(实现锁定:评分选段;VP=A+C;无币种参数) **Date:** 2026-08-06 ## Range scoring 替换「仅取最长合格窗口」: 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 - 非重叠链式切分;每段至少 `min_bars=3`。 - 尾部空间不足则延长上一段并停止新增(避免 D/E 完全重合双画)。 ## API gate ```text if include_wyckoff and not elements_only: result["wyckoff"] = analyze_wyckoff(..., vp_bins∈[10,24]) ``` 默认 `wyckoff_vp_bins=24`,上限 24。 ## Frontend VP(A+C) - 填充线 6→3 - 有量 bin 按 volume Top-8 绘制 + POC/VAH/VAL - 目标:区间填充+边框+VP ≈ ≤15 series 量级 ## Tests - `tests/test_wyckoff.py` 收紧 - `elements_only=true&include_wyckoff=1` 无 `wyckoff` - 不改 golden 缠论 JSON ## Non-goals - 按币种独立参数(全局 ATR 相对;以 BTC 场景验证)