この記事では、外国為替取引(FX)や株式取引のプラットフォームとして広く利用されているMetaTrader4(MT4)の自動売買機能であるExpertAdviser(EA)を作成する方法について解説します。
一般にEAは、MQL4というプログラミング言語を利用して作成することになりますが、ノーコード開発ツール「EAつくーる」を使えばプログラミングの知識なしにEAを作成することができます。
FXの自動売買に興味がある人、裁量トレードの手法を自動化してみたい人、トレード手法の検証をEAを使って効率的に行いたい人はぜひこの記事を参考にしてください。
おさらい:MetaTrader4(MT4)とExpertAdviser(EA)の概要
MetaTrader4(MT4)は、世界中で最も人気のあるFXや株式取引のプラットフォームの1つです。MT4は、無料のチャート分析ソフトウェアであり、市場分析、取引、チャートの作成、自動売買機能であるExpertAdviser(EA)のプログラム設定など、様々なトレード活動を行うことができます。
EAとは、トレードルールに基づいて自動的にトレードを行うプログラムであり、MT4にはこのEAの自動売買機能が組み込まれています。EAを活用することで、投資家は人間が行うトレード活動に必要な時間と労力を削減することができます。EAを作成するためには、MQL4(MetaQuotes Language 4)と呼ばれるプログラミング言語の基礎知識が必要です。
EAを作る前に必要な知識と準備
ExpertAdviser(EA)を作成するためには、MQL4(MetaQuotes Language 4)の基本的な知識が必要です。MQL4は、MT4での自動売買のために作成されたプログラミング言語です。また、EAを作成するためには、MT4のプラットフォームをダウンロードしてインストールする必要があります。
EAを作成するためには、以下の準備が必要です。
事前準備
- EAのトレードルールを決定するためのトレード戦略の知識
- プラットフォーム(MetaTrader4(MT4))のインストール
- MQL4プログラミング言語の基礎知識
- プログラミングエディタの利用方法の知識
- MT4のテスト環境(デモ口座)
MT4には、EAを作成するためのMQL4言語が搭載されており、プログラミングの知識が必要です。しかし、EAつくーるを使用することで、初心者でも簡単にEAを作成することができます。EAつくーるは、多数の設定項目を備え、トレードルールに基づいて、自動売買プログラムのコードが自動的に生成されるため、MQL4の知識がなくてもEAを作成することができます。
つまり、EAつくーるがあれば、事前準備のうち、プログラム初心者にとって非常にハードルが高い③と④が不要になり、一気にEA開発のハードルが低くなります!!
EAつくーるを使ったEA作成手順
EA作成手順
- EAのトレードルールを決定する
- MQL4ファイル(ソース)の書き出し
- MQL4ファイル(ソース)の編集・コンパイル
- バックテスト・パラメータ調整
- フォワードテスト
EAつくーるは市販のノーコード開発ツールですが、EAつくーるを使用することで、プログラミングの知識がなくてもEAを作成することができます。
EAつくーるを使用する手順を以下に示します。
手順①:EAのトレードルールを決定する
EAを作成するには、まずトレードルールを決定する必要があります。
必要があるルールは、買い注文(ロング)と売り注文(ショート)ごとに①エントリールール(注文)、②イグジットルール(決済)の計4つです。

