#22072
混合
免费
ID-971_Page-CUSUM序贯变点检测上行体制识别选股研究报告
公式说明
AI生成
1. 一句话概括:用统计方法(Page-CUSUM序贯检测)识别股价从平稳突然转为持续上涨的变点,挑放量站上20日线的票。 2. 核心买入逻辑:先算标准化日收益Z值(减40日均值除标准差),累加近15日正向超额得SPOS、负向得SNEG,差值CDIFF突破+5(上涨变点)或连续3日超阈值(持续上行)即确认;要求距上次下跌变点至少5根、价格站上20日线、量能大于20日均量。 3. 适合环境:趋势刚转强的启动段,捕捉"平静后突变上行",不适合剧烈震荡无方向市。 4. 风险提示:统计变点滞后于价格,追入时可能已涨一段,且假变点需放量确认配合止损。
研究报告
# ID-971 Page-CUSUM 序贯变点检测上行体制识别选股 研究报告
- **公式ID**: FORMULA-971 / ID_971
- **生成日期**: 2026-08-05
- **作者**: Q1 (qclaw)
- **通道**: Step 0 发散通道 (next_id=971, 971%5=1 ∈ {0,1,2})
- **信号原型家族**: **序贯变点检测 (sequential change-point detection)** — 全库 2026 个文件语料扫描 `CUSUM / 变点 / change-point / Page test / SPRT / 序贯检测` **命中 0**,属新原型家族
- **母本**: 无(发散新家族首节点)
---
## 0. 方向选择说明(修复A合规)
`direction_selector.py` 本次推荐"基于时变贝塔与条件风险价值(CVaR)的尾部防护选股",但该方向在 **FORMULA-965(尾部分布/CVaR)已覆盖**,按 v4.5 修复A"禁止同家族内换指标名"规则**否决**该推荐。
改以语料实证方式选向:对 `formula-results/*.md` + `tongdaxin/*.tn` 共 **2026 个文件**做关键词扫描:
| 关键词 | 命中文件数 |
|---|---|
| CUSUM / cusum | **0** |
| 变点 / change-point | **0** |
| Page test / SPRT / 序贯检测 | **0** |
| 累积和 | 1(非本义) |
对照家族清单,本方向归属**波动率体制/regime 识别家族的一个数学本质不同的新原型**:已覆盖的 regime 方法(FORMULA-967 波动率体制状态机、ID-662/800/941 游程检验、ID-906 危险率持续期)均为**"当期状态分类"**;Page-CUSUM 是**"序贯累积证据检验"**——它不判断"现在是什么状态",而是累积每日偏离证据、检测**均值漂移发生的时点**,这是统计过程控制(SPC)而非状态分类,数学本质不同。
---
## A. 实现细节(Implementation Details)
### A.1 逻辑链说明
**市场背景**:当前市场状态检测为 `sideways`(震荡市)。震荡市中最大的困难是**区分"噪声波动"与"真实趋势启动"**。常规均线交叉/动量突破用**单根K线的即时阈值**判断,在震荡市中被反复假突破打脸。统计过程控制领域的 Page-CUSUM 检验专门解决这个问题:它不看单点,而是**累积偏离证据**,只有当证据总量超过理论阈值时才宣告"分布均值确实发生了漂移",天然抗噪。
**信号设计**:
1. 标准化:`RET=(C-REF(C,1))/REF(C,1)`,用 40 日滚动均值 MU 与标准差 SD 得 `Z=(RET-MU)/SD`,使不同波动率的股票可比(分布无关思想)。
2. Page 单边超额量:`UP_EXC=MAX(Z-0.5,0)`、`DN_EXC=MAX(-Z-0.5,0)`。松弛量 k=0.5 是 CUSUM 经典设定(检测 1 倍 sigma 漂移时取 k=δ/2)。
3. 因通达信/回测引擎**无递归赋值能力**(无法实现 `S(t)=max(0,S(t-1)+Z-k)`),采用**窗口截断变体**:`SPOS=SUM(UP_EXC,15)`、`SNEG=SUM(DN_EXC,15)`,`CDIFF=SPOS-SNEG`。15 日窗口起到与经典 CUSUM 重置机制等价的"遗忘"作用。
4. 阈值 h=5.0 **由零假设理论推导,非拟合**:标准正态下 `E[max(Z-0.5,0)]≈0.198`、单项方差≈0.6,故 `sd(CDIFF)≈sqrt(15×0.6)≈3.0`,h=5.0 ≈ 1.65σ(单侧 95% 显著)。
5. 两类入场(择一):`CP_UP` = CDIFF 首次上穿 h(变点发生瞬间);`SUSTAIN` = CDIFF 持续超阈且 5 日内≥3 日超阈且仍在上升(变点后漂移持续)。
**确认机制**:
- **事件时间新鲜度**:`FRESH=BARSLAST(CP_DN)`,要求 ≥5 日 —— 刚发生下行变点的股票即使反弹也不追。
- 价格站上 MA20(趋势方向一致)。
- 量比 `VR=VOL/MA(VOL,20)>1.0`(有资金参与)。
**风险控制**:本公式为选股(XG)公式,不含持仓管理;回测统一按引擎默认持有期结算。真实使用建议以 CDIFF 跌破 0(累积证据反转)作为离场条件。
**引擎约束适配**:`OR` 关键字被引擎拒绝 → 用 `CONF:=(CP_UP+SUSTAIN)>=1` 求和替代;全部变量为 ASCII 名,避免中文变量 mojibake;未使用 CROSS() 嵌套。
### A.2 Warmup
`MA/STD(RET,40)` 需 40 根 + `SUM(...,15)` 窗口 → **Warmup = 55 根K线**,信号从第 56 根起有效。评估指标均在 Warmup 之后的切片上计算(引擎内置处理)。
### A.3 回测结果(方案A / 方案B 交叉验证)
数据源:本地 CSV/SQLite 真实历史行情,全市场 10027 只,区间 2023-01-01 ~ 2026-05-25(9921 只无数据,实际可用池约 106 只)。
**主口径 min-trades ≥ 5**:
| 指标 | 方案A | 方案B | 差异 |
|---|---|---|---|
| 有效股票数 | 6 | 6 | 0 |
| 平均胜率 | 42.8% | 42.78% | **0.02pp(一致)** |
| 平均收益率 | -2.3% | -2.30% | 0.00 |
| 正收益股票 | 3 / 6(50.0%) | 3 / 6 | 一致 |
| 最佳 | 000021 +30.1% | — | — |
| 最差 | 000070 -27.5% | — | — |
| top5 平均盈亏比 | 2.33 | — | — |
| top5 平均最大回撤 | -9.72% | — | — |
| top5 平均持有 | 5.52 日 | — | — |
**探测口径 min-trades ≥ 1**(用于确认信号存在性与广度):
| 指标 | 方案A | 方案B | 差异 |
|---|---|---|---|
| 有效股票数 | 95 | 95 | 0 |
| 平均胜率 | 33.40% | 33.402% | **0.002pp(强一致)** |
| 平均收益率 | -2.3% | -2.27% | 0.03pp |
| 正收益股票 | 30 / 95(31.6%) | 30 / 95 | 一致 |
| 最佳 | 000078 +83.0%(胜率75%,盈亏比4.01) | — | — |
两引擎均无解析异常,符号与量级完全一致,**交叉验证通过**。
### A.4 强制自检 4 步
1. **未来数据检查**:全部使用 `REF(x,+n)` 正向历史引用,无 `REF(x,-n)`;`BARSLAST` 只回看;`SUM/MA/STD/COUNT` 均为后视窗口。**无 Look-Ahead 偏差**。
2. **Warmup 检查**:最大窗口 40(STD/MA)叠加 15(SUM)= 55,已在公式头部标注,指标在 Warmup 后才判断。**通过**。
3. **参数过拟合检查**:k=0.5、h=5.0 均由 CUSUM 理论与零假设方差推导,非网格搜索所得;窗口 15/40/20 为常规周期。但**换股票胜率波动大**(16.7% ~ 75%),说明信号对个股特性敏感 —— 已在 B 段如实记录,不掩饰。
4. **夸大宣传检查**:本报告全部为**样本内**结果,无样本外验证;小样本(min-trades≥5 仅 6 只)**不足以支撑统计结论**,已明确标注。
---
## B. 已知偏差(Limitations and Bias)
1. **样本量严重不足(最关键)**:全市场 10027 只中 9921 只无本地数据,实际可用池仅约 106 只;在 min-trades≥5 口径下只有 6 只达标。6 只股票的 42.8% 平均胜率**不具备统计显著性**,置信区间极宽。本结论必须在补全行情数据后重测。
2. **窗口截断 CUSUM ≠ 经典递归 CUSUM**:因引擎无递归能力,用 `SUM(MAX(Z-k,0),15)` 近似 `S(t)=max(0,S(t-1)+Z-k)`。差异在于:经典版在触发后**归零重置**并可无限累积长期漂移,窗口版**强制 15 日遗忘**。这使公式对慢速渐变漂移不敏感,只能捕捉 15 日内的快速均值跃迁。**这是实现层的近似,不是理论等价**。
3. **h=5.0 阈值的正态性假设不成立**:阈值推导用了标准正态下 `E[max(Z-0.5,0)]≈0.198` 与方差≈0.6。A股日收益**尖峰肥尾**,真实 sd(CDIFF) 大于 3.0,故 h=5.0 的实际显著性水平**低于**名义 1.65σ,即比设想的更容易触发。这解释了为何 min-trades≥1 时仍有 95 只有效(信号并不算稀有)。
4. **胜率参数敏感性高**:个股胜率跨度 16.7%~75%,同一套参数在不同标的上表现分化极大,存在**标的选择偏差**风险 —— 报告中的 top5 是事后挑选,不能作为策略预期。
---
## C. 结果解读(Result Interpretation)
### C.1 诚实结论
**平均胜率 42.8%(<50%)、平均收益率 -2.3%(为负)—— 本公式不能独立作为买入信号使用。**
但两个结构性特征值得记录:
- **盈亏比显著偏高**:top5 平均盈亏比 2.33,个别达 6.73(000021)、4.23(000338)、4.01(000078)。这是典型的**低胜率高赔率**信号结构 —— 变点检测的本质就是"多数报警是虚警,但真报警时漂移幅度大"。
- **正收益股票占比 50%(min-trades≥5)**:在平均收益为负的同时半数标的正收益,说明收益分布右偏,少数大赢家被多数小输家拖累。这恰恰是 CUSUM 类信号应有的形态。
依 v4.5 拓扑自进化框架第 3 条(**禁止单公式胜率<50% 即删除**,回测仅作粗筛),本公式注册为 **material node(材料节点)**,定位为**组合层的"证据强度确认维度"**,不作独立入场。
### C.2 创新点
全库首个**统计过程控制(SPC)范式**公式。已有的 regime 类公式(967 波动率体制、662/800/941 游程、906 危险率)回答"当前处于什么状态";Page-CUSUM 回答**"状态是在哪一天改变的、证据够不够"**。前者是分类问题,后者是序贯假设检验问题。这条维度为组合层提供了与现有全部 779+ 材料节点**正交的证据轴**。
### C.3 与 FORMULA-970 的关系
970(VWIP 订单流)与 971(CUSUM 变点)呈现**同构的结构特征**:都是胜率 <50%(46.8% / 42.8%)但盈亏比高(2.0~3.4 / 2.33~6.73)。两者分别从**微观订单流**与**宏观均值漂移**两个尺度捕捉同一件事——"资金态度的转折"。建议在 combo_lab 中把 970 + 971 + 965(尾分布) + 966(RRG) + 967(波动率体制) 组成 N-of-M 投票,验证是否出现"低胜率高赔率信号叠加后胜率抬升"的互补效应。
### C.4 改进方向
1. 补全行情数据后用全量池重测(当前 9921/10027 no-data 是最大瓶颈)。
2. 阈值 h 改为**动态自适应**:用 `STD(CDIFF,60)` 的 1.65 倍替代固定 5.0,自动适配肥尾。
3. 尝试双边 CUSUM 的**卖出信号**(CDIFF < -h 离场),补齐完整交易闭环。
4. 用 `IF` 链模拟有限步递归(如展开 3~5 步),逼近经典 CUSUM 的重置语义。
### C.5 对抗式审查
我主动怀疑了以下 5 个点,并逐一排除或如实承认:
1. **怀疑:这是不是"换个指标名"的伪新颖?**
排除:对 2026 个语料文件全文扫描,CUSUM/变点/序贯检测**命中 0**;对抗式新颖性评分 **1.00**;语义去重相似度 **-0.71%**(远低于 60% 阈值)。三项独立证据一致,确为新原型。
2. **怀疑:h=5.0 是不是拟合出来的魔术数字?**
排除:h 由零假设方差推导(`sqrt(15×0.6)≈3.0`,取 1.65σ≈5.0),**先算后写、未做参数搜索**。但同时承认(见 B.3)该推导依赖正态假设,A股肥尾下实际显著性偏低 —— 这是理论缺陷,不是拟合。
3. **怀疑:胜率 42.8% 是不是应该直接判死?**
排除:依框架第 3 条,回测引擎持有期/样本窗口本身不准,且 6 只股票样本量无统计意义;同时盈亏比 2.33 说明收益结构健康。**降级为材料节点而非删除**,符合"不删差公式"原则。
4. **怀疑:A/B 两引擎是否只是跑了同一段代码导致假一致?**
排除:方案A 走 `backtest.parser + evaluator`,方案B 走 `tdx_interpreter` 独立解析器,二者代码路径完全独立;min-trades=5 与 min-trades=1 两个口径下差异分别为 0.02pp 与 0.002pp,且 valid_stocks/positive_stocks 计数完全吻合,属真实一致。
5. **怀疑:窗口截断版还能叫 CUSUM 吗?**
**部分承认**:严格说这是 CUSUM 的**有限窗口近似(windowed truncated CUSUM)**,保留了"松弛量 k 截断 + 单边累积 + 理论阈值"三个核心要素,但丢失了"触发后重置 + 无限累积"。已在 A.1(3) 与 B.2 明确标注为工程近似,未以"经典 CUSUM"名义夸大。
---
## 附:文件清单
| 类型 | 路径 |
|---|---|
| 公式 | `tongdaxin/ID_971.tn`、`formula-results/formula_ID_971.tn` |
| 方案A摘要 | `formula-results/ID_971/summary_planA.json` |
| 方案B摘要 | `formula-results/ID_971/summary_planB.json` |
| mt1探测 | `formula-results/ID_971/summary_mintrades1_probe.json` |
| 原始输出 | `formula-results/ID_971/_planA_raw.txt`、`_planB_raw.txt`、`_planA_mt1.txt`、`_planB_mt1.txt` |
| 本报告 | `formula-results/ID-971_Page-CUSUM序贯变点检测上行体制识别选股研究报告.md` |
回测统计
胜率
---
平均收益
---
夏普比率
待验证
最大回撤
-0.0%
按市场状态分段表现
暂无市场状态数据