#22209
混合
免费
ID-1107_DMI趋势强度DI金叉结构回踩选股研究报告
公式说明
AI生成
一句话概括:在强趋势(ADX>20)且多头动能刚金叉时,抓股价回踩20日线后次日收复的放量阳线买点。 核心买入逻辑:手工算真实波幅TR和正负方向运动,经Wilder平滑得+DI、-DI、ADX;要求ADX>20(趋势够强);+DI上穿-DI(动能金叉)且+DI>-DI(多头主导);昨日收盘在20日线下方、今日收复并收阳(回踩确认);成交量大于20日均量1.2倍。五条件全满足才选股。离场为+DI下穿-DI或跌破20日线。 适合什么市场环境:适合已有明确强趋势、短暂回踩均线的顺势低吸。 风险提示:ADX滞后且回踩可能是趋势反转开端,死叉或破线需及时离场。
研究报告
# FORMULA-1107 真实DMI/ADX趋势强度体制 + DI动能金叉 + 结构回踩确认选股 研究报告
> 公式ID: FORMULA-1107 | 通道: Step 0 发散 (next_id=1107, 1107%5=2 → 发散, 跳过配方迭代)
> 家族: 波动率体制 (family #2) — 与 F1097 收益率方差比体制 数学本质不同
> 生成时间: 2026-08-18 15:00 (Asia/Shanghai)
## A. 实现细节 (Implementation Details)
### 信号逻辑
本公式构建**真实DMI/ADX趋势强度体制分解**,信号由五维条件构成:
- **ADX_OK**:ADX > 20,判定当前处于"强趋势体制"(ADX衡量趋势强度而非方向)。
- **DI_GOLD**:+DI 上穿 -DI (CROSS(PDI, MDI)),方向动能金叉,捕捉多空力量转折。
- **DI_DOM**:PDI > MDI,确保多头方向主导。
- **RETEST**:价格回踩MA20次日收复且收阳(结构确认,过滤假突破)。
- **VOL_OK**:成交量 > MA(VOL,20)*1.2(资金确认)。
选股输出:`ADX_OK AND DI_GOLD AND DI_DOM AND RETEST AND VOL_OK`。
离场信号 XGS:`+DI 下穿 -DI OR 收盘 < MA20`。
### 数学实现(关键工程约束)
回测引擎 `backtest/functions_legacy.py` 的 **ATR 为占位函数(恒返回10.0)**,故本公式**手工计算真实波幅**:
`TR := MAX(MAX(HIGH-LOW, ABS(HIGH-REF(CLOSE,1))), ABS(LOW-REF(CLOSE,1)))`
方向运动 +DM/-DM 经 `SMA(X, N, 1)` 实现 Wilder 平滑(SMA 在本引擎为真实递推公式),进而得 PDI、MDI、DX、ADX。全部仅用引擎已注册函数(MAX/ABS/REF/SMA/CROSS/MA/AND/>),无未注册依赖,故双引擎均可真实执行(区别于 F1101/F1102 早期 0 信号陷阱)。
### 执行时点
T日收盘计算信号,T+1 开盘执行(规避 Look-Ahead:所有极值/REF均取已定稿历史值)。
### 过滤机制
RETEST(结构回踩收复)+ VOL_OK(量能门槛)双重过滤,剔除无资金参与的方向性假金叉。
### 风险控制
内置离场 XGS:动能死叉或跌破中期均线即离场,控制回撤。
### 适用市场
A股主板/创业板/科创板趋势行情;震荡市 ADX<20 段自动不触发(体制门控)。
### Warmup周期
最大窗口 = Wilder SMA(TR,14) 嵌套 + 中期 MA20 + 量能 MA20 + 回踩 REF(MA20,1) ≈ **前60根K线不计入信号**,已在公式头部注释标注。
### 回测结果(方案A / 方案B 对比,真实双引擎交叉验证)
8只流动性蓝筹代表性样本(600519/000858/601318/002594/300750/000001/002415/600036),2023-01-01~2026-05-25:
- 8/8只产生信号,共 **18笔** 交易。
- 逐股胜率 [25/50/0/0/0/50/100/100]%,平均胜率 **40.62%**。
- 方案A 与 方案B **逐股完全一致**(Win差异 0.00pp),两独立解析器交叉验证通过。
- 盈亏比(PDI/MDI引擎输出 profit_loss_ratio):002415、600036 因各仅1笔全胜出现除零值 999(已如实标注,非真实999:1)。
- 引擎未输出 Sharpe/VaR/CVaR/盈利因子(依 Iron Rule 5 不编造,见B段)。
## B. 已知偏差 (Limitations and Bias)
1. **数据限制**:回测基于本地 SQLite/CSV 行情;全市场10027只扫描因引擎逐股计算慢(~1.6只/秒)未跑完,仅用8只蓝筹代表性样本。全市场聚合收益若混入 88xxxx/204xxx/51xxxx 指数基金代码会失真(F1014/F1016/F1096 同源问题),故未做全市场收益聚合。
2. **回测偏差**:持有期/样本窗口由引擎固定(T日信号T+1执行、固定持有至XGS),非样本外 Walk-forward;小样本(18笔)统计置信低。
3. **市场适应性**:强趋势体制门控(ADX>20)在震荡市自然失效,但在单边下跌中 +DI金叉仍可能触发(DI_DOM 仅过滤方向不过滤大市),熊市胜率会显著低于牛市。
4. **参数敏感性**:ADX阈值20、N=14为通用Wilder默认;阈值调至25会大幅减少信号数量,调至15会增加噪声信号,敏感。
5. **Look-Ahead风险**:无(所有 REF 取历史已定稿值,无 REF(X,-1) 类未来函数)。
6. **指标缺失**:Sharpe/VaR/CVaR/盈利因子 引擎未输出,本公式不宣称这些指标。
## C. 结果解读 (Result Interpretation)
### 逻辑质量
DMI/ADX 是趋势强度分析的标准范式,经济学意义清晰:用方向性运动(DM)分解多空力量,用 ADX 度量趋势"强度"而非"方向",与方差比(F1097)/带宽(F1102)在数学本质不同(方向性运动 vs 收益率统计矩)。
### 创新点
区别于库内既有 `dmi_adx_trend` 单一旗标(池内评分61.67%),本公式叠加了 **(1) +DI/-DI 金叉时机 (2) MA20结构回踩收复 (3) 量能门槛** 三维确认,信号更稀疏、更偏"转折+确认"而非"持续持有",是一套新组合原型。
### 风险点
窄样本平均胜率 40.62% < 50%,单看蓝筹样本呈负期望线索(与 F1103/F1104 同类现象);需 5074 只清洗 universe 宽样本裁决(同 F1018/F1019 流程)确认全市场正期望。最大风险:熊市中 ADX>20 + DI金叉误触发下跌中继反弹。
### 适用场景
适合趋势跟踪型、能承受中期回撤、偏好"强趋势启动+结构回踩"低风险买点的中长线投资者。
### 改进方向
(1) 清洗 universe(剔除 88xxxx/204xxx/51xxxx)后重测全市场收益/回撤;(2) 在 backtest/function 落地真实 ATR 后可直接用 ATR(N) 替换手工TR;(3) 增加大市过滤(如 INDEXC>MA60)降低熊市误触发。
### 对抗式审查
我主动怀疑了以下3点并逐一排除:
1. **怀疑:公式是否过拟合(参数堆砌)?** 排除:仅用 Wilder 通用默认 N=14、ADX阈值20,无针对个股优化,属通用技术范式,非过拟合。
2. **怀疑:是否踩中引擎未注册函数 0 信号陷阱(如 F1101/F1102)?** 排除:已确认 ATR 为占位,本公式手工用 MAX/ABS/REF 计算真实 TR 并经 SMA Wilder 平滑(已注册真实实现),双引擎均真实触发 18 笔,非 0 信号。
3. **怀疑:是否和现有 dmi_adx_trend 公式重复?** 排除:语义去重相似度 12.75% (<60% 通过);逻辑链在"DI金叉+结构回踩+量能"三维确认上本质不同,非同家族换名。
### 强制自检(4步)
1. 无未来数据(Look-Ahead):✅ 所有极值/REF 取已定稿历史值。
2. MA/EMA/SMA 在 Warmup 后才判断:✅ Warmup=60 根已标注。
3. 参数过拟合:⚠️ 通用默认参数,非个股优化;窄样本胜率<50% 提示需宽样本裁决(已记录待办)。
4. 未夸大宣传:✅ 未将样本内写作样本外;未编造 Sharpe/VaR/CVaR/盈利因子。
回测统计
胜率
---
平均收益
---
夏普比率
待验证
最大回撤
-0.0%
按市场状态分段表现
暂无市场状态数据