iMA(移動平均を計算する)MT4テクニカル指標関数

iMA 移動平均(Moving Average)

移動平均(Moving Average)を計算し、その値を返します。

移動平均は、最も広く使われているテクニカル指標でしょう。
過去の相場の動きを教えてくれるもので、トレンドの方向を明確に示してくれます。

移動平均線が右肩上がりであれば相場が上昇したことを、右下がりであれば下落したことを意味しています。
トレンドフォロー型トレードシステムには欠かせない指標です。

iMA関数書式

double  iMA(
   string       symbol,           // symbol(通貨シンボル)
   int          timeframe,        // timeframe(タイムフレーム)
   int          ma_period,        // MA averaging period(移動平均算出期間)
   int          ma_shift,         // MA shift(移動平均線表示のシフト数)
   int          ma_method,        // averaging method(移動平均の計算方法)
   int          applied_price,    // applied price(適用価格)
   int          shift             // shift(シフト数)
   );

iMAパラメーター

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月足

ma_period

整数(int)
移動平均を計算する対象期間を数字で指定します。
timeframeを「PERIOD_D1」、ma_periodを「5」とした場合は、5日移動平均となります。

ma_shift

整数(int)
移動平均線をずらしたい場合に、ずらすバーの数を指定します。
1を指定すると1つ右方向にずらします。

ma_method

整数(int)
移動平均の計算方法(種類)を指定します。
以下から選んで指定します。

定数

意味

MODE_SMA

0

単純移動平均

MODE_EMA

1

指数移動平均

MODE_SMMA

2

平滑移動平均

MODE_LWMA

3

線形加重移動平均

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

shift

整数(int)
計算対象とする位置を現在位置からずらしたい場合に、ずらすバーの数を指定します。
1を指定すると1つ前のバーを計算対象とします。
現在の位置を指定するには、0を指定します。

サンプルコード

double ma = iMA(NULL, PERIOD_D1, 5, 0, MODE_SMA, PRICE_CLOSE, 0);    // 5日単純移動平均を終値で算出
double ma = iMA(NULL, PERIOD_D1, 20, 0, MODE_EMA, PRICE_CLOSE, 0);   // 20日指数移動平均を終値で算出