开仓前那段:量要小、势要有但不能过头,换掉 vr60 那个开关

用户提出看开仓之前的量与趋势方向。这是第三个位置——step50 管信号根、
step52 管持仓中,这里管入场前。step48 采集端补 vpre10/vpre30/mom10/mom60。

先纠正一个错的心智模型(我和用户都以为的):B4/S4 不是回抽后进场。mom10
中位 +3.47 ATR,为负的只占 6%。信号触发时价格在前 10 根里已经顺着你的方向
走了三个多 ATR,2 ATR 止损是架在一段已经走完的行情后面。这也解释了 step50:
信号根是突破根,放量 = 追在最后一棒上。

① 入场前的量单调,越小越好(样本外毛R,Q1→Q4):1.474 / 1.266 / 1.156 /
0.573。控 vr60 后仍成立(低量层 −0.284、高量层 −0.541),与 vr60 相关只有
+0.301,不是同一件事换个说法。

② 入场前的动量是驼峰形,不是单调(mom60 样本外毛R,Q1→Q4):1.252 /
1.473 / 1.141 / 0.603。势要有——完全没动过的 Q1 也不如 Q2;但不能过头——
Q4 在发现期余量只剩 1.44bp,等于不能做。

驼峰形意味着中位数二分法会把它测没:控制表里 mom10 的毛R差是 +0.044,
看着无效,那是二分把 Q1+Q2 和 Q3+Q4 各自平均了。对非单调因子不要用中位数
分层做检验。

③ 砍 mom60≥7 全面优于 §3.39 定的砍 vr60≥4(发现期):

  等权          保留 100%  盈亏平衡 13.5bp  R夏普 0.325  回撤 16.8  总R 596.6
  砍 vr60≥4     保留  69%  盈亏平衡 15.6bp  R夏普 0.411  回撤 10.8  总R 514.9
  砍 mom60≥7    保留  78%  盈亏平衡 17.5bp  R夏普 0.476  回撤  7.7  总R 657.7

每一项都赢,还多留 9 个点的笔数。更要紧的是总R 比不砍还高——被砍掉那 22%
期望为负,砍掉不是花钱买稳健,是纯赚。样本外同向。所以这个开关不需要等
影子测量:它在 0~20bp 每一档都不输等权。

附滑点决策表:5~12bp 区间砍 mom60≥7 通吃,只有 ≥15bp 才该上「三个都砍」,
而那时策略本身已在生死线上。

