Average Directional Movement Index(平均方向性指数)の略で、方向性(トレンド)の大きさを表す指標です。ADXが大きければ、上昇、下落に関係なくトレンドが強いと判断されます。どちらのトレンドが強いかは、高値の上昇する強さ+DIと、安値の下落する強さ-DIで判断します。
double iADX(
string [symbol](<https://toyolab-fx.notion.site/7010417f6ffc4d43aaca4a8b77bafcfd>), // 銘柄
ENUM_TIMEFRAMES [timeframe](<https://toyolab-fx.notion.site/7010417f6ffc4d43aaca4a8b77bafcfd>), // 時間軸
int period, // 計算する期間
ENUM_APPLIED_PRICE [applied_price](<https://toyolab-fx.notion.site/7010417f6ffc4d43aaca4a8b77bafcfd>), // 価格の種類
int mode, // 出力するライン
int [shift](<https://toyolab-fx.notion.site/7010417f6ffc4d43aaca4a8b77bafcfd>) // 計算するバーの位置
);
ADXのパラメータは、計算する期間period
です。
どのラインを出力するかをmode
の引数で指定します。MODE_MAIN
がADX、MODE_PLUSDI
が+DI、MODE_MINUSDI
が-DIを表します。
現在のバーにおける+DIの値PDI[0]
は、バーの真の値幅TR[i]
に対する高値の変化dP[i]
の指数移動平均(EMA)により求めます。-DIの値MDI[0]
は、TR[i]
に対する安値の変化dM[i]
の指数移動平均(EMA)により求めます。
現在のバーにおけるADXの値ADX[0]
は、PDI[i]
とMDI[i]
の和に対するPDI[i]
とMDI[i]
の差の割合の指数移動平均(EMA)により求めます。
PDI[0] = EMA(dP[i]/TR[i], period)*100
MDI[0] = EMA(dM[i]/TR[i], period)*100
ADX[0] = EMA(|PDI[i]-MDI[i]|/(PDI[i]+MDI[i]), period)*100
dP[i]
: High[i]-High[i+1]
(高値の変化、ただしdP[i]≦dM[i]
の場合0
)
dM[i]
: Low[i+1]-Low[i]
(安値の変化、ただしdP[i]≧dM[i]
の場合0
)
TR[i]
:Max(High[i], Close[i+1]) - Min(Low[i], Close[i+1])
(真の値幅)
<aside>
📝 MT5に組み込まれているADXには、applied_price
のパラメータがないので、applied_price
の指定は無効になります。MT4に組み込まれているADXではapplied_price
によって値が異なりますが、MT5と同じADXにするにはapplied_price
をPRICE_CLOSE
に設定してください。
</aside>