#21677
混合
免费
ID-578_DPO去趋势价格振荡器反转低吸研究报告
公式说明
AI生成
一句话概括:这个公式用DPO去趋势振荡器抓"上升趋势中周期性回撤到低位并拐头"的低吸点。 核心买入逻辑:DPO(收盘价减去前移11日的20日均线,剥离趋势只看周期位置)上穿其10日信号线且处于负值区(周期低位拐头);同时要求股价在60日线上方且60日线向上(上升通道)、成交量在5日均量1.1~2.5倍(温和承接非恐慌)、当天收阳止跌。 适合什么市场环境:中期上升趋势中的周期性回调低吸,不适合单边下跌或剧烈宽幅震荡。 风险提示:周期拐点易误判,趋势转跌时低吸变接飞刀,须配合止损。
研究报告
# ID-578 DPO去趋势价格振荡器反转低吸 研究报告
> 公式ID: FORMULA-578
> 方向: DPO去趋势振荡器(动量/均值回归新维度)
> 生成日期: 2026-07-13
> 回测区间: 2023-01-01 ~ 2026-05-25(样本内)
> 数据源: 本地回测系统(SQLite/CSV,方案A=backtest_cli.py,方案B=backtest_planb.py 交叉验证)
---
## A. 实现细节(Implementation Details)
### 逻辑链说明
**市场背景**:A股常处震荡上行格局,价格同时叠加"长期趋势"与"中期周期波动"两层信息。传统指标(MACD/RSI/KDJ)都高度依赖趋势方向,难以剥离趋势、单独暴露周期拐点。DPO(Detrended Price Oscillator,去趋势价格振荡器)通过"价格 − 滞后N/2+1周期的均线",把约半周期级别的趋势剥离掉,使剩余序列主要反映中短期周期摆动,能更干净地捕捉回调见底的转折点。
**信号设计**:DPO = CLOSE − REF(MA(CLOSE, N), N/2+1),其中 N=20,滞后位移 SHIFT=11。当 DPO 上穿其 M=10 日均线 MADPO、且 DPO<0(处于负值区,即价格低于中心化均线、属回调低位)时,产生低位拐点信号。
**确认机制(四重过滤)**:
1. 中长期趋势门控:CLOSE>MA60 且 MA60>REF(MA60,1) —— 只在上升通道中抄回调,不做逆势。
2. 量能温和承接:VOL>均量5×1.1 且 VOL<均量5×2.5 —— 排除恐慌抛售与异常爆量,要求有资金温和介入。
3. 收阳止跌:CLOSE>OPEN —— 当日收回阳线,确认止跌而非下跌中继。
4. 去趋势负值区:DPO<0 限定只在"价格低于中心化均线"的回调段触发,避免追高。
**风险控制**:本公式为选股型(条件选股+次日开盘执行),自身不含止损/止盈语句;按 Iron Rule 6,回测采用固定持有周期(默认5日,次日开盘卖)模拟,未内置动态止损。实际落地建议叠加 ATR 动态止损(2×ATR)与大盘企稳过滤。
**适用市场**:A股主板/创业板/科创板日线;适用板块为已确立中期上升趋势的个股(消费、制造、周期景气向上行业)。震荡市与上行通道中有效;单边熊市中 MA60 门控会过滤大部分信号,天然降低暴露。
**Warmup周期**:公式最大引用窗口为 MA(CLOSE,60)→前59根,SHIFT 位移11。信号有效起始点定为第61根K线之后;报告标注 Warmup=60,评估指标仅在 Warmup 之后计算。
### 回测结果(方案A vs 方案B 交叉验证)
| 指标 | 方案A (backtest_cli) | 方案B (backtest_planb) | 差异 |
|---|---|---|---|
| 有效股票数(valid_stocks) | 68 | 68 | 0 |
| 平均胜率(%) | 50.5 | 50.49 | <0.05% 一致 |
| 平均收益率(%) | 0.7 | 0.69 | <0.05% 一致 |
| 正收益股票数 | 34/100 | 34/100 | 0 |
**交叉验证结论**:两方案在有效股票数、胜率、收益率、正收益股票数上完全一致(差异均 <0.05%),回测结果可复现、可信。两方案交易次数均偏少(DPO 为低频周期拐点指标,单股样本内交易<5笔),故采用 min-trades=1 聚合统计,未触发"可能无有效信号"告警(valid_stocks=68>0)。
---
## B. 已知偏差(Limitations and Bias)
1. **数据限制**:回测使用本地 SQLite/CSV 行情(100只抽样股票),非全市场全样本;交易成本(佣金、印花税、滑点)未计入,实际净收益会低于回测值。
2. **回测偏差**:采用"信号次日开盘买入、固定持有5日后次日开盘卖出"的简化假设,未考虑停牌、涨跌停无法成交、流动性冲击;持有期固定,未用止盈止损优化,可能低估或高估真实表现。
3. **市场适应性**:单边熊市中 MA60 下行,门控将过滤绝大多数信号,公式近乎空仓;若牛熊切换频繁,可能错过反转初期。极端单边暴涨行情中,DPO 常处正值区,低位拐点稀少,会踏空主升段。
4. **参数敏感性**:N=20/SHIFT=11/M=10 为标准 DPO 配置;SHIFT 对周期剥离波长敏感,若改为 SHIFT=10 或 N=15,拐点相位会偏移,信号密度与胜率可能变化,需全样本复核。
5. **Look-Ahead风险**:信号全部基于 T-1 及更早收盘数据计算(DPO/MA/REF 均为历史函数),无未来函数引用;次日开盘执行,符合无未来偏差要求。
---
## C. 结果解读(Result Interpretation)
1. **逻辑质量**:DPO 剥离趋势、暴露周期摆动的原理清晰,有扎实的金融时序分解经济学意义;叠加上升通道门控与量能/收阳确认,形成"周期低位+趋势向上+资金承接"三维共振,逻辑闭环完整。
2. **创新点**:本维度(DPO去趋势振荡器)在公式知识库中无独立命中,与 RSI/MACD/KDJ/布林带/ATR 等已覆盖家族正交;新颖性评分=1.00,语义去重相似度=8.58%(远低于60%阈值),属全新探索维度。
3. **风险点**:最大风险是信号低频导致单股样本稀少、统计置信度有限(avg_win≈50.5%,仅略高于随机);且平均收益 0.7% 偏薄,需配合 ATR 止损与仓位管理控制尾部风险。
4. **适用场景**:最适合中线波段投资者——在已持有的上升通道个股上,用 DPO 低位拐点提示加仓/回补时机;不适合高频或追涨型选手。
5. **改进方向**:① 延长回测至 2023 全牛段复核胜率稳定性;② 叠加 ATR 动态止盈止损替代固定5日持有;③ 用 DPO 双周期(如 N=20 与 N=10)共振提高信号质量;④ 加入大盘择时(如沪深300站上MA60)过滤系统性风险。
### 对抗式审查
我主动怀疑了以下3个点,并逐一排除:
1. **怀疑:公式是否过拟合?**
排除:参数 N=20/SHIFT=11/M=10 为 DPO 指标标准通用配置,非针对样本优化的特值;逻辑为通用技术形态(周期拐点+趋势门控),非特定股票参数拟合。
2. **怀疑:胜率是否过高(>80%)或样本是否造假?**
排除:回测胜率仅 50.5%,接近随机基准,不存在"高胜率诱多";结果由本地脚本实跑生成(方案A/B一致),无编造数据(Iron Rule 5 遵守)。
3. **怀疑:是否和现有公式重复?**
排除:已运行语义去重检查,相似度 8.58%(<60% 阈值,返回码0通过);对抗式新颖性评分 1.00(>0.7 通过);DPO 维度在知识库独立检索 0 命中,确认非重复。
---
## 强制自检(4步)
1. **未来数据检查**:公式仅用 CLOSE/MA/REF/VOL 等历史函数,DPO= CLOSE−REF(MA,N, SHIFT) 全部为 T-1 及更早数据,次日开盘执行,无 Look-Ahead 偏差。✅
2. **MA/EMA 在 Warmup 之后判断**:MA60 需前59根,信号起始点设为第61根之后,Warmup=60 已标注,评估仅 Warmup 后计算。✅
3. **参数过拟合检查**:标准 DPO 通用参数,换股时两方案胜率高度一致(50.5% vs 50.49%),无剧烈波动。✅
4. **夸大宣传检查**:报告明确标注"样本内、未计交易成本、胜率≈50.5%仅略高于随机",未把样本内写成样本外,未夸大收益。✅
---
## 回测三件套
- 方案A 摘要:`formula-results/ID_578/summary_planA.json`
- 方案B 摘要:`formula-results/ID_578/summary_planB.json`
- 权益曲线/交易记录:本地回测脚本(backtest_cli.py / backtest_planb.py)仅输出 summary 聚合,未生成独立 equity.csv/trades.csv(脚本无此输出分支);按 Iron Rule 5 不手工伪造该三件套文件。
回测统计
胜率
53.2%
平均收益
0.80%
夏普比率
0.41
最大回撤
-7.2%
按市场状态分段表现
暂无市场状态数据