トレンドの存在・方向性・強弱を分析 iADX 関数

関数

テクニカルインジケータ関数

iADX 関数

この関数は、任意に設定したパラメータのADX (平均方向性指数) の値を計算して、その値を取得します。ADXはトレンド系オシレータ系の両方の特性を持ったインジケータになります。

ADX

ADX (Average Directional Movement Index [平均方向性指数]) は、トレンドの強さを測定するためのテクニカル指標の1つです。指定の通貨ペアのトレンドがどの程度強いか、それが継続するかどうかを分析します。

ADXは、DI (上昇方向性指数) とDI (下降方向性指数) の差を基に計算されます。ADXの値が高いほど、トレンドが強く、低いほど、トレンドが弱いことを示します。ADXの値が25以上であれば、トレンドが強いと見なされます。

MT4でチャート上にADXをプロットする時はナビゲーター中のインディケータ → トレンド → 「Average Directional Movement Index」インジケータを使用します。

(ADXの計算式)

ADXの計算式は、以下のようになります。

ADX = ((DI - DI) ÷ (DI + DI)) ✕ 100 の n期間の移動平均
 (DI - DI)は、絶対値とする。

DI = DM ÷ ATR
DI = DM ÷ ATR
DM:対象バーの高値と1つ前のバーの終値の差の絶対値
DM:対象バーの安値と1つ前のバーの終値の差の絶対値
ATR = TR の n期間の移動平均
TR :次の3つの中で最大値がTRになります。
  ①対象バーの高値と安値の差
  ②対象バーの高値と1つ前のバーの終値の差の絶対値
  ③対象バーの安値と1つ前のバーの終値の差の絶対値
n:期間を指定。日足の時は、通常14が使用されます。

(ADXの使い方)

① ADXは、ADXの値が高いほど、トレンドが強いと判断されます。
たとえば、日足チャートで期間を14日間に設定した場合、ADXは、25のラインを基準にして、トレンド相場とレンジ相場を区別します。25のラインより上ならトレンド相場、下ならレンジ相場とみなします。

② ADXは、DIと DIと一緒に表示されることが多く、DIと DIの交差や位置関係でトレンドの方向や転換を判断します。DIが DIより上にあれば上昇トレンド、下にあれば下降トレンドとみなします。

③ ADXは、価格の動きと一致しないときにダイバージェンス (ずれ) が発生していると判断できます。ダイバージェンスは、トレンドの終わりや反転を示すサインになります。

データ型と構成・戻り値

double iADX(①, ②, ③, ④, ⑤, ⑥);

戻り値は、任意に設定したパラメータのADXの値を計算して、その値を返します。

引数 [6]

iADX関数は 6個の引数で構成されます。


引数名データ型単位初期値説明
symbolstring計算対象の通貨ペア名。
「NULL」は選択チャートの通貨ペア名が選択されます。
timeframeint時間軸。ENUM_TIMEFRAMES 列挙値から選択。
「0」は現在チャートの時間軸が選択されます。
periodintADXの計算期間。ADXを計算するバーの数を数値で設定します。
applied_priceint適用価格。
ENUM_APPLIED_PRICE 列挙値から選択。
modeint結果で算出する線を選択。
iADX関数のインジケータライン識別子から選択。
shiftintADXの値を算出するバーの位置。
現在のバーから指定した時間軸のバー数だけ過去へシフトします。たとえば、現在のバーからの計算は「0」、 1つ前のバーから計算する時は「1」になります。

使用例

iADX関数によるADXの計算

iADX関数を使って、現在のADX値を計算します。

コード

// iADX関数によるADX値の計算
#property strict
void OnInit() {
   int period = 14;

   double ADX = iADX(NULL, 0, period, 0, 0, 0);
   double DI1 = iADX(NULL, 0, period, 0, 1, 0);
   double DI2 = iADX(NULL, 0, period, 0, 2, 0);

   Print("ADX値:", ADX);
   Print("DI+値:", DI1);
   Print("DI-値:", DI2);
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

タイトルとURLをコピーしました