ADX 是根据价格高点和低点的变化计算并平滑处理后的数值。它常与 +DI、−DI 一起显示:这两条线比较向上和向下的方向性运动,ADX 则概括两者优势差距的大小,不区分方向。它描述的是已有数据,不是收益率,也不是继续上涨的概率。
彼得看到价格下跌,而下方的 ADX 正在上升。图表并没有自相矛盾,可能只是下跌趋势正在增强。要理解原因,可以先从一根代表某段时间的蜡烛图开始。High 是该时段的最高价,Low 是最低价。TradingView 将当前 High 减去前一个 High 称为 UpMove,将前一个 Low 减去当前 Low 称为 DownMove。只有 UpMove 为正且大于 DownMove 时,+DM 才取 UpMove;−DM 则采用相反的比较。若两者相等,两项都记为零。算法选择的是价格极值较大的正向位移,而不是同时把两个方向都加进去。 [1]
单看价格位移,还需要一个比较尺度。Fidelity 用 True Range(TR)来衡量,TR 也考虑与上一收盘价之间的距离。TR 取 High–Low,以及两个极值分别到前一个 Close 的绝对距离中的最大值;Close 就是收盘价。绝对距离只看差值大小,不看正负号。方向性运动和 TR 都先按 Wilder 方法平滑,因此也包含历史信息。平滑后的向上运动除以平滑后的 TR,再乘以 100,得到 +DI;−DI 的计算方式相同。名称中的减号表示向下方向,不代表负数。若分母为零,这个比值本身没有定义。 [2]
彼得接下来想知道两条线相差多大。+DI 和 −DI 可以算出中间结果 DX:把两者之差的绝对值除以两者之和,再乘以 100。Fidelity 描述的就是这一比较。关键在于绝对值。交换两条线的数值会改变优势方向,却不会改变 DX。它不是价格涨幅,也不是成功概率。如果两条线之和为零,就无法进行这次除法;应用程序显示的替代值属于实现约定,不是上述比值的计算结果。 [2]
DX 描述当前的比例,ADX 则平滑其历史变化。Fidelity 先计算选定周期数内 DX 的平均值,再把后续值纳入前一个结果。长度为 n 时,用前一个 ADX 乘以 n − 1,加上当前 DX,最后除以 n。例如,14 表示计算周期数,不一定是天数。因此,一对方向线数值只能让彼得算出 DX,缺少历史就不能算出完整的 ADX。比较不同应用时,还要核对初始数据、长度和采用的平滑方法。结果会保留过去的信息,所以对行情变化有滞后。 [2]
在 TradingView 描述的 DMI 组合中,各条线承担不同任务。+DI 高于 −DI,说明平滑后的向上分量更强;顺序相反则是向下分量占优。ADX 本身描述的是这种优势经过平滑后的强度。因此,ADX 上升不一定是比特币持有者的好消息,它也可能伴随跌势加深。ADX 下降同样不自动意味着价格反转。趋势可以继续,只是方向优势不再那么明显,而平均值仍包含先前走势。没有哪条线能够独自说明接下来会发生什么。 [1]
TradingView 列出传统参考水平 20 和 25。低于前者时,趋势常被称为较弱;高于后者时,则被称为较强。但彼得若把突破阈值直接当成买入规则,就会犯错,因为强趋势也可能向下。数值与市场、时间间隔及设置有关,这些水平并非适用于所有图表的通用边界。ADX 较低也不代表价格平静或不动。大幅波动可能在两个方向间交替,使测得的方向优势仍然很小。 [3]
彼得还需要知道自己是在什么时候读取数值的。TradingView 提醒,蜡烛收盘前的 High、Low 和 Close 都不是最终值。出现新的最高价或最低价,可能改变方向性运动和 True Range,进而影响后续指标。因此,盘中看见的交叉可能在收盘时消失。检验规则必须区分蜡烛形成期间的决策和收盘后的决策,不能事后把最终数值当成当时已经知道的信息。 [4]
方向线交叉,说明两者顺序发生变化,但这还不能证明交易有利可图。TradingView 提醒存在假信号,并在测试指南中区分信号与实际成交。若彼得把 ADX 作为过滤条件,就必须事先规定入场、离场、仓位大小,以及什么情况下计划失效。结果还要计入手续费和滑点,也就是预期成交价与实际成交价的差异。反复根据同一组历史数据调参,会造成 overfitting,即过拟合:规则学会了过去,却未必适用于别处。因此,应使用未参与规则选择的数据来检验它。 [3] [5]
方向相反,结果却相同
在这个虚构例子中,已算出 +DI = 30、−DI = 10。于是 DX = abs(30 − 10) / (30 + 10) × 100 = 50;abs 表示绝对值,即不带正负号的大小。现在交换输入,变成 +DI = 10、−DI = 30,DX 仍为 50。为演示下一步,假设前一个 ADX 为 22,长度 n = 14。得到 ADX = (22 × 13 + 50) / 14 = 24。如果两组数据的前一个 ADX 相同,最后这一步的结果也相同。这并不意味着两者完整的价格历史完全一致。例子只是说明当前方向、DX 与平滑后的 ADX 不能互相替代,算出的数字也不是概率。
要获得更完整的理解,请将本词条与以下词条结合阅读: Average True Range, Technical indicator, Technical analysis, Timeframe, Backtesting, Relative Strength Index.
01ADX 高于二十五,是否意味着应该买入?+
不是。这只是衡量趋势强度的传统参考,而趋势可能向下。阈值本身没有解决入场价、风险、成本或离场问题,这些需要另行制定并检验规则。
02仅凭一对 DI 数值,能算出 ADX 吗?+
如果两者之和不为零,可以算出当前 DX。要计算 ADX,还需要前一个 ADX 和平滑设置,或者足够的历史数据来计算初始平均值。比较不同应用前,应先统一数据、时间间隔和设置。