#21609
混合
免费
ID-515_DPO去趋势周期转折选股研究报告
公式说明
AI生成
一句话概括:用DPO去趋势振荡器找价格从周期低点刚回升的买点,并叠加趋势、量能、动量过滤来提高胜率。 核心买入逻辑:当DPO值向上穿过它的6日均线(CROSS)发出周期转折信号,同时要求收盘价在20日均线上且均线向上(趋势向好)、成交量放大超1.2倍(有资金)、RSI14低于70(没超买)、当日涨幅在1%到6%之间(不追高)。 适合环境:震荡市,价格围绕中枢波动、剔除大趋势干扰后捕捉周期低点回升;不适合单边下跌或强趋势市。 风险提示:震荡市也会假突破,需按DPO死叉或RSI超70及时退出止损。
研究报告
# ID-515 DPO去趋势周期转折选股 研究报告
> 公式文件:`tongdaxin/ID_515.tn`(同时备份 `formula-results/formula_ID_515.tn`)
> 生成时间:2026-07-09 作者:Q1 (qclaw) 公式ID:FORMULA-515
---
## A. 实现细节(Implementation Details)
### 公式逻辑
本公式核心为 **DPO(去趋势价格振荡器 / Detrended Price Oscillator)**。标准定义:
`DPO = 收盘价 − 滞后 N1 期的 N1 日均线`(本公式 N=20 → N1=11)。
其本质是**把价格的趋势成分(长期均线)从收盘价中扣除**,只保留围绕价值中枢的周期性波动。
买入信号在 **DPO 由下向上穿越其 6 日均线(DPO_MA)** 时触发,代表价格的"周期低点"开始拐头向上。
四重过滤确认机制:
- **趋势过滤 TREND_OK**:`CLOSE>MA20 且 MA20 向上`,确保处于中期上升通道,避免弱势股下跌中继假转折。
- **量能确认 VOL_OK**:`VOL>5日均量×1.2`,要求资金实际参与,过滤无量空涨。
- **动量过滤 NOT_OB**:`RSI14<70`(RSI 由 MA 手算,规避回测引擎不支持内置 RSI 函数),不追高。
- **涨幅控制 GAIN**:当日涨幅 1%~6%,不追涨停、不抄暴跌。
### 执行时点
信号在**当日收盘后**由历史数据(REF/MA/滞后均线)判定,属**无前视偏差(No Look-Ahead)**信号;
实盘建议次日开盘执行。回测用区间收盘信号、次日开盘计入,符合 Iron Rule 1。
### 过滤机制
四重过滤见上。可视化用 `DRAWTEXT` 标注"DPO周期转折",`STICKLINE` 显示 DPO 柱。
### 风险控制
- 内置**动态退出建议**(写入报告,非自动卖出):`DPO_VAL 再度死叉 DPO_MA` 或 `RSI14>70` 离场。
- 建议叠加 **ATR 波动率门槛**过滤无趋势横盘噪音(见改进方向)。
### 适用市场
A股日线级别;最适合**震荡市/波段市**(当前市场状态被方向选择器判定为 sideways),
不适用于强单边趋势(DPO 去趋势特性在单边市会频繁误判)。
### Warmup 周期
最大窗口 = DPO 的 MA11 + 滞后 11 = 22 根,再加 DPO_MA(6) 与 MA20 = 28 根。
**前 28 根 K 线不生成信号,信号自第 29 根起计算**;评估指标在 Warmup 切片之后重算。
### 回测结果(方案 A / 方案 B 交叉验证)
| 指标 | 方案 A(CSV/SQLite) | 方案 B(同一引擎 CSV) | 结论 |
|---|---|---|---|
| 有效股票 | 28 / 100 | 28 / 100 | 一致 |
| 平均胜率 | 47.1% | 47.1% | 差异 0.0%(<5% 一致✅) |
| 平均收益 | −0.4% | −0.4% | 符号一致✅ |
| 正收益占比 | 35.7% | 35.7% | 一致 |
| 最佳个股 | 000063 (+21.7%) | 000063 (+21.7%) | 一致 |
| 最差个股 | 000151 (−17.7%) | 000151 (−17.7%) | 一致 |
> 注:方案 A 默认启用 MySQL 时因环境无 MySQL 返回 100 个错误(no_trades),
> 强制 CSV 源后两方案完全一致。偏差来源已定位为数据源可用性,非逻辑差异。
---
## B. 已知偏差(Limitations and Bias)
1. **数据限制**:回测用 `stock_data/` 目录下约 100 只个股的 CSV 行情,非全市场;样本代表性有限。
2. **回测偏差**:回测引擎固定约 6 日持有周期、无交易成本、无滑点,实际收益会被侵蚀;
且引擎仅输出 胜率/收益率/最大回撤/盈亏比 四项,**未计算夏普/VaR/CVaR/全局盈利因子**(本报告不编造)。
3. **市场适应性**:DPO 为去趋势振荡器,**强单边上涨市会持续钝化(DPO 长期在 0 上),信号稀少甚至踏空**;
强单边下跌市则频繁触发但胜率受趋势压制(样本内平均收益 −0.4% 即反映此特征)。
4. **参数敏感性**:N1(滞后周期)对 DPO 形态敏感,N 由 20 改为 10/30 会显著改变信号密度;
属中等敏感参数,非过度拟合但需稳健性验证。
5. **Look-Ahead 风险**:已排查——所有信号变量均来自 REF/MA/滞后均线,**无未来数据引用**。
---
## C. 结果解读(Result Interpretation)
### 逻辑质量
DPO"去趋势"机制具有清晰的经济学意义:把价格拆成"趋势 + 周期"两部分后,只用周期部分择时,
在震荡市里比传统趋势指标(MA/MACD)更不容易被长期均线误导。逻辑自洽、可解释。
### 创新点
- 知识库 666 个公式中 **DPO 维度 0 命中**,属全新指标家族。
- 与今日已研究的 Aroon/EMV/VR/SKDJ/AR-BR/PVT/KST/WAD/CR 根本不同:前述均为"叠加型"动量/情绪/资金指标,
本公式为唯一的"去趋势型"周期择时器,机制互补。
### 风险点
最大风险是**样本内平均收益为负(−0.4%)、胜率 47.1% < 50%**,仅略高于随机。
该信号属"领先转折"类,在震荡市假转折较多。应通过:①动态退出(DPO 死叉即离场,改善盈亏比)
②叠加 ATR 波动率门槛过滤横盘噪音 ③扩大股票池提升统计显著性,来改善实盘表现。
### 适用场景
适合**量化波段交易者**在震荡市做仓位轮动;不建议作为单一信号满仓,应作组合中的周期择时卫星信号。
### 改进方向
1. 退出机制改为 `DPO_VAL 死叉 DPO_MA 或 RSI14>70` 动态离场,而非固定持有。
2. 叠加 ATR 波动率门槛,过滤 DPO 在无趋势阶段的假穿越。
3. 扩大回测股票池(当前 100 只)至全市场,检验统计稳健性。
4. 可测试 DPO 多周期共振(如 DPO(20) 与 DPO(10) 同步拐头)提升信号质量。
### 对抗式审查
我主动怀疑了以下 3 个点,并逐一排除:
1. **怀疑:是否因回测引擎不支持 RSI 函数导致 0 信号、结果不可信?**
排除:初版用内置 `RSI()` 触发"不支持的函数"异常(100 只全错)。已改为用 MA 手算 RSI14
(仅依赖 MA/MAX/REF 原语),重测后两引擎正常出 28 只有效信号,根因已消除,结果可信。
2. **怀疑:是否过拟合 / 参数专为样本调优?**
排除:DPO 为标准教科书定义(N=20→N1=11,信号线 6 日),参数为通用默认值,
非针对本样本搜索优化;四重过滤为逻辑性过滤而非参数堆砌。
3. **怀疑:是否和现有公式重复(语义克隆)?**
排除:知识库扫描 DPO 维度 0 命中;语义去重脚本返回相似度 −10.27%(远低于 60% 阈值,
返回码 0 通过);对抗式新颖性评分 1.00(满分)。确属全新维度。
回测统计
胜率
---
平均收益
---
夏普比率
待验证
最大回撤
-0.0%
按市场状态分段表现
暂无市场状态数据