インジケーターの作り方

インジケーターの雛形

スポンサーリンク

インジケーターのひな形

まず無料のインジケーターをダウンロードできるサイトで、簡単そうなのをダウンロードしてください。

例えば、このサイトからダウンロード。
すごくたくさんあります。

インジケーターの中身のMQLの基本的なことが分かるようになれば、
無料のインジケーターを 自分でちょこちょことカスタマイズしたり、インジケーターを自作するうえで、たいへん参考になります。

インジケーターの中身を見る

拡張子は、「mq4」のファイルをダウンロードしてください。
拡張子「mq4」のファイルは、メモ張などのテキストエディターで開いて表示することできます。

テキストエディターで、インジケーターのプログラムソースを見てみてください。
いろいろなことが記載されてますが、基本構成は、下記のような雛形です。

※メタトレーダー4(MT4)の build600からMQLが新しくなり、いろいろ変更ありました。
基本構成でも使用しているinit(), start(), deinit()にも変更あり、新しく下記の関数が使えるようになりました。(今までのも使えます)
新旧の対応を覚えておけばOKです。対応
init() → OnInit()
start() → OnCalculate()
deinit() → OnDeInit()

インジケーターのひな形

インジケーターのひな形です。
処理が記載されていな基本的なひな形で、このひな形の中に具体的な処理を記載していきます。
メタトレーダー4(MT4) build600前後で、変更があったので2通りあります。
関数の名前が違うだけで、ほとんど同じものです。
1.MT4 build600以前のひな形
2.MT4 build600以降のひな形

1.MT4 build600以前のひな形

以前のものもMT4 build600以降で使用できます。

//+------------------------------------------------------------------+
//|                                                     hinagata.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
 
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators

 
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
 
//----
   return(0);
  }
//+------------------------------------------------------------------+

ここから、雛形ファイルの圧縮ファイル(hinagata1.zip)をダウンロードできます。

2.MT4 build600以降のひな形

MT4 build600以降の新しいインジケーター用。このひな形に、追記していきます。

//+------------------------------------------------------------------+
//|                                                      hinagata.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
//---
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

ここから、雛形ファイルの圧縮ファイル(hinagata2.zip)をダウンロードできます。

「//」で始まる行は、コメント行

「//」から始まる行は、コメント行です。
コメント行は、インジケーターの動作に関係しません。

例えば、メモしたいことを コメント行にします。
どんな処理なのかなどのメモです。

3つの基本関数

int init()
int deinit()
int start()

この3つが基本関数です。
MT4 build600以降では、
OnInit()
OnCalculate()
OnDeInit()
の3つが基本関数です。
この基本関数のうち
int init() ( OnInit() )
int start() ( OnCalculate() )
は、必ず必要です。

コメント