本日はメタエディター(MetaEditor)の使い方について記事を書きました。
インジケータやEAを作成をしてみたいけどメタエディターの基本操作が分からない・・
とお悩みの方は多いと思います。
そこで今回はEA・インジケータの開発やプログラミングスクールの運営をしている私がメタエディターの使い方について詳しく解説しました。
初心者の方でも分かりやすいように画像やコード付きで解説していますので最後までご覧下さい。
目次
メタエディター(MetaEditor4)とは?何が作れるの?
メタエディター(MetaEditor)とはメタクオーツ社が開発したMT4上で動くインジケーターやEAを作成するのに特化したツールになります。
MT4上で動くインジケーターやEAはMQL4という言語が使われているのですが、MQL4言語に特化したエディターということになりますね。
基本的には
- インジケーター
- エキスパートアドバイザー(EA)
- スクリプト
この3つが開発できるのが特徴です。
簡単に一つ一つ説明すると、インジケーターとは罫線分析ツールと呼ばれチャート上にテクニカル指標を表示できるものになります。
代表的なものだとボリンジャーバンド、RSI、移動平均線などが有名です。
これらのインジケーターをメタエディターを使えばカスタマイズすることができるのです。
例えば、2本の移動平均線がクロスした時にサインとかRSIが○○以上になったらアラートを鳴らすなどのツールを作るのに特化しているのがメタエディターです。
他のエディターでもコードは書けるのですが、基本的に他のエディターではMQL4プログラミングを想定していないため、特化されているメタエディターでインジケーターの作成をした方が圧倒的に作成しやすいです。
エキスパートアドバイザー(EA)とは自動売買になります。
インジケーターとEAの違いは
- インジケーターはチャート上にラインや矢印などを表示するもの
- EAは売買を実際に行うもの
インジケーターにはバッファーといってチャート上に矢印やラインを描画させる機能をつけることができるのに対し、EAは売買の指示を出すことができるという特徴があるので使いわけるのが基本です。
もう一つスクリプトというものがありまして、スクリプトというのはチャートに入れた瞬間1回だけ動作をするものになります。
例えば、インジケーターやEAはチャート上にずっと入れておくことで条件を満たしたときにサインや売買をしたりするものです。
スクリプトとはチャートに入れた時に時間足をすべて変えたり、通貨ペアを変えたり入れた時1回だけ動作させることができるのが特徴になります。
インジケーター、EA、スクリプトこの3つを作成するのに特化したソフトがメタエディターというわけです。
メタエディター(MetaEditor4)の基本的な使い方【新規作成編】
次にメタエディター(MetaEditor)の基本的な使い方について解説をしていきましょう。
メタエディターはMT4をダウンロードし、インストールをすると一緒についてきます。
こんなアイコンのやつですね。
もしMT4がPCに入っていないという方は、こちらよりダウンロードして下さい。(どこのブローカーでも同じです。)
クリックすると起動します。
以下のような初期画面になるはずです。
ここから早速インジケーターやEAを作成するのですが右上の「新規作成」ボタンをクリックしましょう。
「新規作成」をクリックするとまずは何を作るのか選択します。
基本的にはインジケーター・EA・スクリプトになると思います。
MQL4はC++言語をベースとしているためライブラリなどを作ったりもできるのですが、MT4上で動くインジケーターやEAなどのツールを作りたい場合は上の3つのどれかを選択してください。
今回はエキスパートアドバイザーを選択します。
次に名前を入れます。
お好きな名前を入れてください。
名前は日本語でもいいのですが、日本語だとメールなどで送るときに文字化けとかしてしまう可能性もあるので英数字で設定するのをおすすめします。
著作権やリンク、パラメーターなども設定できるのですが後でも変更できるため空白またはそのままでOKです。
名前は何でもいいのですがどんなロジックかがわかるような名前にしておくのがおすすめです。
例えばRSIを3本使ったロジックなら3RSISignなどと分かりやすいようにしておくといいですね。
次にエキスパートアドバイザーのイベントハンドラを設定していきます。
基本的にEAではティックごとに動作するのが一般的なのですが、他の動作も可能です。
例えば1秒ごとにプログラムが通るようにしたい場合は「OnTimer」にチェックを。
何かボタンがクリックされたりキーボードが押されたり何かイベントが発生した時に通るようにしたい場合は「OnChertEvent」にチェックを入れましょう。
これも後で設定できるのでわからなければ空白でOK(次へをクリック)
次にエキスパートアドバイザーのテスターイベントハンドラを設定していきます。
これはストラテジーテスターでテスト後にする処理を入れることができるのですが基本的に不要ですのでそのまま完了を押して下さい。
これでEAのテンプレートが作成されるため、ここからコードを入れていくのが基本的です。
メタエディターを使えば簡単にテンプレートを作ってくれるのがインジケーターやEAを作る際にメタエディターを使うべき理由になります。
次にこのテンプレートの中身について解説をしていきますね。
メタエディター(MetaEditor4)の初期テンプレートのコードを解説!
//+------------------------------------------------------------------+ //| test.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 //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- //~~~~この中にインジケータ、EAを入れた瞬間に通るプログラムを入れる~~~~~~ //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- //~~~~この中にインジケータ、EAを削除した瞬間に通るプログラムを入れる~~~~~~ } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- //~~~~この中にティックごとに通るプログラムを入れる~~~~~~ } //+------------------------------------------------------------------+
次にメタエディターの初期設定画面のテンプレートについて解説していきます。
まず一番上にEAの基本情報が入りますが、プログラムのルールとして
//より右側の部分はプログラムが通らないというルールがあります。
そのためコード内にメモ書きをしたい時などは//をつけてその後ろにメモを書いておけます。
これは基本でかつよく使うので必ず覚えておいてくださいね。
//+------------------------------------------------------------------+ //| test.mq4 | //| Copyright 2020, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+
次に出てくるのが#property関数になります。
#property関数とはインジケータやEAの設定画面にでてくる部分を設定できるものになります。
#property copyright "Copyright 2020, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict
次がOnInit関数になります。
OnInit関数とはインジケータ・EAをチャートに入れた時に最初に一度だけ通る部分になります。
int OnInit() { //~~~~この中にインジケータ、EAを入れた瞬間に通るプログラムを入れる~~~~~~ return(INIT_SUCCEEDED); }
次にOnDeInit関数になります。
OnDeinit関数はInitの逆で削除した時に一度だけ通る部分になります。
void OnDeinit(const int reason) { //~~~~この中にインジケータ、EAを削除した瞬間に通るプログラムを入れる~~~~~~ }
最後にメイン部分のOnTickですね。
OnTickの中をティック(値動き)ごとに一回通ります。
メイン部分になりますのでこの中にサインを出す条件や売買条件などを入れるのが一般的ですね。
void OnTick() { //~~~~この中にティックごとに通るプログラムを入れる~~~~~~ }
OnTickはインジケーターだとOnCalculateという表現がされておりますが意味は一緒になりますのでその中にティックごとに通るプログラムを入れてあげるといいですね。
これがEAの初期テンプレート画面のプログラムの中身になります。
この{}の中にいろいろ条件や設定などを入れていくというのがMQLの基本的な考え方になりますね。
メタエディターの基本的な使い方【ツールバー編】
次にメタエディターのツールバーの使い方について基本を解説していきます。
・新規作成
インジケータやEAの新規作成をするボタンです。
・プロジェクトの新規作成
プロジェクト(インジケータやEAの設定画面の詳細)の新規作成ができます。
基本的にはproparty関数でできるのでほとんど使わないと思います。
・ファイルを開く・保存
ファイルを開いたり保存したいときはコチラを使います。
左からファイルを選択して開く、ファイルを保存、すべてのファイルを保存になります。
・ツールボックスの表示
ツールボックスはエラーメッセージなどが見れるものになります。
こちらのボタンで表示非表示が切り替えられます。
・MQLライブラリを開く
MT4の中に入っているインジケータやEAを開きたいときはこちらをクリックすると一覧が表示されます。
・ファイル内のショートカットキー
verと書いてあるのは現在の入力場所の変数の定義されている式に飛ぶことができるショートカットです。
変数がごちゃごちゃで探すのが大変の時に重宝します。
fと書いてあるのはOnTick、Init、DeInitなどを選択するとそこに自動で飛べる機能です。
・一個前に進む、戻る
一個前に進む、戻るキーです。
・コンパイル
コンパイルとはコードを実行可能な形式(ex4)ファイルにすることです。
コードを書き終えて実際に動かしたいときはコンパイルをしてからMT4上に入れることでプログラムを動作させることができます。
これ以外のツールバーはよほど専門的なことをしようとしない限り使わないと思いますので、上記のショートカットキーを覚えておいてくださいね。
メタエディター(MetaEditor4)の設定方法について
次にメタエディター(MetaEditor)の設定方法について解説をしていきますね。
設定は上のメニューの「ツール」→「オプション」にて設定ができます。
特に初期設定のままでも問題はないのですがおすすめの変更箇所を解説していきます。
上の写真の赤枠にはすべてチェックを入れておくのがおすすめです。
特に()を挿入や対応する()を強調の部分はあった方が絶対に便利ですので入れておきましょう。
もう一つメタエディターは初期設定だとかなり文字が小さくて見ずらいので「太字」にチェックをいれで文字サイズを少し大きく(私は12にしています)するのがおすすめです。
カラーの設定などもお好みでできるので好きなようにカスタマイズしてくださいね。
まとめ
本日はメタエディターの基本的な使い方を解説しました。
使い方をマスターしたら次は実際にコードを書いてみることをおすすめします。
しかし、MQL4プログラミングはかなりマイナーな言語なため他の言語に比べて学びづらいのが問題点です。
一番つらいのが周りにMQLプログラミングができる人がいないということではないでしょうか?
プログラミングを勉強するときに一番挫折しやすいのが「エラーが解決できない、思った通りに動作しない」です。
エラーが出た時に周りに質問できる人がいないと数日間エラーが解決できず結局挫折してしまう。。
なんてことがよくあります。
そのためプログラミングを勉強する際は完全独学よりも、「質問できる環境を用意する」ことがとても大切です。
当サイトで運営しているプログラミングスクールでは24時間チャットにて質問可能で、かつサンプルコードも30種類以上、動画コンテンツもたくさん用意されているためMQL4プログラミングを覚えるには最適な環境が整っています。
もしこれからMQL4を勉強してみたいなという方は以下のリンクをのぞいてみてください。
初心者の方大歓迎です。
コメントを残す