最短でEAを作る(第2回)

2018年10月11日

プログラムの世界

第2回目は、早速ですがMT4/MT5で簡単な自動売買プログラムを書きます。
プログラムを書いたことが無い方は不安があるかと思いますが、とても簡単な手順で書けますので安心してください。

最初に事前準備が少々あり面倒に感じると思いますが、地道にやればあっという間にできてしまうので諦めずに頑張ってください。
うまくいかない場合は気軽にお問合せいただければと思います。

※自分のPCにMT4/MT5がインストールされている前提で話を進めていきますので、まだインストールされていない方はメタトレーダー(MT4/MT5)で自動売買するための事前準備(第1回)を判断基準にしつつ、各証券会社のページを見てインストールしておいてください。

事前準備

便利なライブラリを取り込む

ライブラリとは、よく使う便利なプログラムをまとめたものです。

ライブラリを入れることで本来書くべきプログラムの量が大幅に減り、売買ルールを考える方に集中することができます。

 

ライブラリをダウンロード

まずはこちらのサイト(Toyolab FX)から、ライブラリをダウンロードしてください。

この時点の最新ライブラリは2018年6月19日版ですが、アップデートがある度に随時更新されていきますので、最新のものをダウンロードしてください。

MQL4MQL5共通ライブラリをダウンロードできるサイト

サイトの運営者である豊嶋先生はMT4/MT5の専門家で、10年以上前に日本にMT4が導入されたころから第一線で活躍されています。

実はMT4で書くプログラムとMT5で書くプログラムは互換性が無いのですが、豊嶋先生のライブラリを使うことで同じプログラムで動作させることができます。

あまりピンと来ないかもしれませんが、これは本当に凄いことです。

これから作成するEAもこのライブラリをフル活用して、MT4とMT5のどちらでも動作するプログラムを書いていきます。

中にはMT5ではMT5のプログラムスタイルで書くべきだという方もいるのですが、投資で儲けたいと思っているのであれば優先的に時間をかけるべきなのは売買ルールの作成部分なので気にせず使うべきです。

また、豊嶋先生が執筆している書籍にライブラリの説明やトレードアイデアなども記載されていますので、興味のある方は購入してみてください。

おすすめは以下の順番で読んでいくことです。
※電子書籍版と通常書籍版がありますので、購入時はご注意ください。

 

※本筋から話が逸れますが、書籍は基本的に電子書籍版が良いです。
AmazonのKindleや楽天のKoboが有名で、電子書籍リーダーを購入しなくても利用することができます。

電子書籍が良い理由

  • 「PC・タブレット・スマホ」と端末を選ばず、どこに居ても読むことができる
  • 重要な情報が更新された場合に書籍がアップデートされる

特に書籍のアップデートは、紙の書籍では絶対に受けられないので大きな特典です。

 

ライブラリを配置

ライブラリの配置手順を記載します。

(1) MT4/MT5を起動する

(2) ファイル>データフォルダを開く
MT4MT5のデータフォルダを開く

 
(3) MQL4>Experts(MT5の場合はMQL5>Experts)に移動する

Expertsフォルダの中身

 
(4) ダウンロードしておいたファイルを3つExpertsにコピーする

MT5の場合は、LibOrder5.mqhもコピーしてください。

※Include下に配置した方が綺麗ですが、今回はExperts下にしました。
共通ライブラリをExpertsにコピー

 
これで準備が完了しましたので、次から実際にプログラムを書いていきます。

 

プログラムを書こう

新規ファイルの準備

まずはMetaEditorを起動してください。
ショートカットがあればそこから起動すればよいですし、無ければMT4/MT5を起動してから下図の赤枠部分をクリックします。
MetaEditorを開く

 
(1) MetaEditor左上のNewをクリック

(2) Expert Advisor (templete)を選択して「次へ」をクリック
MQL4ウィザード(作成タイプ選択)

 
(3) 「Name」の「Experts\」後ろにFirstEAと入力し、「Author」には自分の好きな名前を設定して「次へ」をクリックします。

MQL4ウィザード(基本情報の入力)

 
(4) 設定を変更せず「次へ」をクリックします
MQL4ウィザード(イベントの設定)

 
(5) 設定を変更せず「完了」をクリックします
MQL4ウィザード(イベント設定②)

 
(6) 以下のような画面が表示されればここまでの設定は問題ありません

MT4の場合、「MQL4 > Experts」にFirstEA.mq4が作成されます。

MT5の場合、「MQL5 > Experts」にFirstEA.mq5が作成されます。

 
※私は暗い色が好きなのでEdiorを黒にしています。皆様と画面の色が異なるかと思いますが気にしないでください。
MetaEditorに作成されたプログラム

 

