# D48 单因子优化实验

## 结论

**本轮两个候选均判废，不进入前向验证，不改生产配置。**

候选仅增加一个因果条件：当 5 分钟收益率计算的 1 小时实现波动率，不高于其过去 7 日滚动分布的 40 分位时，禁止原 D48 入场。训练段略有改善，但独立验证段收益下降 41.42%，最大回撤扩大 76.0%，方向不稳定。

## 冻结口径

- 基线：`VolatilityBreakoutRvWarmupBaseline`，除启动蜡烛数与候选一致外，继承线上 RiskCap 逻辑。
- 候选：`VolatilityBreakoutRvFloorV1`。
- 唯一因子：`rv_fast_percentile_7d > 0.40`。
- 训练段：2026-01-01 至 2026-05-01；有效回测从 2026-01-08 01:05 UTC 开始。
- 验证段：2026-05-01 至 2026-07-10。
- 共同参数：5m、12 pairs、2x isolated futures、最多 4 仓、手续费 0.035%、protections 开启。
- 数据与市场元数据冻结在本地；未访问交易账户，未在生产机执行重回测。

## 结果

| 区间 | 策略 | 交易数 | 净收益 USDT | PF | 胜率 | 最大回撤 |
|---|---|---:|---:|---:|---:|---:|
| 训练 | 基线 | 299 | 169.400 | 1.155 | 55.2% | 12.39% |
| 训练 | RV过滤 | 285 | 185.745 | 1.183 | 55.8% | 10.74% |
| 验证 | 基线 | 175 | 116.843 | 1.223 | 56.0% | 7.44% |
| 验证 | RV过滤 | 167 | 68.446 | 1.136 | 54.5% | 13.10% |

训练段净收益变化：+16.345 USDT；最大回撤变化：-1.66 个百分点。

验证段净收益变化：-48.397 USDT；最大回撤变化：+5.65 个百分点。

## 路径归因

由于最多同时持有 4 仓，过滤一次入场会释放/改变后续仓位槽位，所以候选交易并非简单的基线交易子集：

- 训练段：共同交易 227；仅基线 72 笔（合计 +42.913 USDT）；仅候选 58 笔（合计 +54.913 USDT）。
- 验证段：共同交易 147；仅基线 28 笔（合计 +8.254 USDT）；仅候选 20 笔（合计 -36.840 USDT）。

这也解释了为什么离线分桶显示“低 RV 桶偏弱”，但完整组合回测反而变差：过滤改变了仓位竞争和后续入场路径，不能把单笔事后分桶直接当成组合优化。

## 第二候选：收紧固定止损

在 RV 候选判废后，另测了一个与入场层互不重叠的退出层单因子：把账户止损从 -5.0% 收紧至 -4.5%。RiskCap 仓位计算按继承后的止损值同步计算，这是该参数在真实策略中的完整因果路径。

该候选在训练段已经失败，因此按预设门槛没有运行验证段：

| 策略 | 交易数 | 净收益 USDT | PF | 胜率 | 最大回撤 |
|---|---:|---:|---:|---:|---:|
| -5.0% 基线 | 335 | 166.866 | 1.141 | 55.2% | 11.37% |
| -4.5% 候选 | 362 | 120.861 | 1.089 | 51.9% | 12.82% |

更早止损增加了再入场和仓位路径变化，但没有改善风险收益。训练收益下降 46.005 USDT，最大回撤反而增加 1.45 个百分点。继续扫 -4.0%、-4.75% 等阈值会变成参数挖掘，本轮到此停止。

## 决策

保留当前 RiskCap 生产策略。两个候选都未达到进入前向的最低门槛；无需做 lookahead/recursive 分析、dry-run A/B 或微额实盘。当前仍有优化空间，但证据更支持继续积累真实撮合样本并研究执行层，而不是放松仓位上限或扫描策略参数。
