平均方向运动指标(ADW)是由Welles Wilder提出的一个技术指标,它能够帮助我们判断市场的趋势。
该指标的构建严格遵循Welles Wilder在其著作《技术交易系统的新概念》中描述的算法。
关于该指标的交易规则,可以参考平均方向运动指数的详细说明。

计算方法:
首先,我们需要计算每根K线的正向变化(dm_plus)和负向变化(dm_minus),同时还要计算真实波幅(tr):
如果 High(i) - High(i-1) > 0 则 dm_plus(i) = High(i) - High(i-1),否则 dm_plus(i) = 0。
如果 Low(i-1) - Low(i) > 0 则 dm_minus(i) = Low(i-1) - Low(i),否则 dm_minus(i) = 0。
tr(i) = Max(ABS(High(i) - Low(i)), ABS(High(i) - Close(i-1)), ABS(Low(i) - Close(i-1)))
其中:
- High(i) - 当前K线的最高价;
- Low(i) - 当前K线的最低价;
- High(i-1) - 前一根K线的最高价;
- Low(i-1) - 前一根K线的最低价;
- Close(i-1) - 前一根K线的收盘价;
- Max(a, b, c) - 在三个数值中取最大值;
- ABS(X) - X的绝对值。
然后,我们计算平滑值:Plus_D(i)、Minus_D(i)和ATR:
ATR(i) = SMMA(tr, Period_ADX,i)
Plus_D(i) = SMMA(dm_plus, Period_ADX,i)/ATR(i)*100
Minus_D(i) = SMMA(dm_minus, Period_ADX,i)/ATR(i)*100
Plus_D(i) = SMMA(dm_plus, Period_ADX,i)/ATR(i)*100
Minus_D(i) = SMMA(dm_minus, Period_ADX,i)/ATR(i)*100
其中:
- SMMA(X, N, i) - 当前K线的X系列的平滑移动平均;
- Period_ADX - 用于计算的K线数量。
接下来,我们计算方向运动指数(DX(i)):
DX(i) = ABS(Plus_D(i) - Minus_D(i))/(Plus_D(i) + Minus_D(i)) * 100
经过初步计算后,我们通过平滑DX指数值来获得当前K线的ADX(i)指标值:
ADX(i) = SMMA(DX, Period_ADX, i)