今回は次のようなトレードルールで作成することにします。
トレードルール
【①-1エントリールール(買い)】
●短期(14)移動平均線(SMA)が長期(50)移動平均線(SMA)を上抜け(ゴールデンクロス)で「買い」
【①-2エントリールール(売り)】
●短期(14)移動平均線(SMA)が長期(50)移動平均線(SMA)を下抜け(デッドクロス)で「売り」
【②イグジットルール(買い、売りとも】
●ドテン売買(オプションにて設定可)
今回のトレードルールは、移動平均線のゴールデンクロスとデッドクロスでそれぞれ売り買いするシンプルなロジックです。
これをEAつくーる(Web版)に入力すると次のようになります(他も同じように入力)。

また、ドテン売買(決済ルール)はオプションで簡単に設定できます。

トレードルールを入力し終わると、次のようになります。

その他、EAのパラメータ、トレードロットのサイズ、トレードする通貨ペア、取引時間枠、トレードルールなどのトレード活動に関連する設定することになりますが、こちらはバックテストの結果を踏まえて行うことにします。
手順②:MQL4ファイル(ソース)の書き出し
手順①でプログラミング部分はあっけなく終了です。
早速、EAつくーるが作ってくれたMQL4ファイル(ソース)を書き出してみます。
書き出し作業も簡単で、「基本項目」欄の上部にある「MT4 EA作成」ボタンをクリックするとファイルの保存ができます。

ちなみに「MT5 EA作成」ボタンをクリックするとMT5用EAのMQL5ファイル(ソース)を書き出すこともできますので、MT4用とMT5用のEAを同時開発することが可能になります。
手順③:MQL4ファイル(ソース)の編集・コンパイル
EAつくーるから書き出したMQL4ファイルは、そのままMT4のExpertフォルダに格納するだけで使用することができますが、MT4付属のエディタ(MetaEditor)で編集することも可能です。
//(略)
input int Magic1 = 1;
input double Lots = 0.1;
input double StopLoss = 120;
input double TakeProfit = 0;
input int Slippage = 10;
input string comment = "";
input bool isMoneyManagement = true;
input double MoneyManagementRisk = 3;
input bool isMartingale = true;
input double MartingaleMult = 2;
input double MartingaleMaximum = 1;
//(略)
今回は、マジックナンバーの初期値の変更、不要なパラメータが非表示となるように編集します。
//(略)
input int Magic1 = 123456;
input double Lots = 0.1;
input double StopLoss = 120;
input double TakeProfit = 0;
input int Slippage = 10;
string comment = "";
input bool isMoneyManagement = true;
input double MoneyManagementRisk = 3;
input bool isMartingale = true;
input double MartingaleMult = 2;
input double MartingaleMaximum = 1;
//(略)
手順④:バックテスト・パラメータ調整
ここまででEAのプロトタイプ(試作版)ができましたので、MT4で実際に稼働させてバックテストをしてパラメータ等の調整を行います。
もしここでMQL4の内容を書き換えたい場合は、EAつくーるを使って修正するか、MQL4言語の知識がある人はMT4付属のエディタ(MetaEditor)で直接修正することもできます。
バックテストの結果を踏まえてパラメータの調整をした結果は次のとおりです。

今回はサンプル用に移動平均線のゴールデンクロスとデッドクロスでそれぞれ売り買いするシンプルなロジックでEAを作成しましたが、しっかり作り込んだ場合も基本的なEA作成の方法は変わりません。
今回は利用していませんが、複利機能、トレーリングストップ、ナンピン、マーチンゲール等の機能もオプションで簡単に付加することができるので、アイデアさえあれば、かなりのバリエーションのEAを自分で作ることが可能になります。
手順⑤:フォワードテスト
バックテストの結果を踏まえてEA(β版)が完成したら、実際のトレードに利用する前にフォワードテストを行います。
バックテストでいい成績を残せたとしても、それはあくまでも過去の相場での話で、将来の実際のトレードで成績が出るかどうかは未知数です。
そこで、デモ口座を利用したフォワードテストを行い、必要があればパラメータ等の調整をする必要があります。
ただ、今回はサンプルなのでフォワードテストはできませんので、代わりにモンテカルロ・シミュレーションを行ってみました。
モンテカルロ・シミュレーション
モンテカルロ・シミュレーションは、不確実な事象の起こり得る結果を予測する数学的手法で、過去のデータを分析し、選択したアクションに基づいて将来のさまざまな結果を予測することができます。

モンテカルロ・シミュレーションを行ったところ、144トレード後の損益予想額がベスト6568.81ドル、ワースト-1244.78ドルと今回作成したβ版はちょっと実戦投入するには厳しそうな結果となりました。
今回はサンプルEAなのでこんな結果になりました、実際に裁量トレードで利用しているロジックをEA化するのであれば、もっと良い結果が出るEAを作ることはそう難しくありません。
その意味では、EA開発に必要なのは、優位性があるロジックを見つけ、バックテストを繰り返してベストチューニングすることに尽きると思います。
興味がある方は、EA開発プロセスの一例を紹介していますので、こちらの記事も参考にしてください。
-
-
祝note発売!初心者でもできるEA開発 - アヴァンセEA倶楽部
こんばんは、瑛斗です! 先日あったオンライン飲み会で勢いで盛り上がって企画された「note企画」やっと日の目を見ることができました♪ 「おうち時間応援企画」のはずだったのに、GWが終わりそうな時期にな
avancer.club
-
-
【第2弾】初心者でもできるEA開発(逆張りロジック編) - アヴァンセEA倶楽部
こんにちは、瑛斗です! 「おうち時間応援企画」ということで始めたnote企画、お陰様で好評をいただいています♪ 早速、著者も調子に乗ったみたいでリクエストが多かった逆張りロジックEAの作り方を第2弾と
avancer.club
まとめ
EAを作成するためには、MT4の機能を理解し、MQL4の基礎知識を習得することが重要です。
しかし、EAつくーるを利用すれば、トレードルールに基づいたロジックのアイデアがあれば、MQL4のプログラミングの知識がなくてもEAを作成することができます。
MT4でEAを作成することは、プログラミング初心者にとっては非常にハードルが高く、良いロジックのアイデアがあっても、自動売買を行うには市販のEAを購入するか、外注してアイデアをEA化してもらうしかありません。
そんなときは、EAつくーるを使って簡単なEAからスタートし、徐々に複雑なEAを作成するようにすると、MQL4の理解が進み、より高度なEAを作成することができるようになります。
そして、パラメータの調整やテスト結果の分析など、EA開発で大切な継続的な改善作業に注力することができます。
ある程度FXトレードの経験があり、優位性があるロジックある人はぜひEA開発にチャレンジしてみてください!