インディケータの作り方。基本の最小構成ラインチャート | MT4 インディケータ

インディケータの基本的な作り方を学ぶため、ほぼ最小構成でメインウィンドウに表示できるラインチャートを作成します。

メタエディターの新規作成ボタンから、ウィザードを起動します。

メタエディター新規作成ウィザード1

カスタムインディケータを選択します。

メタエディター新規作成ウィザード2

名前欄に Indicators/line.mq4 と入力します。著作者、リンク、パラメータは、今回使わないので未入力でもOKです。

メタエディター新規作成ウィザード3

OnCalculateのみ選択された状態で次へ。

メタエディター新規作成ウィザード4

ラインを一本だけ描画するので追加ボタンを押します。プロット欄に一段追加されるのでラベル欄にcloseと入力し、タイプがLine なのを確認します。カラーは好きな色で、完了ボタンを押します。

ラインチャートのコード解説

メタエディターに自動入力された新規ファイルが開くので、int OnCalculate(){} 欄へ。{}欄の //---//--- return value of(以下略)の間に下記コードを入力。

int i;
for(i=0;i<rates_total-prev_calculated;i++){
  closeBuffer[i]=close[i];
}

↓貼り付けるとこんなカンジ↓

int OnCalculate(中略)
  {
    //---
    int i;
    for(i=0;i<rates_total-prev_calculated;i++){
      closeBuffer[i]=close[i];
    }
    //--- return value of ...

forループで rates_total(足の総数)から prev_calculated(計算済みの足)を引いた分だけ回します。prev.. は、はじめ 0 なので相当数計算します。次回からは最新の足だけ計算します。今回は closeBuffer[] に終値を入力していきます。

インディケータは時系列に沿って右から左へ、最新の足から過去の足へ 0, 1, 2, 3, .. と増えていきます。配列のインデックス、索引付けがこのようになっている MQL4 の仕様です。実データの配列を考えると混乱するので、「最新価格のインデックスが 0、右から左へ増えていく」コレだけをとりあえずは頭に入れておいてください。既存のインディケータを利用したカスタムインディケータを作る分には、これで十分です。

close line indicator を挿入したチャート

リアルもしくはヒストリーデータでデバックをスタートし、作成したインディケータをチャートに表示してみました。なお画像のラインは、見やすくするためパラメータを変更し太くしてます。