iADX()関数は、ADX(Average Directional Movement Index)及び+DI(Plus Directional Indicator)・-DI(Minus Directional Indicator)の値を取得するために使用します。
iADX()関数は、以下のように定義されています。
double iADX(
string symbol,
int timeframe,
int period,
int applied_price,
int mode,
int shift
);
各引数の意味は、以下のとおりです。
- string symbol
ADXの値を計算する通貨ペア名を指定します。
通貨ペア名は、「気配値表示ウィンドウ」に表示されているとおりに記述します。
特定の通貨ペア名を指定せず、EA等を適用したチャートの通貨ペアのADXの値を取得したい場合は、「NULL」と記述します。 - int timeframe
以下の表に従って、ADXの値を計算する時間軸を指定します。種 類 定 数 内 容 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 日 足 PERIOD_W1 10080 週 足 PERIOD_MN1 43200 月 足 - int period
ADXの値を計算する期間を指定します。
通常は「14」です。 - int applied_price
以下の表に従って、ADXの計算に使用する価格データを指定します。種 類 定 数 内 容 PRICE_CLOSE 0 終 値 PRICE_OPEN 1 始 値 PRICE_HIGH 2 高 値 PRICE_LOW 3 安 値 PRICE_MEDIAN 4 中央値
(高値+安値)÷2PRICE_TYPICAL 5 代表値
(高値+安値+終値)÷3PRICE_WEIGHTED 6 加重終値
(高値+安値+終値+終値)÷4 - int mode
ライン番号を指定します。
ADXの値を取得したい場合は「0」と記述します。
+DIの値を取得したい場合は「1」と記述します。
-DIの値を取得したい場合は「2」と記述します。 - int shift
ADX及び+DI・-DIの値を取得したいバーの位置を指定します。
ADX及び+DI・-DIの値を取得したいバーが現在のバーであれば「0」、1本前のバーであれば「1」、2本前のバーであれば「2」……と記述します。
戻り値
第五引数の指定に従って、「ADX」、「+DI」、「-DI」の値が返されます。
具体例
2本前のバーの+DIの値が2本前のバーの-DIの値以下で、1本前のバーの+DIの値が1本前のバーの-DIの値よりも大きく、かつ、1本前のバーのADXの値が25以上であれば、買いエントリーしたい場合は、以下のように記述します(ADXのパラメーター:計算期間「14」、計算に使用する価格データ「終値」)。
double Plus_DI_1 = iADX(NULL,0,14,0,1,1);
double Plus_DI_2 = iADX(NULL,0,14,0,1,2);
double Minus_DI_1 = iADX(NULL,0,14,0,2,1);
double Minus_DI_2 = iADX(NULL,0,14,0,2,2);
double ADX_1 = iADX(NULL,0,14,0,0,1);
if(Plus_DI_2 <= Minus_DI_2 && Plus_DI_1 > Minus_DI_1
&& ADX_1 >= 25)
{
int Ticket
= OrderSend(Symbol(),OP_BUY,0.1,Ask,10,0,0,
NULL,1359,0,clrMagenta);
}
- if()文の詳細については「こちら」を参照してください。
- OrderSend()関数の詳細については「こちら」を参照してください。
- Symbol()関数の詳細については「こちら」を参照してください。
- Askの詳細については「こちら」を参照してください。