【MQL4】「iMA関数」移動平均線を使ったエントリー方法

テクニカル指標の中で、一番最初に覚えるのは、
「移動平均線(Moving Average)」ではないでしょうか。

トレンドを把握しやすいテクニカル指標で、世界中のトレーダーが利用しています。

MQL4では「iMA関数」を使えば、移動平均線の価格を取得できます。
今回は、このiMA関数の使い方をご紹介します。

スポンサーリンク

iMA関数の書式

double iMA(
   string  symbol,         // 通貨ペア
   int     timeframe,      // 時間軸
   int     ma_period,      // 期間
   int     ma_shift,       // 表示移動
   int     ma_method,      // 移動平均の種別
   int     applied_price,  // 適用価格
   int     shift           // ローソク足の位置
);

iMA関数の引数

double iMA( string symbol, int timeframe, int ma_period, int ma_shift, int ma_method, int applied_price, int shift );
引数名引数和名設定内容
string symbol通貨ペアUSDJPY、EURJPYなど。
現在の通貨ペアは「NULL」
int timeframe時間軸PERIOD_CURRENT(0)
PERIOD_M1(1)
PERIOD_M5(5)
PERIOD_M15(15)
PERIOD_M30(30)
PERIOD_H1(60)
PERIOD_H4(240)
PERIOD_D1(1440)
int ma_period期間20日移動平均線だと「20」
50日移動平均線だと「50」
int ma_shift表示移動左右にシフト表示する場合、ローソク足の数を指定。
シフトしない「0」
int ma_method移動平均の種別MODE_SMA(単純移動平均線)
MODE_EMA(指数移動平均線)
MODE_SMMA(平滑移動平均線)
MODE_LWMA(加重移動平均線)
int applied_price適用価格PRICE_CLOSE(0)終値
PRICE_OPEN(1)始値
PRICE_HIGH(2)高値
PRICE_LOW(3)安値
int shiftローソク足の位置現在のローソク足「0」
1本前のローソク足「1」
2本前のローソク足「2」
など右から何本目か。

iMA関数の使い方

例えば「20日移動平均線」の価格を取得する場合。

引数設定値設定内容
symbolNULL現在の通貨ペア
timeframe0現在の時間軸
ma_period2020日移動平均線
ma_shift0表示移動なし
ma_methodMODE_SMA単純移動平均線
applied_pricePRICE_CLOSE終値
shift0現在のローソク足

コード例)

// 20日移動平均線
double sma20 = iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_CLOSE, 0);

移動平均線のゴールデンクロス

「ゴールデンクロス」したら、エントリーしよう。

こんな使い方をする場面も多いかと思います。
例えば「20MA」と「50MA」が「ゴールデンクロス」したらエントリーする場合。

// 20日移動平均線
double sma20   = iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_CLOSE, 0); //現在足
double sma20_1 = iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_CLOSE, 1); //1本前足

// 50日移動平均線
double sma50   = iMA(NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE, 0); //現在足
double sma50_1 = iMA(NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE, 1); //1本前足


// ゴールデンクロス判定
if( sma20_1 < sma50_1 && sma20 >= sma50){

   // ここでエントリー処理

}

ポイントは、2つの判定条件にあります。

「1本前」のローソク足では、まだクロス「していない」
「現在」のローソク足では、クロス「している」

この2つの条件によって、今まさに「ゴールデンクロス」したことが分かります。

EA作成ソフトが無料で付属してるForex Testerが、おすすめです。

移動平均線とローソク足

「25日移動平均線」をローソク足が上抜けたらエントリーしよう。

こんな場面もあるかと思います。
コードにするとこんな感じになります。

// 25日移動平均線
double sma25   = iMA(NULL, 0, 25, 0, MODE_SMA, PRICE_CLOSE, 0); //現在足
double sma25_1 = iMA(NULL, 0, 25, 0, MODE_SMA, PRICE_CLOSE, 1); //1本前


// ASK上抜け判定
if( sma25_1 > ASK && sma25 <= ASK ){

   // ここでエントリー処理

}

移動平均線だけで勝ち続けている人もいるようなので、
とことん追求してみると面白いかも知れませんね。

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