ADX 策略是如何计算的?

ADX 计算公式输入数据的限制。

ADX 策略是如何计算的?

直接答案

基于 ADX 的“趋势强度”值是通过结合以下三项从价格变化中计算得出的:(1) 两个方向上的方向性移动,(2) 称为真实波幅(true range)的波动性度量,(3) 在一个回溯周期内的平滑处理。结果是一条单一曲线(通常称为 ADX),当方向性移动持续强劲时上升,而在较弱时下降。

机制或定义

计算试图衡量的内容

ADX 类型的指标将原始价格变动转化为两个中间概念:

  1. 方向性移动:最近的高/低价变动中,有多少属于“向上”与“向下”。
  2. 波动性归一化:使用真实波幅(true range)衡量该变动相对于整体交易区间的大小。

然后将这些数据合并为方向性指标,最终得出ADX,其目的是表示趋势强度,而非趋势方向。

所需输入(数据要求)

要进行计算,你需要至少包含以下内容的时间序列数据:

  • 最高价(High)
  • 最低价(Low)
  • 收盘价(Close)

至少需要足够的K线数量以完成回溯周期和平滑计算。如果历史K线数据不足,早期的值将未定义,或需积累足够数据后才能生成。

核心中间步骤(一种常见形式)

以下是常见的逐步结构。不同的图表软件可能使用略有不同的平滑方法,但核心组件相同。

1) 计算方向性移动分量

对于每个K线 t(从第二根K线开始),将当前K线的高/低价与前一根K线比较:

  • 向上变动(Up move):当前最高价与前一根最高价比较。
  • 向下变动(Down move):前一根最低价与当前最低价比较(通常视为下降)。

方向性移动随后被拆分,每根K线仅有一个方向贡献:

  • +DM:当“向上”分量强于“向下”分量时,取“向上”分量。
  • -DM:当“向下”分量强于“向上”分量时,取“向下”分量。

其余情况设为零。这种“选择主导方向”的规则很重要:防止同一根K线同时计入两个方向。

2) 计算真实波幅(TR)

真实波幅衡量价格移动的距离,并考虑跳空。标准定义基于三个候选值:

  • 当前最高价减去当前最低价
  • 当前最高价与前一收盘价之差的绝对值
  • 当前最低价与前一收盘价之差的绝对值

TR 是这三个候选值在K线 t 上的最大值。

3) 在回溯周期内对 +DM、-DM 和 TR 进行平滑处理

ADX 计算通常不会每次都使用原始总和,而是对周期 N(通常称为回溯周期)应用平滑处理。平滑方法(通常是 Wilder 风格)会更新累计值,而不是每根K线都重新从头计算。

你可以理解为:

  • 计算平滑后的 +DM 总和
  • 计算平滑后的 -DM 总和
  • 计算平滑后的 TR 总和

具体的平滑公式很重要,因为它会影响响应速度。

4) 计算方向性指标(+DI 和 -DI)

方向性指标通过将方向性移动除以平滑后的真实波幅,转换为类似百分比的数值:

  • +DI = (平滑后的 +DM / 平滑后的 TR) × 100
  • -DI = (平滑后的 -DM / 平滑后的 TR) × 100

如果平滑后的 TR 为零(在极端数据中罕见但可能发生),则除法未定义;实现时应妥善处理此情况。

5) 计算 DX(方向性指数)和 ADX

一个常见的中间步骤是:

  • DX = (|+DI − -DI| / (+DI + -DI)) × 100

然后 ADX 是 DX 在回溯周期内的平滑平均值:

  • ADX = DX 的平滑平均值

这会产生一条单一曲线:当 +DI 与 -DI 持续分离(一个方向占主导)时上升,当它们趋近时下降。

证据或示例

一个最小化的工作示例设置(含假设)

为了验证理解,你可以使用一个短窗口进行简单的“纸面验证”。假设你选择一个回溯周期 N,然后从第1根K线开始计算。

  1. 选择一个固定的 N(例如,14),并确保你至少有 N + 1 根K线。
  2. 对于第一根之后的每根K线:
    • 使用向上/向下变动比较规则计算 +DM 和 -DM。
    • 将三个 TR 候选值的最大值作为 TR。
  3. 对 +DM、-DM 和 TR 应用选定的平滑方法。
  4. 使用平滑后的值计算 +DI 和 -DI。
  5. 计算 DX,然后将 ADX 计算为 DX 的平滑平均值。

任何示例都必须明确的假设:

  • 你使用特定的平滑约定。
  • 你使用的索引(K线 tt−1 的定义)与数据源一致。

由于不同平台可能以不同方式实现平滑细节,即使整体结构相同,数值输出也可能存在差异。

限制与风险

1) 趋势强度,而非方向

ADX 类型的输出旨在表达方向性移动的强度,而非自动指示未来价格方向。高值可能出现在上升趋势或下降趋势中;方向通常通过 +DI 与 -DI 的关系推断,而非仅靠 ADX。

2) 参数敏感性

回溯周期和平滑选择会显著影响行为:

  • 较短周期通常对近期变动反应更快。
  • 较长周期通常更能平滑噪音,但可能滞后。

这会影响指标上升或下降的频率,以及对市场状态变化的响应速度。

3) 数据与实现的失效模式

常见的实际问题包括:

  • 历史数据不足:早期 ADX 值可能未定义或基于不完整窗口。
  • 定义不同:DM 分配或 TR 的替代公式可能导致结果偏移。
  • 索引错误:混淆K线顺序(时间序列)或使用错误的前收盘价引用,会导致计算错误。

4) 波动性与噪音

由于该计算通过真实波幅对方向性移动进行归一化,它可能对波动性飙升敏感。在震荡或高波动条件下,+DI 和 -DI 可能频繁交替,这可能降低单个 ADX 读数的解释价值。

验证或下一步问题

为独立验证你的理解,请执行以下检查清单:

  1. 确认你的数据源提供时间有序的最高价、最低价、收盘价序列,且无缺失K线。
  2. 写下目标平台使用的精确公式:
    • +DM 和 -DM 规则
    • TR 定义
    • 平滑方法
  3. 在一个小样本窗口上重新计算 ADX,并比较中间输出(+DI、-DI、DX),而不仅仅是最终曲线。

如果你想更进一步,一个有用的后续问题是:设置如何改变指标的响应性和尺度(回溯周期和平滑),或 ADX 类型读数如何与 +DI 和 -DI 结合解读。

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