移動平均線に基づいた売買プログラムを書く

1. プログラムの差し替え

先ほどのプログラムを全て削除して、以下に差し替えてください。

よりプログラムがシンプルになり、実際触る必要が無い部分を視覚的にも排除できます。

 
Tick毎に呼び出されるという説明を記載しましたが、どういう意味かと言うと価格が変動するたびに呼び出されるということです。

例えば1秒間にUSD/JPYが112.345->112.368->112.377というように動くたびに呼び出されます。

ここは定型部分ですのであまり気にしなくて大丈夫です。

 

2. 移動平均線の状態を取得する

Tick(){}の中に以下コードを追加します。

細かい部分は割愛しますが、大まかな意味は50期間の単純移動平均線の値をma_1に格納しているということです。

 

3. 売買条件を記載

移動平均線をローソク足が上抜けば買い、下抜けば売りとします。

 

4. 「1~3」をまとめたプログラム

 

5. コンパイルしよう

コンパイルとは先ほど書いたプログラムをコンピューターが解読できる形式に変換することですが、ここでは深く考える必要はありません。

プログラムを作ったり修正したらコンパイルしないと反映されないと覚えてください。

下図の通りCompileをクリックしてください。
Compileをクリックしてエラーが無いことを確認

 
errorとwarningが0ならコンパイル成功です。

[コンパイル後の状況]

MT4・・・「MQL4 > Experts」にFirstEA.ex4が作成される

MT5・・・「MQL5 > Experts」にFirstEA.ex5が作成される

 

補足FirstEA.mq4/mq5が人間が読める形式のプログラム本体が書かれたもので、FirstEA.ex4/ex5がコンピューターが読む方です。

例えば友人にEAをプレゼントする時にプログラムは見られたくないな、という場合はex4/ex5だけ渡せば良いです。

ex4/ex5があればバックテストやリアル口座での運用が可能です。

市販のEAもex4/ex5のみ配布され、mq4/mq5は配布されません。

errorやwarningはプログラムに不備がある場合に発生します。原因はスペルミスが最も多いので、まずはそこを疑ってみてください。

 

6. テストしよう

過去の一定期間において、もし作成した売買ルールで動かしていた場合にどうなっていたかを確認します。

これが自動売買をする人達(システムトレーダー)のメイン作業になります。

MT4/MT5を起動し、「表示>ストラテジーテスター」をクリックしてください。

 
[MT4の場合]

FirstEA.ex4を選択、その他部分を同じように設定し、「スタート」をクリックしてください。
ストラテジーテスターに設定を入力してスタートをクリック(MT4の場合)

 
[MT5の場合]

FirstEA.ex5を選択、その他部分を同じように設定し、「スタート」をクリックしてください。

ストラテジーテスターに設定を入力してスタートをクリック(MT5の場合)

 
ビジュアルモードにチェックを入れたので、チャートの描画が開始されたかと思います。

 
[MT4の場合]

描画速度の調整は、ビジュアルモードの脇のスクロールバーで行うことができます。

 
[MT5の場合]

別でチャートウインドウが立ち上がりますので、上部のコントロールバーで描画速度を調整してください。

MT5ストラテジーテスターのビジュアルモードの速度変更

 
動作を確認するときは、スクロールバーで描画速度を調整して見やすい設定にしたうえで、想定通りに動いてるか確認します。

結果として下図のようになればOKです。
赤枠内の「結果、グラフ、レポート」に今回の売買ルールで取引をした場合の実績が表示されます。

ここで良い成績となれば実際に運用した時にも良い成績になる確率が高いですし、低ければ難しいと判断できます。

バックテスト結果

 

まとめ

だいぶ駆け足で進んでしまいましたね。

ここまでやってみて少し難しいなかなと感じる方は、先に「初心者でも分かる!MT4/MT5のプログラミング入門|MQL入門(1回目)」を確認してみてください。

プログラムの基礎から説明をしています。

今回は成績の良いEAを作るのが目的ではなく、EAを作る流れを説明したかったので、細かい部分は割愛しました。

まずは、EAを実際に作ってみて興味を持つことが大事だと思います。

次回の自動売買の選択肢を考える(第3回)以降では、より現実的な売買ルールとこれまでの部分の掘り下げをしていきます。

今回の記事のまとめ

  • 売買ルールを考える部分に時間を使う
  • 電子書籍は情報が更新されるので有利
  • コンパイルしないとプログラムは動かない

 

自動売買入門のまとめは以下をご参照ください