阈值 7 和 1.5 是贴着 Q4 边界取的整数,不是搜出来的,但也不是完全无关于数据
(看过分位表才取的整),上线前应确认阈值附近没有断崖敏感。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-28 15:55:49 +08:00
co-authored by Cursor
parent 431e776905
commit 06928d1d5f
3 changed files with 298 additions and 8 deletions
+100 -6
View File
@@ -765,6 +765,11 @@ PF 从 1.59 提到 1.85(§4 step30)。**两个过滤器的相对价值随级
但兑现方式不是仓位。(可能的出路是对这批放宽 ATR 门控,即多做几笔而非
每笔做大,那条仍未测。)
> ⚠️ **本节推荐的开关(`vr60 ≥ 4 不做`)已被 §3.391 取代。**
> `mom60 ≥ 7 不做` 在盈亏平衡滑点、R夏普、回撤、总R、保留笔数五项上全面更优。
> 本节关于**「开关优于权重」「前序不该进仓位」「优势形态是削尾」**三条方法论
> 结论仍然成立,只是最佳的那个开关换了个因子。
**② 量因子「不做」优于「少做」。** 加权版 R夏普 0.442、硬砍版 0.496
回撤 12.7 vs 11.2;峰值并发 7.98 vs **6.00**。硬砍付出笔数 22%
3941 → 3061)、总R −10%,换来回撤 −35% 和并发 −14%。
@@ -781,6 +786,88 @@ PF 从 1.59 提到 1.85(§4 step30)。**两个过滤器的相对价值随级
发现期才代表当前波动环境。13.5bp 与 `shadow_budget.BUDGET_PORTFOLIO_2026`
的 15.19bp 同量级,互为印证。**影子测量要对标的是 13.5 / 15.6,不是 18.6。**
### 3.391 开仓前那段:量要小、势要有但不能过头(step53)⭐
用户提出看开仓**之前**的量与趋势方向。这是第三个位置——step50 管信号根、
step52 管持仓中,这里管入场前。
**先纠正一个错的心智模型(我和用户都以为的)**B4/S4 不是回抽后进场。
`mom10` 中位 **+3.47 ATR**,为负的只占 **6%**。也就是说信号触发时,价格在前
10 根里已经顺着你的方向走了三个多 ATR,**你的 2 ATR 止损是架在一段已经走完
的行情后面**。所谓"回抽后转强"里的回抽,幅度远小于它之前那一冲。
这一条也解释了 step50:信号根是突破根,放量 = 追在最后一棒上。
**① 入场前的量:单调,越小越好,且独立于信号根的量**
| vpre10(前 10 根量均值,已 shift(1) 不含信号根) | 样本外毛R | 样本外余量 | 发现期毛R | 发现期余量 |
|---|---|---|---|---|
| Q1 最低(中位 0.61 | **1.474** | **27.25bp** | 1.074 | 17.85bp |
| Q2 | 1.266 | 23.45bp | 1.184 | 19.76bp |
| Q3 | 1.156 | 21.37bp | 1.033 | 18.61bp |
| Q4 最高(中位 2.21 | 0.573 | 8.51bp | 0.510 | 6.04bp |
vpre30 同形状。**控 `vr60` 后仍成立**:信号根低量层里毛R差 −0.284、
高量层 0.541,与 `vr60` 相关只有 **+0.301**,不是同一件事换个说法。
**② 入场前的动量:驼峰形,不是单调**
| mom60(前 60 根顺向动量,ATR 单位) | 样本外毛R | 样本外余量 | 发现期毛R | 发现期余量 |
|---|---|---|---|---|
| Q1 最低(中位 0.33 | 1.252 | 22.60bp | 1.180 | 19.47bp |
| **Q2(中位 3.14** | **1.473** | **28.68bp** | **1.355** | **26.26bp** |
| Q3 | 1.141 | 20.49bp | 0.981 | 16.23bp |
| Q4 最高(中位 8.33 | 0.603 | 8.65bp | **0.284** | **1.44bp** |
mom10 同形状(Q2 最好、Q4 最差),样本内外一致。**势要有——完全没动过的 Q1
也不如 Q2;但不能过头——Q4 在发现期余量只剩 1.44bp,等于不能做。**
⚠️ 驼峰形意味着**中位数二分法会把它测没**:控制表里 mom10 在"信号根低量"层
的毛R差是 +0.044(看着无效),那是因为二分把 Q1+Q2 和 Q3+Q4 各自平均了。
**对非单调因子不要用中位数分层做检验。**
**③ 逆向进场(真回抽)很差,但只占 6%**
| | 笔数 | 占比 | 毛R | 余量bp |
|---|---|---|---|---|
| 顺向 × 缩量 | 1851 | 47% | **1.350** | **24.63** |
| 顺向 × 放量 | 1872 | 48% | 0.855 | 14.35 |
| 逆向 × 缩量 | 119 | 3% | 0.615 | 7.81 |
| 逆向 × 放量 | 99 | 3% | 0.362 | 3.61 |
**`mom60≥7 不做` 全面优于 §3.39 定的 `vr60≥4 不做` —— 换开关**
发现期(当前波动环境),阈值取整数不搜参:
| 方案 | 保留 | 盈亏平衡滑点 | R夏普 | 回撤R | 总R |
|---|---|---|---|---|---|
| 等权(现状) | 100% | 13.5bp | 0.325 | 16.8 | 596.6 |
| 砍 vr60≥4(§3.39 的建议) | 69% | 15.6bp | 0.411 | 10.8 | 514.9 |
| **✅ 砍 mom60≥7** | **78%** | **17.5bp** | **0.476** | **7.7** | **657.7** |
| 砍 vr60≥4 + mom60≥7 | 58% | 18.3bp | 0.515 | 8.0 | 527.8 |
| 三个都砍(+vpre10≥1.5 | 42% | 20.0bp | 0.593 | 6.5 | 430.4 |
**`砍 mom60≥7` 在每一项上都赢过 `砍 vr60≥4`,还多留 9 个点的笔数。**
更要紧的是它**总R 比不砍还高**(657.7 vs 596.6):被砍掉那 22% 的单子期望为负,
砍掉不是花钱买稳健,是纯赚。样本外同向(21.4bp / 0.588 / 1923.6
对照砍 vr60 的 19.8 / 0.529 / 1820.8)。
**选哪个方案取决于真实滑点,这是决策表**(发现期总R):
| 真实滑点 | 0bp | 5bp | 8bp | 10bp | 12bp | 15bp | 18bp | 20bp |
|---|---|---|---|---|---|---|---|---|
| 等权 | **946** | 597 | 387 | 247 | 107 | 102 | 312 | 452 |
| 砍 mom60≥7 | 921 | **658** | **500** | **394** | **289** | 131 | 28 | 133 |
| 三个都砍 | 574 | 430 | 344 | 287 | 229 | **143** | **57** | 0 |
**5~12bp 区间 `砍 mom60≥7` 通吃**,那正是最可能的落点。只有真实滑点 ≥15bp
才该上"三个都砍",而那时策略本身已经在生死线上。**影子测量出数之前不用选,
但要知道选项长这样。**
> 阈值 `mom60 ≥ 7`、`vpre10 ≥ 1.5` 是贴着 Q4 边界取的整数,不是搜出来的,
> 但也**不是完全无关于数据**(我看过分位表才取的整)。真上线前应在更早的
> 时段上确认阈值附近没有断崖式敏感。
### 3.4 alpha 的来源(step32 消融)
逐条拆掉 `fast_bsp3` 的条件后发现:**alpha 完全来自缠论中枢的上下文定位,
@@ -1816,6 +1903,7 @@ API 限流风险隔离三个好处。
| 50 | **信号根成交量**(用户假设「有资金的趋势才是好趋势」)→ **方向相反**,高量毛R 0.794 vs 低量 1.421ATR 4/4 + 时段 7/7 同向;根因是在突破根上给别人接盘 |
| 51 | **因子化仓位**(把 49/50 做成权重)→ 量因子该做成**开关**不是权重(硬砍 vs 加权:R夏普 0.496/0.442、并发 6.00/7.98);**前序因子不该进仓位**,边际收益买不起集中度。优势形态是削尾不是抬均值 |
| 52 | **持仓中放量出场**(用户提议)→ 反的,最优点是永不触发;放量根标记的是止盈率翻倍的好单。自带模拟器与 `walk_exits` 逐笔对拍,10/10 币通过 |
| 53 | **开仓前的量与趋势方向**(用户提议)⭐ → 前段量单调(越小越好,独立于信号根量);前段动量**驼峰形**(Q2 最好、Q4 最差)。`砍 mom60≥7` 全面优于 §3.39 的 `砍 vr60≥4`,且总R 比不砍还高。附滑点决策表 |
输出都在 `research/out/`。**2026-08-27 清理过一轮**step1~20 的输出(早期方法论
已被推翻,含未来函数偏差)与旧口径备份一并删除,只留支撑当前结论的证据。
@@ -1907,11 +1995,17 @@ API 限流风险隔离三个好处。
- [x] **因子化仓位已评估完(step51,§3.39)**,结论与分层表给的印象相反:
量因子做成**开关**(vr60 ≥ 4 不做),前序因子**不进仓位**。
剩下两件事:
- [ ] **决定要不要上「vr60 ≥ 4 不做」这个开关** 收益是发现期盈亏平衡滑点
13.5 → 15.6bp、回撤 −35%、峰值并发 7 → 6;代价是笔数 −22%
(10 币已只有约 2.5 笔/天,砍完约 2.0)。**建议等影子测量出真实滑点
再定**——若实测远低于 13.5bp,等权就够用,没必要付这 22%;
若实测贴着 13.5bp,这 2.1bp 的余量就是生死线。**这个开关只在
live 信号路径加一行,随时可上,不必现在决定**
- [ ] **上「mom60 ≥ 7 不做」这个开关**(§3.391 已取代原来的 `vr60 ≥ 4`)。
与其他开关不同,**这个不需要等滑点数据**:它在 0bp 到 20bp 的每一档上
都不输给等权,5~12bp 区间还大幅领先,且总R 比不砍更高(657.7 vs 596.6
——被砍的那 22% 期望为负。**唯一的前置动作是确认阈值附近没有断崖敏感**
(阈值 7 是贴着 Q4 边界取的整数,看过分位表才取的)
- [ ] 若真实滑点实测 ≥15bp,再考虑叠加 `vpre10 ≥ 1.5``vr60 ≥ 4`
"三个都砍",保留 42%)。滑点 <12bp 时这个叠加是亏的,别提前上
- [ ] `有前序` 的余量优势改用**放宽 ATR 门控**兑现(多做几笔而非每笔做大)。
§3.31 已记,未回测
- [ ] **持仓中放量 → 延长 runner 目标 / 加仓**step52 的建设性反面)。
已知:触发后止盈率 45.7% vs 全体 30.1%,控存活期后 5/5 档同向。
但基线已隐含吃到这部分(拿着不动就是),要多拿必须主动改目标位,
**那是新参数,要重新回测**。R差 随触发时点递减(0.785 → 0.281),
窗口应偏前段