Q-CodeQ-Code 打开工作台

ADX 趋势强度择时

趋势跟踪A股风险 低入门更新 2026-09-24#ADX#DMI#状态机

以 ADX 度量趋势强度、DMI 辨别方向的状态机:强趋势跟随、无趋势观望,解决趋势策略在震荡市的磨损。

策略目标

趋势策略最大的敌人不是反向行情,而是无方向:震荡市中所有趋势跟随者都在被反复止损。ADX(平均趋向指数)不判断方向,只回答“现在有没有趋势、强度多大”这一问题 [1];DMI 的方向线回答“趋势朝哪边”。两者组合成状态机:强趋势跟随,无趋势观望——把“什么时候不该交易”变成显式规则,这是它与其他趋势策略最大的差异。

DMI 与 ADX 定义

方向变动:+DM=max⁡(ΔH,0)+DM = \max(\Delta H, 0),−DM=max⁡(ΔL,0)-DM = \max(\Delta L, 0)(取有效变动)。

方向指标:+DI14=100×smoothed(+DM)ATR14+DI_{14} = 100 \times \frac{\mathrm{ smoothed}(+DM)}{ATR_{14}},−DI-DI 对称。

DX=∣+DI−(−DI)∣+DI+(−DI)×100,ADX=MA14(DX)DX = \frac{|{+DI} - (-DI)|}{{+DI} + (-DI)} \times 100, \qquad ADX = MA_{14}(DX)

状态机与执行规则

三态规则:强多态(ADX ≥ 25 且 +DI > -DI)满仓持有;强空态(ADX ≥ 25 且 -DI > +DI)空仓;震荡态(ADX < 20)维持现状不动作。25 到 20 之间为过渡带,禁止切换——过渡带与“不动作”规则是防磨损的核心,不可为了灵敏度移除。

风险与失效场景

  • ADX 滞后:14 日平滑使 ADX 在趋势确立后才升高,入场偏晚;
  • 震荡-趋势边界磨损:ADX 在 20-25 之间反复穿越时,过渡带规则会让策略长时间观望;
  • 参数普适性存疑:14/25/20 是 Wilder 时代的常用值,跨标的必须重测;
  • 急速 V 型:ADX 来不及反映的深 V 反转,策略只能承受;
  • 与动量类策略重叠:强多态与时间序列动量为正高度相关,组合使用需评估增量。

验证状态

待验证。需要完成:ADX 阈值 20/25/30 与周期 14/20 的网格;过渡带宽度的敏感性;与年线择时、双确认策略的状态重合度;分年度的观望期占比与踏空成本。本文不提供任何未实测的收益或回撤数字。

参考文献与延伸

[1] Wilder, J. W. (1978). New Concepts in Technical Trading Systems. Trend Research.(ADX 与 DMI 的原始定义)

[2] Q-Code 量化策略工作台

策略逻辑结构

  1. ETF 行情 — 日线 OHLC 数据
  2. DMI 计算 — +DI / -DI 方向指标
  3. ADX 强度 — 趋势强度度量
  4. 状态机判定 — 强多/强空/震荡三态
  5. 档位执行 — 跟随、清仓或观望

AI 生成提示词

复制以下提示词,打开 Q-Code 工作台粘贴到 AI 对话框,即可自动生成该策略的 QMT 策略代码(单个完整 .py 文件,支持 QMT 回测与实盘)。

请生成一个 QMT 兼容的 ADX/DMI 趋势强度择时策略。标的为宽基或行业 ETF(参数注入):计算 14 日 ADX 与 +DI/-DI;ADX 高于 25 且 +DI 高于 -DI 时次日满仓持有,ADX 高于 25 且 -DI 高于 +DI 时次日清仓,ADX 低于 20 视为震荡态维持当前仓位不动作;25 至 20 之间为过渡带不切换。全部阈值写入 init,禁止未来函数(指标只用收盘数据),兼容回测与实盘分支,输出单个完整 Python 文件并包含状态变更日志。
用自然语言,生成你的 QMT 策略
注册即赠 200 积分,约可生成 5 次 · 支持 Kimi / GLM / DeepSeek
打开 Q-Code 工作台