MT4入門~EAとそのコンパイル

メタトレーダーで、バックテストや自動売買をするためには、EA(エキスパートアドバイザー)と呼ばれる特殊なプログラムファイルをメタトレーダー内にセットして稼動させる必要があります。


まず、実際に、サンプルのEAの中を覗いてみましょう。

メタトレーダー内のEAにアクセスする方法は、大きく分けて3つあります。

1.アクセス方法その1

上のメニュー→「ファイル」→「データフォルダを開く」→「MQL4」→「Experts」と入っていくと、上のような画面になり、赤枠内のファイルがEAです。このアクセス方法は、EA自体を追加・削除したり、複製したり、別のコンピューターへ移動したりする場合に有効です。早速、ダブルクリックして中を見てみましょう。

このEAの製作者が書いたプログラムが見られます。

2.アクセス方法その2

メタトレーダーを起動して、ナビゲーター→Expert Advisors→EAを選択→右クリック→修正をクリックすると、同じEAの中を見ることができます。このアクセス方法は、自動売買をしたり、EAのプログラムを編集したりする場合に有効です。

 

3.アクセス方法その3

同じく、メタトレーダーを起動して、表示→Strategy Testerと入り、

Expert Advisor の中からEAを選択して、「Modify expert」または「エキスパート編集」をクリックすれば、中を見ることができます。このアクセス方法は、バックテストや最適化のときにEAを少し修正したいときに便利です。

ところで、もう一度、メニュー→「ファイル」→「データフォルダを開く」→「MQL4」→「Experts」と入ってください。

よく見ると、似た名前のEAファイルが2つあることが分かります。この2つは、基本的には同一のEAですが、青線の方は、「MQL4」ファイルと呼ばれ、製作者がプログラムを書いたり、読んだり、修正したりするためのファイルで、赤線の方は、「EX4」ファイルと呼ばれ、コンピューターが認識するためのファイルです。

これは、どういうことかというと、コンピューターは人間と異なり文字を認識することができないので、「MQL4」ファイルのままでは自動売買もバックテストもできません。そこで、この「MQL4」ファイルを変形してコンピューターが認識できるようにしたものが「EX4」ファイルです。なので、この「EX4」ファィルは、人間が開いて中を見たり修正したりすることはできません。あくまでもコンピューターが認識するためのファイルです。

そして、「MQL4」ファイルを「EX4」ファイルへ変形する作業を、コンパイルといいます。つまり、EAの製作から自動売買やバックテストまでの流れは、

 

① 製作者が「MQL4」ファイルを書き、それをメタトレーダー内にセットする。

② 「MQL4」ファイルをコンパイルして「EX4」ファイルへ変形する。

③ コンピューターがその「EX4」ファイルを認識して、自動売買やバックテストを実行する。

 

となるわけです。

 

なお、コンパイルという作業は、新たなEAをセットしたときだけでなく、メタトレーダー内に既に存在するEAを修正した場合にもその都度行なう必要があります。

では、早速、コンパイルのやり方を勉強しましょう。

たとえば、上の画像のようなMQL4ファイルを製作または入手したとします。

これを、メニュー→「ファイル」→「データフォルダを開く」→「MQL4」→「Experts」内に保存します。

 

上の画像のように、この時点では、「MQL4」ファイルはセットされましたが、これに対応する「EX4」ファイルはまだ存在しないことが分かります。そこで、赤枠のファイルをダブルクリックで開いてください。すると、

そして、実際に、Cドライブ→MT4→experts内を確認してください。「MQL4」ファイルはセットされましたが、これに対応する「EX4」ファイルはまだ存在しないことが分かります。そこで、赤枠のファイルをダブルクリックで開いてください。すると、

プログラムが見えるので、上の「Compile」というボタンをクリックすると、数秒で左下のようなサインが出たら、コンパイル成功です。そうしたら、いったんメタトレーダーを再起動して、もう一度、メニュー→「ファイル」→「データフォルダを開く」→「MQL4」→「Experts」内を確認しましょう。

「EX4」ファイル(青枠内)が出来上がっています。これではじめて、コンピューターが自動売買やバックテストを実行することが可能になるわけです。

 

なお、メタトレーダーの最新のバージョンでは、MQL4ファイルを「Experts」フォルダへ入れて、そのままメタトレーダーを再起動するだけで自動的にコンパイルしてくれるようです。