iMAOnArray()

 iMAOnArray()関数は、ユーザーが自由に作成した配列を基にして、移動平均線の値を算出するために使用します。

 iMAOnArray()関数は、以下のように定義されています。

double iMAOnArray(
double array[],
int total,
int ma_period,
int ma_shift,
int ma_method,
int shift
);

 各引数の意味は、以下のとおりです。

  • double array[]
    移動平均線を算出する配列名を指定します。
  • int total
    移動平均線を算出する配列の要素数を指定します。
    「0」と記述すると、配列全体(=全ての要素)を基にして移動平均線を算出します。
  • int ma_period
    移動平均線の値を計算する期間を指定します。
  • int ma_shift
    算出した移動平均線の表示を右方向にシフト(ずらす)するバーの個数を指定します。
  • int ma_method
    以下の表に従って、算出する移動平均線の種類を指定します。

    種 類
    定 数
    内 容
    MODE_SMA
    単純移動平均線
    MODE_EMA
    指数移動平均線
    MODE_SMMA
    平滑移動平均線
    MODE_LWMA
    線形加重移動平均線
  • int shift
    算出した移動平均線の値を取得したいバーの位置を指定します。
    算出した移動平均線の値を取得したいバーが現在のバーであれば「」、1本前のバーであれば「」、2本前のバーであれば「」……と記述します。

戻り値

 第1引数で指定した配列に格納されているデータを基にした、第5引数に指定した値に従った各移動平均線の値が返されます。

注意点

 iMA()関数とは異なって、iMAOnArray()関数は、通貨ペア名や時間軸や適用価格のデータを取得しません

 したがって、iMAOnArray()関数で移動平均線の値を算出するためには、あらかじめ価格データを用意しておかなければなりません

 移動平均線は、左から右へ(=古い価格データから新しい価格データに向かって)計算されます。右から左へ(=新しい価格データから古い価格データに向かって)移動平均線を計算するためには、ArraySetAsSeries()関数を使用します。

具体例

 配列Buffer[]の要素を基にした単純移動平均線(Buffer_MA[]とします。)を算出したい場合には、以下のように記述します。


#property strict

#property indicator_buffers 2

double Buffer[];
double Buffer_MA[];

input int MA_Period = 20;

int OnInit()
{
  SetIndexBuffer(0,Buffer);
  SetIndexBuffer(1,Buffer_MA);
  ……
  return(INIT_SUCCEEDED);
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
  int limit = Bars - IndicatorCounted();
  
  for(int i = limit - 1; i >= 0; i--)
     {
       Buffer[i] = ……;
     }
     
  for(int i = limit - 1; i >= 0; i--)
     {
       Buffer_MA[i] = iMAOnArray(Buffer,0,MA_Period,0,0,i);
     }
  ……
  retrun(rates_total)
}

関連ツール

FXトレーダー必須ツール!3本の移動平均線を変幻自在に変化させ、パーフェクトオーダーを視覚化する【一発3MA チェンジャー】
3本の移動平均線を変幻自在に変化させ、パーフェクトオーダーを視覚化します。
3本の移動平均線を変幻自在に変化させ、パーフェクトオーダーを視覚化します。?|?fx-on.com

GogoJungleで購入する

特 徴

  • 期間設定の異なる3本の移動平均線をワンクリックで変幻自在にコントロールすることができます。
    MA Changer 01
    バージョンアップにより5本の移動平均線に対応
    MA Changer 02
  • SMA(単純移動平均線)、EMA(指数移動平均線)などの、計算方法の異なる移動平均線にもワンクリックで切り替え可能です。
  • 移動平均線の計算に使用する価格データ(終値、始値、中央値、代表値、加重終値など)の切り替えも、ワンクリックで可能です。
  • パーフェクトオーダーになっているところに縦線が描画され、パーフェクトオーダーの視覚化が可能です。
    MA Changer 03
  • パーフェクトオーダーになったら、ポップアラート・音声アラート・メール送信などを行うことが可能です。

 なお、パーフェクトオーダーとは、短期・中期・長期の各移動平均線が、上から順に、

  • 期→期→期(上昇トレンドの場合)
  • 期→期→期(下降トレンドの場合)

と並んでいる場合をいいます。

Perfect Order