Adx 趋势是如何计算的

了解 ADX 和 ADX-趋势值是如何从价格数据中计算得出的。

Adx 趋势是如何计算的

直接答案

“ADX 趋势”并非一个固定的单一品牌公式;大多数人指的是平均趋向指数(ADX)及其由方向性移动(DI)分量构成的计算方式。在常见形式中,该计算从价格变化开始,推导出方向性移动值(+DM 和 −DM),用真实波幅(TR)对其进行归一化,对结果进行平滑处理,然后将平滑后的方向性指标转换为 ADX 值(趋势强度)。

机制与定义(计算的基本构成)

以下是一个标准、自包含的 ADX 风格工作流程。目标是从 OHLC 价格数据中计算出一个表示趋势强度的数值。该计算需要一段价格时间序列(至少包含:High 和 Low;Close 用于计算变化和 TR 的变体)。

1) 输入与符号

假设你有按时间 t 索引的K线/蜡烛图,至少包含:

  • High[t]
  • Low[t]
  • Close[t]

选择一个回溯周期长度 n(通常称为“周期”)。这个选择会影响平滑强度和灵敏度。

2) 方向性移动:+DM 和 −DM

对于每个时间步 t(从拥有前一根K线 t−1 后开始),根据高低点的变化计算方向性移动:

  • UpMove = High[t] − High[t−1]
  • DownMove = Low[t−1] − Low[t]

一个常见的规则集定义如下:

  • +DM = 如果 UpMove > DownMove 且 UpMove > 0,则为 UpMove,否则为 0
  • −DM = 如果 DownMove > UpMove 且 DownMove > 0,则为 DownMove,否则为 0

解释:每根K线中只有主导方向“胜出”,该方向的负向移动被舍弃。

3) 真实波幅:TR

真实波幅衡量价格的波动幅度,考虑了收盘价之间的缺口。一个常见的定义是:

  • TR = max( High[t] − Low[t], abs(High[t] − Close[t−1]), abs(Low[t] − Close[t−1]) )

解释:TR 是方向性移动的归一化分母。

4) 对各分量进行平滑

方向性移动和 TR 通常在 n 根K线上进行平滑处理,然后再转化为比率。一种广泛使用的方法是 Wilder 风格的递归平滑,定义如下:

  • SmoothedX[t] = SmoothedX[t−1] − (SmoothedX[t−1] / n) + X[t]

其中 X[t] 是 +DM[t]、−DM[t] 或 TR[t] 中的一个,取决于你正在平滑的序列。

重要细节:你必须为第一个计算窗口定义初始的 SmoothedX 值(通常是前 n 个观测值的总和,具体取决于平台的实现方式)。

5) 转换为方向性指标(+DI 和 −DI)

平滑后计算:

  • +DI[t] = 100 × (Smoothed(+DM)[t] / Smoothed(TR)[t])
  • −DI[t] = 100 × (Smoothed(−DM)[t] / Smoothed(TR)[t])

方向性指标将移动转化为可比较、归一化的“方向强度”。

6) 创建 DX 和 ADX

计算方向性指数(DX):

  • DX[t] = 100 × abs(+DI[t] − −DI[t]) / (+DI[t] + −DI[t])

然后使用另一个 n 根K线的平滑步骤计算 ADX:

  • ADX[t] = DX 在选定周期 n 上的平滑平均值

在许多实现中,初始 ADX 是前几个可用 DX 值的平均值,随后使用 Wilder 风格平滑或等效方法。

“ADX 趋势”所衡量内容的总结

最终得到的 ADX 数值旨在表示“趋势强度”而非方向。方向性指标(+DI 和 −DI)是独立的,表示方向;ADX 则总结了方向主导的强度。

证据或示例(可验证的小型工作流程)

由于计算依赖于精确的规则和初始条件,使用一个小而一致的数据集来验证方法是有帮助的。

本示例的假设(以便你可复现):

  • 使用上述标准的 +DM/−DM 规则。
  • 使用基于 High、Low 和 Close[t−1] 的标准 TR 定义。
  • 使用周期 n = 14。
  • 使用 Wilder 风格平滑。

独立验证的实用方法:

  1. 创建一个电子表格,包含 UpMove、DownMove、+DM、−DM、TR 的列。
  2. 对于第一个平滑窗口,按所选方法计算初始 Smoothed(+DM)、Smoothed(−DM) 和 Smoothed(TR)(通常为前 n 个值的总和)。
  3. 逐根K线向前应用 Wilder 平滑。
  4. 从平滑值计算 +DI 和 −DI。
  5. 从 +DI 和 −DI 的差值与和值计算 DX。
  6. 对 DX 进行平滑得到 ADX。

如果你的电子表格输出与某个工具的 ADX 线匹配(在舍入误差范围内),你就可以确信你使用的是相同的底层规则和初始化方式。

可选交叉验证:检查在高点上升而低点下降(或反之)的K线上,+DM 和 −DM 是否表现合理。如果某一方持续占主导,方向性指标应能反映这一点。

局限性、风险与失效模式

1) 实现差异

类似 ADX 的指标可能因以下因素而不同:

  • 初始平滑值的初始化方式。
  • TR 的确切定义(一些平台对缺口或数据异常的处理略有不同)。
  • 平滑是否为 Wilder 风格,或使用其他平均方法。
  • 某平台是否将变体标记为“ADX 趋势”。

即使微小差异也可能导致明显偏离。

2) 对周期 n 的敏感性

较长的 n 通常平滑更强,产生移动较慢的 ADX。较短的 n 可能对短期波动快速反应,可能产生不稳定的读数。这不是“更好”或“更差”的问题;它改变了数值所代表的含义。

3) 除零或接近零的分母

DX 使用 (+DI + −DI) 作为分母。如果两个方向性指标都接近零(例如,在非常平坦或低波动性的数据中),DX 可能不稳定或未定义,具体取决于软件如何处理零值。正确处理需要明确的规则。

4) 数据质量与缺失K线

如果 OHLC 数据存在缺失区间、过时值或不一致的K线构建,+DM、−DM 和 TR 可能基于错误的相邻假设(t−1 关系)计算。这可能导致误导性的 ADX 值。

5) 市场行为并非恒定

即使数学正确,ADX 的统计意义也取决于市场状态。历史计算不能保证未来相似性;ADX 是观察到的价格变动的转换,而非对未来走势的确定性预测。

验证或后续问题

要独立验证你看到的任何“ADX 趋势”计算:

  1. 确认使用的是哪种确切的 ADX 变体(周期 n、平滑方法、TR 定义、初始种子)。
  2. 从原始 OHLC 数据重新计算至少几个数据点。
  3. 检查中间序列(+DM、−DM、TR、平滑值、+DI/−DI)是否与你的工具输出匹配。

如果你愿意,告诉我你使用的平台或公式惯例(例如,确切周期和是否为 Wilder 风格平滑)。然后上述计算步骤可以精确映射到该惯例,而无需假设当前数据或提供商行为。

外汇和差价合约交易具有重大风险。FoxiForex的信息仅用于教育,不构成个人财务建议。赞助内容会被清楚标注。