1,000人限定!!企画に参加してEAをGetする公式ラインに登録して
プレゼントをもらう

【MQL】カスタムインジケーターを作成の流れについてわかりやすく説明してみた

MQL インジケーター作成 カスタムインジケーター作成の流れMT4インジケーター作成

カスタムインジケーターの作成の流れ

カスタムインジケーターの作成の流れを説明していきます。

メタエディターを起動する

MetaEditor(メタエディタ)をMT4から起動させる方法は以下の通りです。

MQL MT4 カスタムインジケーター 作成

  • ツール→メタエディタ
  • フォルダのアイコン

でメタエディタを起動します。

カスタムインジケーターを選択する

次に新規作成を押して、今回はインジケーターを作成するのでカスタムインディケータを選択しましょう。

MQL MT4 カスタムインジケーター 作成

必要な情報を記入する

必要な情報を記入しましょう。

  • インジケーターの名前
  • 著作者
  • リンク
  • パラメーター

パラメーターは必要なときだけ活用します。

今回は名前はSample1などで良いです。

MQL MT4 カスタムインジケーター 作成

イベントハンドラを選択

イベントハンドラを選択します。もともとOncalate()は入っているので、

  • OnTimer()
  • ONChartEvent()

は、必要な時にチェックしましょう。

MQL MT4 カスタムインジケーター 作成

サブウィンドウの設定

サブウィンドウの設定になります。今回は必要ないのでスルーです。そのままfinishを押して終了しましょう。

MQL MT4 カスタムインジケーター 作成

テンプレートが自動で生成される

以下のようにテンプレートが自動生成されます。

MQL MT4 カスタムインジケーター 作成

これが1つの雛形になります。

ソースコードはそのまま以下に記載しておきます。

//+------------------------------------------------------------------+
//| sample1.mq4 |
//| Copyright 2020, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#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);
}
//+------------------------------------------------------------------+

テンプレートから記載していくこと

テンプレートから記載していくことを説明していきます。

まずは、ソースコードの全体像を確認します。

MQL MT4 カスタムインジケーター 作成

プロパティを記述する

プロパティを記述していきます。

【MQL言語入門】様々な情報を表示することが可能な『プロパティ(#property)』について徹底解説してみた
プロパティ プロパティとはMQL4プログラムの設定に関する定義で、通常はソースコードの先頭に記述します。 #propertyはプリプロセッサ指令の1つであり、コンパイル前にプリプロセッサによって処理されます。 プロパティでEA...

パラメーターを記述する

【MQL言語入門】利用者が自由に設定や変更するための『パラメーター』についてわかりやすく説明してみた
パラメーター MT4を利用する際にインジケーターのパラメーターやEAなどのロット数やマジックナンバーなど、 利用者が自由に設定や変更したい数値があります。 これらの数値を変数として宣言することで外部パラメーターとして利用するこ...

バッファを記述する

バッファとは、数値を入れておく箱のようなものです。

MQLでインジケーターはバッファで管理されることが多いです。

チャート上に線や矢印などの設定をしたい場合は、バッファの存在をMT4に通知する必要があります。

【MQL】データを一時的に保存しておくための変数である『バッファ』についてわかりやすく説明してみた
バッファ バッファとは、一般的には緩衝材を指すことが多いです。 例えば、仕事のスケジュールのバッファは?と聞かれた場合に 納期までに余裕のある日数はどれくらい?という意味になります。 プログラミングではバッファをデータの...

イベントハンドラ関数内にプログラムを記述する

イベントハンドラ関数内にプログラムを記述していきます。

基本的にカスタムインジケーターで記載する必要があるのは、

  • OnInit()
  • OnCalculate()
  • OnDeInit()

の3つです。

【MQL言語入門】特定の条件を満たすことで呼ばれる『イベントハンドラ関数』について徹底解説してみた
イベントハンドラ イベントハンドラとは特定の条件を満たすことで呼ばれる関数のことです。 MQL4のプログラムは主にこのイベントハンドラの関数内に記述することになります。 プログラムの種類によって必要なイベントハンドラの種類が異...

ソースコードを書き終わったら

ソースコードを書き終わったら何をするかを説明します。

MQL MT4 カスタムインジケーター 作成

ソースコードをコンパイルする

プログラムを記述した後に、コンパイルという作業が必要になります。

プログラムをコンパイルすることにより、

メタトレーダーのインジケーターやEAとして使用することができるようになります。

MQL MT4 カスタムインジケーター 作成

【MQL言語入門】ソースコードをコンピューター上で実行可能な形式に翻訳する『コンパイル』について徹底解説してみた
コンパイル コンパイルとはプログラミング言語で書かれたソースコードを コンピューター上で実行可能な形式に変換することです。 コンパイルを行うソフトウェアをコンパイラと呼び、 変換されるプログラミング言語をコンパイ...

実際にチャートに表示する

作成したカスタムインジケーターをチャートに表示して実際に使います。

もしバグなどがあればデバッグ作業を行いましょう。

【MQL言語入門】バグの原因を突きとめる『デバッグ』について徹底解説してみた
デバッグとは デバッグとはバグと呼ばれるプログラムや関数の間違いを発見して排除する作業です。 バグフィックスとも呼ばれることがあります。 デバッグ(debug)のbugは英語で欠陥を意味しており、直訳すると欠陥を取り除...

バグもなければこれでカスタムインジケーターの作成が完了です。

メタエディタ(MetaEditor)の様々なテクニック

メタエディタ(MetaEditor)の様々なテクニックをご紹介します。

インデントを効率化するテクニック

インデントを部分的に修正したい時は複数行を選択して

  • Tabを押すと右に動く
  • Tab+Shiftを押すと左に動く

Tools – Styler を選択すると全てが自動で適切な配置にインデントされ一括整形できます(行の選択は不要)。

関数リファレンスを見るテクニック

調べたい関数の上にカーソルを置いて「F1」を押すと関数リファレンスを見ることができます。

パラメータヒントを見るテクニック

関数の引数入力中に「Ctrl」+「Shift」+「Space」を押すとパラメータのヒントが出るので、

これを参考にすると何を入力すれば良いか分かります。

入力補完を効率化するテクニック

Tools – Options を選択し、Generalタブの List names after に「1」を入力すると、

入力補完の選択肢発生が初期設定の3文字目から1文字目になります。

まとめ

今回はカスタムインジケーターの作成の流れをご紹介しました。

一度理解すればあとはプログラミングする際に同じような手順を進めれば良いです。

コメント

タイトルとURLをコピーしました