Category Archives: MetaTrader

[FX]MetaTrader4でカスタムインジケータを作る

MetaTrader4で自動売買を実現する前に勉強がてらカスタムインジケータを作ってみた。よくある移動平均だけど、終値のほかに高値、安値も表示するようにしてみた。

初めてMT4でプログラミングしてみたんだけど、カスタムインジケータを作るくらいなら超簡単でした。これくらいのものなら、一瞬で作れるね。ハラショーー。

高値を赤、終値を緑、安値を青で表示し、移動平均のパラメータを外だししてみる。

#property copyright "tAkatronix"
#property link      "http://freeek.jp"

#property indicator_chart_window
#property indicator_buffers 3

#property indicator_color1 Red
#property indicator_color2 Green
#property indicator_color3 Blue

//---- input parameters
extern int       nMA_Period;

double   BufHigh[];
double   BufClose[];
double   BufLow[];

int init()
  {
   //    初期化
   SetIndexBuffer(0,BufHigh);
   SetIndexBuffer(1,BufClose);
   SetIndexBuffer(2,BufLow);

   return(0);
  }

int start()
  {
   int    nBars =IndicatorCounted();

      for(int i = nBars-1;i >=0;i--)
      {
         BufHigh[i] = 0;
         BufClose[i] = 0;
         BufLow[i] = 0;
         for(int j=0; j < nMA_Period;j++)
         {
            BufHigh[i] = BufHigh[i] + High[i+j];
            BufClose[i] = BufClose[i] + Close[i+j];
            BufLow[i] = BufLow[i] + Low[i+j];
         }
         BufHigh[i] = BufHigh[i] / nMA_Period;
         BufClose[i] = BufClose[i] / nMA_Period;
         BufLow[i] = BufLow[i] / nMA_Period;

      }

   return(0);
  }

extern int nMA_Period;
と、したパラメータはインジケータを挿入した時に表示されるダイアログで数値を入力できる。
mt1

んで、移動平均のパラメータを4にした結果
mt2