Wilder平均趋向指数 - MetaTrader 5脚本
- 显示:
- 3013
- 等级:
- 已发布:
- 2013.09.12 09:36
- 已更新:
- 2016.11.22 07:33
- 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
Wilder平均趋向指数(ADX Wilder)用来帮助判断市场是否存在趋势。
这个技术指标是严格根据Welles Wilder的“技术交易的新概念”一书中的算法构造的。
该技术指标的交易规则在平均趋向指数中介绍过了。
计算:
首先计算每柱的正值(dm_plus)和负(dm_minus)值的变化,以及真实波动幅度tr:
If High(i) - High(i-1) > 0 dm_plus(i) = High[(i) - High(i-1), otherwise dm_plus(i) = 0.
If Low(i-1) - Low(i) > 0 dm_minus(i) = Low(i-1) - Low(i), otherwise 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) - 当前柱的最高价;
- Low(i) - 当前柱的最低价;
- High(i-1) - 前柱的最高价;
- Low(i-1) - 前柱的最低价;
- Close(i-1) - 前柱的收盘价;
- Max (a, b , c) - 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) - 当前柱上序列X的平滑移动平均;
- Perod_ADX - 用来计算的柱数。
现在计算趋向指数 - DX(i):
DX(i) = ABS(Plus_D(i) - Minus_D(i))/(Plus_D(i) + Minus_D(i)) * 100
在初步计算后,我们通过平滑DX的值,得到当前柱的ADX(i)指标值:
ADX(i) = SMMA(DX, Perod_ADX, i)
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/8