
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>