Contents
iADX 平均方向性指数(Average Directional Movement)
ADX(Average Directional Movement)を計算し、その値を返します。
ADXは、トレンドの有無やその強さを計るのに使用します。
値が大きいほどトレンドが強くなります。
一般的に、ADXが30を超えるとトレンドが強く、20を下回るとトレンドが弱いとみなします。
上昇トレンドでも下降トレンドでも、トレンドが強いと30を超えます。
iADX関数書式
double iADX( string symbol, // symbol(通貨シンボル) int timeframe, // timeframe(タイムフレーム) int period, // averaging period(平均算出期間) int applied_price, // applied price(適用価格) int mode, // line index(ラインインデックス) int shift // shift(シフト数) );
iADXパラメーター
symbol
文字列(string)
対象の通貨ペアを指定します。’USDJPY’や’EURUSD’のように指定します。
現在の通貨ペアを使用する場合(EA内で固定しない場合)は、NULLとします。
timeframe
整数(int)
タイムフレーム(時間枠)を数字で指定します。
5分足だと5、1時間足だと60、日足だと1440ですが、MT4に用意された定数を使用すると分かりやすいのでおススメです。
定数 |
値 |
意味 |
PERIOD_CURRENT |
0 |
現在の時間枠 |
PERIOD_M1 |
1 |
1分足 |
PERIOD_M5 |
5 |
5分足 |
PERIOD_M15 |
15 |
15分足 |
PERIOD_M30 |
30 |
30分足 |
PERIOD_H1 |
60 |
1時間足 |
PERIOD_H4 |
240 |
4時間足 |
PERIOD_D1 |
1440 |
1日足 |
PERIOD_W1 |
10080 |
1週足 |
PERIOD_MN1 |
43200 |
1月足 |
period
整数(int)
ADXを計算する対象期間を数字で指定します。
ADXの計算では、「14」を指定することが一般的です。
timeframeを「PERIOD_D1」とした場合は、計算期間が14日間となります。
applied_price
整数(int)
始値、終値など、利用する価格を指定します。
整数で指定しますが、定数を利用すると分かりやすいのでおススメです。
定数 |
値 |
意味 |
PRICE_CLOSE |
0 |
終値 |
PRICE_OPEN |
1 |
始値 |
PRICE_HIGH |
2 |
高値 |
PRICE_LOW |
3 |
安値 |
PRICE_MEDIAN |
4 |
高値と安値の平均、中間値、 (高値 + 安値)/2 |
PRICE_TYPICAL |
5 |
高値と安値と終値の平均値、 (高値 + 安値 + 終値)/3 |
PRICE_WEIGHTED |
6 |
加重平均価格、 (高値 + 安値 + 終値 + 終値)/4 |
mode
整数(int)
使用するインジケーターラインの種類を指定します。
以下から選んで指定します。
定数 |
値 |
意味 |
MODE_MAIN |
0 |
基本インジケーターライン |
MODE_PLUSDI |
1 |
+DI インジケーターライン |
MODE_MINUSDI |
2 |
-DI インジケーターライン |
shift
整数(int)
計算対象とする位置を現在位置からずらしたい場合に、ずらすバーの数を指定します。
1を指定すると1つ前のバーを計算対象とします。
現在の位置を指定するには、0を指定します。
サンプルコード
double adx = iADX(NULL, PERIOD_D1, 14, PRICE_CLOSE, MODE_MAIN, 0); // 日足で14期間を終値で算出 double adx = iADX(NULL, PERIOD_H1, 14, PRICE_OPEN, MODE_MAIN, 0); // 1時間足で14期間を始値で算出