ADX 指标是技术分析中被广泛应用的 趋势强度量化工具。它由 方向性指标系统(DMI) 演变而来,不指向涨跌方向,却能用数值告诉我们趋势到底有多强。掌握在振荡市与单边市中切换节奏,是高效 ADX 交易策略 的第一步。
ADX 的诞生故事
1978 年,机械工程师出身的 J ·威尔斯·怀尔德(J. Welles Wilder Jr.) 在其开创性著作《技术交易新观念》中首次提出 ADX。他用当时少见的 平滑算法 把价格运行的“方向能量”抽象成一个 0–100 的数值,开创了 趋势强度量化 的新纪元。
ADX 计算公式逐行拆解
理解公式是编写 ADX 指标 Python 脚本的前提。下列六大步骤环环相扣,任何环节的取值都将影响最终 ADX 曲线的形态。
1 计算真波幅(TR)
TR = max(High-Low, |High-Close_prev|, |Low-Close_prev|)真波幅代表当天价格最大波动幅度,能如实反映跳空、影线等全部价格信息。
2 计算 +DM 与 −DM
- 若
(High - High_prev) > (Low_prev - Low),则
+DM = High − High_prev;否则 +DM = 0 - 若
(Low_prev - Low) > (High - High_prev),则
-DM = Low_prev − Low;否则 -DM = 0
3 使用 Wilder 平滑函数求 TR、+DM、−DM 的平均值
smoothed_today = (prev_smoothed * (N-1) + current_value) / N- N 通常取 14 周期
- 该算法赋予近期数据更快权重,但仍保留历史惯性
4 计算方向性指标 +DI、−DI
+DI = (+DM_smooth ÷ ATR) × 100
-DI = (−DM_smooth ÷ ATR) × 100数值高于 25 通常说明对应方向的 动能强劲。
5 计算方向指数 DX
DX = |+DI − (−DI)| ÷ (+DI + (−DI)) × 100DX 把看涨与看跌力量的差值标准化到 0–100,为最终 ADX 铺垫。
6 得到 ADX
ADX = Wilder 平滑 DX,周期同步骤 3 的 N数值经验区间:
| ADX 值 | 市场状态解读 |
|---|---|
| <20 | 无明显趋势,震荡区间居多 |
| 20–40 | 趋势正在加强 |
| >45 | 趋势极端,警惕衰竭回档 |
ADXATR 与 ADX 的区别
二者常被混淆,实则各司其职:
- ADX:纯粹测量趋势强度
- ATR (也称 ADXATR):衡量市场波动率,提示潜在止损区间
👉 用一张图表看懂 ADX 与 ATR 的配合方式,避免把波动当趋势!
四大多空策略实战案例
借助 ADX 交易策略 可在不同行情抓拐点:
- 突破确认
ADX 从 20 以下瞬间抬升 → 价格同步突破阻力/支撑,顺势追入。 - 趋势衰竭
ADX 高位拐头向下且跌破 45 → 收割利润或准备反向思维。 - 加速度信号
连续两根 K 线 ADX 差值 ≥ 3 → 加杠杆同向加仓,但设置 tighter 的跟踪止损。 - 与 DMI 共舞
ADX 上穿更高数值的 +DI,证实多头增强;上穿 −DI,反转成空头主导。
FAQ:关于 ADX,投资者最常问的 5 个问题
Q1:ADX 能迅速捕获反转吗?
A:不能。它只揭示“力量”,当力量骤降时已调整过半,需要结合价格行为或 RSI 加速提示。
Q2:日内交易把周期调成 5 是否更好?
A:减少滞后,但噪音增多。用 滚动回测 比较 5/8/14 三种参数后再上线实盘。
Q3:为何我的 ADX Python 数值与平台不一致?
A:检查第一根 K 线初始值的赋值方式与平滑顺序,多出 0.01 的初期误差会蔓延。
Q4:横盘期还能用 ADX 吗?
A:把 ADX 当过滤器,<20 保持观望或改用震荡策略,如布林带高抛低吸。
Q5:加密货币也能套用 ADX 吗?
A:可以。因为“7×24 小时无跳空”,TRUE RANGE 计算更纯粹,加密交易员常把 ADX 作为永续合约方向过滤。
Python 全程手撕 ADX 源码
安装依赖(一次性命令):
pip install yfinance pandas numpy matplotlib mplfinanceStep 1:Wilder 平滑函数
def wilder_smoothing(series, window=14):
s = series.copy()
s.iloc[:window] = s.iloc[:window].mean()
for i in range(window, len(s)):
s.iloc[i] = (s.iloc[i-1]*(window-1) + series.iloc[i])/window
return sStep 2–6:下载数据 → 计算 → 可视化
代码已在重组时精简逻辑,确保删繁就简无商业链接,完整脚本可直接在 VSCode 运行生成如下场景:
蓝色 ADX、绿色 +DI、红色 −DI,三线联动一目了然。
盘中一眼识别 趋势强度与转折点,即可执行加仓或休息决策。
日内交易专属调校
- 窗口长度:通常缩小到 8–10 根 K 线
搭配指标组合:
- RSI(周期 7) 捉 超买/超卖
- EMA 5/10 交叉 给 入场时机
- 成交量 delta 判多头/空头 能量真实性
盘前 1 小时用回测引擎多参数跑 ADX Python 脚本,压缩低效组合,只上线胜率>55%、盈亏比>1.7 的方案。
👉 进入一目十行的策略沙盒,从数据清洗到回测结果仅需 20 分钟!
ADX 与其他明星指标同台比较
| 指标 | 主要功效 | 适合场景 |
|---|---|---|
| ADX | 趋势强度 | 中度到长期波段 |
| RSI | 超买/超卖 | 震荡、反转区 |
| MACD | 动量 + 趋势 | 多头/空头确认 |
| ATR | 波动率 | 设置止损、止盈 |
组合打法:
- ADX > 25 + MACD 金叉 ➝ 只做顺势
- ADX < 20 + RSI 突破 70 返回 ➝ 高抛震荡区间顶部
优点与局限全透视
优势
- 量化趋势强度,数据直观
- 适用于股票、期货、加密等多市场
- 与方向指标组合后噪声极低
短板
- 滞后性:平滑算法天然延迟
- 无方向性:需额外确认涨跌
- 参数敏感:最佳周期需回测
- 震荡市乏力:频繁假信号
通过实盘微调 ADX 窗口 并搭配 实时过滤条件,可将劣势影响压到最低。
关键要点回溯
- ADX 的核心定位:趋势强度计
- Wilder 平滑与 14 周期是默认起点,但绝非唯一
- 与 DMI、RSI、MACD 组合后,形成多维度决策脚本
- Python 手写一遍,胜过十遍死背公式
- 任何成功 ADX 交易策略 离不开 止损、仓位、情绪 三大管理支柱
把握趋势,辨认噪声,驯服 ADX,你的交易之路将更从容。