//--- 填充平滑的正负缓冲区 ExtPDIBuffer[i]=ExponentialMA(i,ExtADXPeriod,ExtPDIBuffer[i-1],ExtPDBuffer); ExtNDIBuffer[i]=ExponentialMA(i,ExtADXPeriod,ExtNDIBuffer[i-1],ExtNDBuffer); //--- 填充 ADXTmp 缓冲区 double dTmp=ExtPDIBuffer[i]+ExtNDIBuffer[i]; if(dTmp!=0.0) dTmp=100.0*MathAbs((ExtPDIBuffer[i]-ExtNDIBuffer[i])/dTmp); else dTmp=0.0; ExtTmpBuffer[i]=dTmp; //--- 填充平滑 ADX 缓冲区 ExtADXBuffer[i]=ExponentialMA(i,ExtADXPeriod,ExtADXBuffer[i-1],ExtTmpBuffer);
计算:
ADX = SUM ((+DI - (-DI)) / (+DI + (-DI)),N) / N
其中
- N - 用于计算的期间数;
- SUM (..., N) - N 个周期的总和;
- +DI -正方向 指数值;
- -DI - 负方向指数值。
我知道很多自动交易系统都使用 ADX,所以这是一个不错的指数。

平均趋向指数(ADX):
平均趋向指数指标(ADX)用来帮助判断市场是否存在趋势。
作者: MetaQuotes Software Corp.