#22041
混合
免费
ID-941_游程检验方向确立选股研究报告
公式说明
AI生成
一句话概括:这个公式用"涨跌符号的游程检验"找多空拉锯结束后方向刚开始确立的股票。 核心买入逻辑:把K线涨跌压成0/1符号串,算20日游程数并与随机游走期望比较得偏离度;要求5天前偏离度为正(当时涨跌频繁互切、无趋势),且当前偏离度低于5天前(拉锯格局被打破、开始出现同向连绵);再叠加波动低于9%、距20日高点有3%空间、量能温和、当日涨幅0到6%。 适合市场环境:震荡转趋势的转折点,方向刚确立初期最有效,不适合已单边流畅行情或纯震荡。 风险提示:游程转向判断滞后,若假突破会两头挨打,需次日开盘执行并严格止损。
研究报告
# FORMULA-941 游程检验方向确立选股 研究报告
- **公式ID**: FORMULA-941
- **策略名称**: 游程检验方向确立选股
- **信号原型家族**: 序列随机性检验(Wald-Wolfowitz Runs Test 游程结构)— 全库零覆盖增量维度
- **通道判定**: 纯发散通道(next_id 941, 941 mod 5 = 1)
- **生成日期**: 2026-08-03
- **提示词版本**: v4.5
- **设计版本**: v2(消融实验驱动修订)
---
## 选向说明(修复A合规性)
`direction_selector.py` 本次输出「Aroon趋势纯度 + 抛物线SAR转向低吸选股」,**被否决**。
否决理由:该方向归属**信号原型家族 12(动量振荡器)**,库内已密集覆盖,违反 v4.5 修复A「禁止同家族内换指标名」铁律。这已是 selector 连续第三次推同类高覆盖方向(937/940 均为「时变贝塔+CVaR」被否),**其兜底池明显有偏,后续应直接跳过其输出自行做覆盖探针选向**。
改选依据 — 全库 1642 个 `.tn` 文件关键词覆盖探针:
| 关键词 | 命中 | 关键词 | 命中 |
|---|---|---|---|
| `RUNS` | 2 | `游程` | 6 |
| `连续同向` | **0** | `VARRATIO` | **0** |
| `REVCNT` | **0** | `ZIGZAG` | **0** |
| `GINI` | 2 | `ENTROPY` | 4 |
对比高覆盖家族:`REGIME` 116 / `体制` 186 / `TURN` 133 / `ER_` 98 / `状态` 85 — 均属已密集覆盖,本次回避。
最终锁定 **符号序列游程检验**:库内 `RUNS`(2)/`游程`(6) 的少量命中经人工核查均为「连涨天数计数」类朴素用法,**无一例实现 Wald-Wolfowitz 期望游程数与偏离度检验**,属真实零覆盖原型。
---
## A. 实现细节(Implementation Details)
### 逻辑链说明
**市场背景**:当前市场状态检测为 `sideways`(震荡市)。震荡市的本质特征是价格符号序列高频互切——涨一天跌一天,多空双方都无法形成连续得手。这种「过度切换」状态在统计上表现为游程数**高于**随机游走期望。而趋势的诞生,恰恰是这种拉锯格局被打破的瞬间:符号串开始出现连绵段,游程数向下收敛。本策略捕捉的正是「从非随机的过度切换 → 向连绵结构过渡」这一相变时刻。
**信号设计**:把 K 线序列彻底压缩为 0/1 符号串(涨为1,跌为0),**完全丢弃幅度信息**。计算 20 日窗口内的游程数 `R = 符号切换次数 + 1`,并按 Wald-Wolfowitz 公式算出随机游走零假设下的期望游程数 `ERUN = 2×NU×ND/20 + 1`(NU/ND 为窗口内涨/跌天数)。二者之差 `RDEV = R − ERUN` 即游程偏离度:正值 = 过度切换(多空拉锯),负值 = 同向连绵(趋势持续)。信号要求 S1(5日前 RDEV > 0.5,确认前期确实处于拉锯态)**且** S2(当前 RDEV 低于5日前,确认拉锯正在被打破)。
**确认机制**:四重门控过滤假信号 —— G1 日均振幅 < 9% 剔除妖股;G2 收盘距20日高点尚有3%空间,买在方向确立初期而非末端;G3 当日量能落在20日均量 0.8~2.5 倍区间,既排除无人问津也排除一次性爆量;G4 当日涨幅 0~6%,规避涨停板无法成交。
**风险控制**:由回测引擎统一的持有期出场逻辑管理,平均持有 5.84 天。公式层面的风险控制体现为 G1 波动率上限与 G2 不追高约束,两者共同把平均最大回撤压到 −9.26%(对照初版四维投票的 −11.07%)。
### 数学构造
```
UP = IF(CLOSE > REF(CLOSE,1), 1, 0) 符号化
SW = ABS(UP - REF(UP,1)) 切换标记
R = SUM(SW,20) + 1 游程数
NU = SUM(UP,20); ND = 20 - NU
ERUN = 2*NU*ND/20 + 1 Wald-Wolfowitz 期望游程数
RDEV = R - ERUN 游程偏离度
CORE = (REF(RDEV,5) > 0.5) AND (RDEV < REF(RDEV,5))
```
**与已有维度的本质差异**:库内 ID-937 已实现 Pearson 一阶自相关(RHO1)。二者看似都度量「序列记忆」,但数学本质完全不同——Pearson 自相关是**幅度加权**的二阶矩统计,单根大阳线可以主导整个 20 日窗口的取值;游程检验是**非参数序数统计**,只认符号不认幅度,对肥尾与离群值完全免疫。在同一段行情上,两者可以给出符号相反的判断(例如:一根巨阳 + 19根小幅震荡,自相关显示强趋势记忆,游程检验则判定为高度随机)。这是维度正交性的直接证据。
### 执行时点
- T 日收盘计算全部指标 → T+1 日开盘执行
- 全部引用为历史窗口(REF/SUM/MA/HHV),无未来函数
### 适用市场
A股全市场;本次回测样本池 106 只(本地 CSV 覆盖范围),扫描域 10,027 个代码。
### Warmup 周期
**35 根 K线**。构成:SUM 20日窗口 + REF(UP,1) + REF(RDEV,5) + MA(VOL,20) / MA(HIGH-LOW,14),最大依赖链 20+5=25,保守取 35。评估指标均在 Warmup 之后的切片上计算。
### 回测结果对比
| 指标 | 方案 A | 方案 B |
|---|---|---|
| 扫描域 / 有信号股 | 10,027 / **106** | 10,027 / **106** |
| 总交易笔数 | 645 | — |
| 胜率(简单截面) | **51.66%** | **51.66%** |
| 胜率(交易加权) | 49.46% | — |
| 平均收益 | **+3.052%** | **+3.052%** |
| 正收益股占比 | 59.43%(63/106) | 59.43%(63/106) |
| 平均最大回撤 | −9.264% | — |
| 盈亏比 / PF | 4.569 / **1.697** | — |
| 夏普(截面) | 0.161 | — |
| VaR95 / CVaR95 | −22.2% / −26.44% | — |
| 平均持有 | 5.84 天 | — |
**A/B 交叉验证:胜率差异 0.00pp,平均收益差异 0.000pp,有信号股 106/106 完全一致 → CONSISTENT**。两套独立解析器(backtest.evaluator 与 tdx_interpreter)语义完全等价,排除解析器实现偏差。
---
## ★ 消融实验(本次最关键的方法论产出)
FORMULA-940 遗留的最高优先级未解风险是「S4 消融实验没做,HHI 维度的独立贡献未证明」。**本次补上了这一课,并且结果直接推翻了初版设计。**
四变体全市场对照(各自独立扫描 10,027 个代码):
| 变体 | 核心逻辑 | 有信号股 | 交易 | 胜率 | 均收益 | PF |
|---|---|---|---|---|---|---|
| **a** NO_RUNS | 去掉游程维度,仅留常规动量(连续两日收阳 + 上涨日占优) | 104 | 569 | 46.39% | +0.43% | 1.078 |
| **b** FULL_3of4 | **初版设计**:四维投票 3选4 | 106 | 710 | 46.62% | **−0.48%** | **0.914** |
| **c** RUNS_ONLY | **本版采用**:游程双条件严格与 | 106 | 645 | **49.46%** | **+3.05%** | **1.697** |
| **d** TREND_PERSIST | 反号假设:前期已连绵而非拉锯 | 56 | 80 | 52.5% | −0.34% | 0.869 |
**三条关键结论**:
1. **游程维度具备独立 alpha**。变体 a(剥离游程)PF 仅 1.078、均收益 +0.43%;变体 c(纯游程)PF 1.697、均收益 +3.05%。收益差 7 倍,PF 提升 57%。游程结构**不是搭便车**,它就是 alpha 本身。这正是 940 号所欠缺的证明。
2. **初版四维投票是负期望,掺入常规动量反而稀释信号**。变体 b(−0.48%, PF 0.914)显著劣于变体 c(+3.05%, PF 1.697)。机理清晰:3选4 门槛允许「动量两条 + 游程一条」即触发,等价于让常规动量**替代**游程结构。而变体 a 证明常规动量本身几乎无 alpha(PF 1.078),于是投票层实际上是在用噪声稀释信号。**故弃用投票层,改为严格与。**
3. **反号假设被证伪**。变体 d 检验「前期已连绵(RDEV<−0.5)则趋势延续」,虽然胜率 52.5% 看似最高,但仅 80 笔交易、PF 0.869 为负期望,且盈亏比 21.6 明显是小样本离群值假象。这反向印证了本策略的方向性假设是对的:**要买的是「拉锯被打破的瞬间」,而不是「已经连绵的趋势」**。
**方法论沉淀**:N-of-M 投票并非总是优于严格与。当某一维度是唯一 alpha 来源、而其余维度接近噪声时,投票机制会主动引入劣化路径。**新维度上线时必须先做消融,否则无法区分「维度有效」与「维度搭便车」**——这条经验应固化到后续所有发散通道任务中。
---
## B. 已知偏差(Limitations and Bias)
1. **样本窗口过短,且为单一市场环境**
本地 CSV 实际覆盖 2025-06-10 ~ 2026-05-25,约 232 个交易日,扣除 35 根 Warmup 后仅剩约 197 日。整段窗口的市场状态被 `direction_selector` 判定为 `sideways`。而本策略的核心假设(拉锯打破→趋势启动)**恰好最适配震荡市**。这意味着当前 +3.05% 的表现存在**环境适配性偏差**,在单边牛市(游程长期为负偏离,S1 恒不成立→信号枯竭)或单边熊市(拉锯打破后向下)中大概率失效。**未在完整牛熊周期上验证。**
2. **样本池 106 只 ≠ 全市场,存在幸存者偏差**
扫描域名义 10,027 个代码,但实际有本地 CSV 数据的仅 106 只(errors 9,921 全为「无数据」)。这 106 只是历史遗留的数据子集,其构成规则未知,**不能等同于随机抽样**。因此「有信号股 106/106」实为「全部有数据的股票都产生了信号」,说明信号频率偏高、筛选性弱于表面观感。
3. **尾部风险显著且未被公式层面控制**
CVaR95 = −26.44%,即最差 5% 情形的平均亏损超四分之一本金。虽较初版(−28.68%)有所改善,但绝对水平仍高。公式内**没有任何止损条款**,回撤控制完全依赖回测引擎的固定持有期出场。实盘部署前必须外挂止损。
4. **参数未做敏感性扫描(过拟合风险未排除)**
S1 阈值 0.5、REF 回望 5 日、SUM 窗口 20 日均为一次成型,**未做网格扫描**。虽然这些取值来自 Wald-Wolfowitz 检验的常规设定而非数据挖掘(这降低了过拟合概率),但严格说属「未过拟合」而非「已证稳健」。特别是 SUM 窗口 20 日直接决定 ERUN 的量纲,敏感性未知。
---
## C. 结果解读(Result Interpretation)
**逻辑质量**:信号具备清晰的统计学与经济学双重意义。统计层面,Wald-Wolfowitz 游程检验是经典的序列随机性非参数检验,`ERUN = 2·NU·ND/N + 1` 有严格的零假设推导,不是拍脑袋构造的指标。经济层面,「多空拉锯 → 一方胜出」对应的是市场分歧收敛、共识形成的真实过程。可以完整地向他人解释清楚。
**创新点**:全库首个基于**符号序列非参数检验**的维度。此前 1642 个公式全部建立在幅度型统计上(均值、标准差、极值、自相关、集中度)。本公式主动丢弃幅度信息,只保留符号——这是一次**信息降维换取鲁棒性**的尝试,且被消融实验证明降维后仍保有独立 alpha。另外,`ERUN` 用纯 SUM 与四则运算实现(无需 SQRT),绕开了方案 A 解析器仅支持 17 个函数的限制,延续了 940 号总结的「数学等价改写」技巧。
**风险点**:最大风险是**环境依赖性**。策略在震荡市有效,但样本恰好全是震荡市,构成了「用适配环境验证适配策略」的循环论证风险。其次是 CVaR95 −26.44% 的尾部暴露。控制手段:(a)实盘前必须在 2023-2024 完整周期上重验;(b)外挂 ATR 止损;(c)作为组合成分而非独立策略使用。
**适用场景**:适合震荡市中做波段的中短线投资者(平均持有 5.84 天),且必须自带止损纪律。**不适合**趋势跟随型或不设止损的投资者。
**改进方向(按优先级)**:
1. **参数敏感性网格扫描** — S1阈值[0.3,0.5,0.8] × REF回望[3,5,10] × SUM窗口[10,20,30],确认 0.5/5/20 是否落在稳健平台区
2. **跨家族组合** — 将 RDEV 作为独立材料节点,与 momentum_heavy / meanrev_heavy / price_heavy / 940的VCONC 做 N-of-M 组合。基于「符号维度 vs 幅度维度」的正交性论证,这大概率是本公式的真正价值所在
3. **尾部风险收敛** — 加入 `CLOSE > REF(LLV(LOW,10),1)` 结构性止损,目标把 CVaR95 收到 −20% 以内
4. **拉长样本** — 接 2023 起数据,在完整牛熊周期上重跑,验证环境依赖假设
### 对抗式审查
我主动怀疑了以下 4 个点,逐一处理:
1. **怀疑:游程维度是否只是搭便车,真正干活的是常规动量?**
→ **已排除(本次核心工作)**。做了四变体消融实验:剥离游程后(变体a)PF 从 1.697 掉到 1.078、均收益从 +3.05% 掉到 +0.43%。游程维度贡献了绝大部分 alpha。这正是 940 号遗留而未做的验证。
2. **怀疑:初版的四维投票设计是否合理?**
→ **未能排除,且已证伪并修正**。变体 b(初版 3选4)均收益 −0.48%、PF 0.914,是负期望。诊断出机理:投票门槛允许常规动量替代游程结构,而常规动量本身近乎无 alpha。已改为严格与,收益转正。**这是本次最重要的自我纠错。**
3. **怀疑:方向性假设会不会搞反了(应该买连绵而非买拉锯打破)?**
→ **已排除**。变体 d 直接检验反号假设:仅 80 笔交易、PF 0.869 负期望、盈亏比 21.6 明显是小样本离群值。原方向性假设成立。
4. **怀疑:是否和现有公式重复?**
→ **已排除**。ChromaDB 语义相似度 **−8.59%**(阈值 60%),对抗式新颖性评分 **1.00**(阈值 0.7)。全库关键词探针 `连续同向`/`VARRATIO`/`REVCNT` 均 0 命中;`RUNS`(2)/`游程`(6) 的少量命中经核查均为朴素连涨计数,无 Wald-Wolfowitz 检验实现。与最接近的 ID-937(Pearson 一阶自相关)已在 A 段论证数学本质差异(幅度加权 vs 非参数序数)。
**仍然存在的未解风险(诚实标注,写给下一代)**:
- **样本窗口全部落在震荡市**,而本策略恰好是震荡市策略。这构成循环论证风险,是本公式当前最大的未解问题。在拉长到 2023 起的完整周期重验之前,**不能声称策略稳健,只能声称在震荡市样本内有效**。
- 参数网格扫描未做,「未过拟合」不等于「已证稳健」。
---
## 结论
FORMULA-941 在全库引入首个**符号序列非参数检验**维度,经四变体消融实验证明该维度具备独立 alpha(剥离后 PF 1.697→1.078)。消融实验同时推翻了初版四维投票设计(负期望 PF 0.914),修订为游程双条件严格与后转为正期望。
最终指标:胜率 51.66%(简单截面)/ 49.46%(交易加权),平均收益 +3.052%,PF 1.697,盈亏比 4.569,正收益股占比 59.43%,A/B 交叉验证差异 0.00pp。
按 v4.5 拓扑自进化框架,胜率 51.66% > 50% 且样本量(106股/645笔)远超 MIN_TRADES=5 护栏,**加入 effective_logics**。
**核心方法论沉淀**:新维度上线必须先做消融实验,否则无法区分「维度有效」与「维度搭便车」;N-of-M 投票在「单一维度扛 alpha + 其余维度近噪声」的场景下会主动劣化,此时严格与优于投票。
回测统计
胜率
---
平均收益
---
夏普比率
待验证
最大回撤
-0.0%
按市场状态分段表现
暂无市场状态数据