MT5 EAの作り方:MetaTrader 5の自動売買ロボット(Expert Advisor)を作って動かす
最終更新日: 2026年10月
MetaTrader 5の自動売買ロボットは、正式にはExpert Advisor(EA)と呼ばれ、相場を監視して、 あなたが決めたルールどおりに自動で注文を出す小さなプログラムです。この初心者ガイドでは、MQL5で最初のEAを作る方法、 安全なテストのやり方、AIで下書きを作るコツ、そして24時間365日動かし続ける方法を順を追って解説します。
Expert Advisorとは?
EAは、デスクトップ版MetaTrader 5ターミナルのチャートに設定して使うプログラムです。価格が動くたびに (ティックごとに)MT5がEAを呼び出し、EAはインジケーターを読み取ったり、ポジションを建てたり決済したり、 ストップを管理したりできます。EAはC++に似た言語MQL5で、MT5に付属するMetaEditorを使って書きます。
重要:EAが動くのはデスクトップ版ターミナルだけです。MT5のスマホアプリでは手動取引はできますが、 EAは動かせません。
必要なもの
- デスクトップ版MetaTrader 5(ブローカーまたはmetatrader5.comから入手)— MetaEditorも同梱されています。
- ブローカーのデモ口座。いきなりリアル口座で始めるのは絶対にやめましょう。
- 明確なルール:いつエントリーし、いつ決済し、どれだけリスクを取るか。
EAの基本構造
OnInit():EAの起動時に1回だけ実行されます。インジケーターのハンドルを作成し、入力値をチェックします。OnTick():価格が動くたびに実行されます。売買ロジックはここに書きます。OnDeinit():EAを外したときに実行されます。リソースを解放します。input変数は、コードを編集せずに変更できる設定項目になります。
最初のEA:移動平均クロス
MetaEditorでファイル → 新規作成 → Expert Advisor(テンプレート)を選び、名前を付けて、コードを次の内容に置き換えます。
#include <Trade\Trade.mqh>
input int FastMA = 10; // fast average
input int SlowMA = 30; // slow average
input double Lots = 0.01; // lot size
input ulong Magic = 260101; // tags this robot's orders
CTrade trade;
int hFast, hSlow;
int OnInit() {
hFast = iMA(_Symbol, _Period, FastMA, 0, MODE_SMA, PRICE_CLOSE);
hSlow = iMA(_Symbol, _Period, SlowMA, 0, MODE_SMA, PRICE_CLOSE);
if (hFast == INVALID_HANDLE || hSlow == INVALID_HANDLE) return INIT_FAILED;
trade.SetExpertMagicNumber(Magic);
return INIT_SUCCEEDED;
}
void OnDeinit(const int reason) {
IndicatorRelease(hFast);
IndicatorRelease(hSlow);
}
void OnTick() {
static datetime lastBar = 0;
datetime bar = iTime(_Symbol, _Period, 0);
if (bar == lastBar) return; // decide once per new candle, not every tick
lastBar = bar;
double f[2], s[2]; // [0] = two bars ago, [1] = last closed bar
if (CopyBuffer(hFast, 0, 1, 2, f) < 2 || CopyBuffer(hSlow, 0, 1, 2, s) < 2) return;
bool crossUp = f[0] <= s[0] && f[1] > s[1];
bool crossDown = f[0] >= s[0] && f[1] < s[1];
bool hasPos = PositionSelect(_Symbol);
if (crossUp && !hasPos) trade.Buy(Lots, _Symbol);
if (crossDown && hasPos) trade.PositionClose(_Symbol);
}短期の移動平均が長期の移動平均を上抜けたら買い、再び下抜けたら決済します。判断は新しいローソク足ごとに1回だけなので 重複注文を防げます。また、取引にmagic numberを付けるので、手動の取引や他のEAの取引と区別できます。
コンパイル:.mq5 → .ex5
MetaEditorでF7(コンパイル)を押します。エラーがなければ.ex5ファイルが作成されます。 MT5が実際に実行するのはこのファイルです。エラータブの警告はすべて確認しましょう。初心者がつまずく問題の ほとんどはここに表示されます。
Strategy Testerでバックテスト
- MT5で表示 → ストラテジーテスター(Strategy Tester、Ctrl+R)を開きます。
- EA、銘柄、時間足、そして最低1年分の期間を選びます。
- 最も現実に近い結果を得るには「リアルティックに基づいた全ティック」を使います。
- 利益だけでなく、純利益、最大ドローダウン、取引回数を確認します。
良いバックテスト結果は約束ではありません。相場は変わります。過去データで素晴らしく見えたEAが、リアルでは損失を 出すこともあります。
チャートで動かす
- ナビゲーター(Navigator)からEAをチャートにドラッグします。
- 設定画面でアルゴリズム取引を許可(Allow Algo Trading)にチェックを入れ、入力値を設定します。
- ツールバーのAlgo Tradingボタンをオンにします。チャート上のアイコンがアクティブなら稼働中です。
- メッセージやエラーはエキスパート(Experts)タブと操作履歴(Journal)タブで確認します。
AIでEAを作る
AIアシスタント(ChatGPT、Claudeなど)を使えば、MQL5コードの下書きをすばやく作れます。ルールは具体的に伝えましょう。
MQL5でMetaTrader 5のExpert Advisorを書いてください。
戦略:現在のチャートで10期間SMAが30期間SMAを上抜けたら買い、
下抜けたらポジションを決済する。ポジションは同時に1つまで。
要件:CTradeを使用、magic numberとロットサイズをinputで設定、新しいバーでのみ判断、
すべての取引結果をチェックしてエラーコードをPrintで出力、Sleep()とDLLインポートは使わない。
短いコメントを付けてください。出てきたコードは、知らない人が書いたコードとして扱ってください。
- コンパイルしてエラーをすべて直す — AIはMQL4とMQL5の関数をよく混同します。
- ロットサイズとリスク管理のロジックを1行ずつ確認する。
- すべての注文にストップまたは明確な決済条件があり、magic numberが一意であることを確認する。
- まずバックテスト、次に数週間のデモ運用、リアル運用はその後。
24時間365日動かす
EAが動くのは、ターミナルが起動していて接続されている間だけです。PCがスリープしたりネットが切れたりすると、EAは 止まります。選択肢は、PCをつけっぱなしにする、Windows VPSを借りる、マネージドクラウドを使う、のいずれかです。 etrinkでは、ボット追加ページで.mq5または.ex5ファイルをアップロードするだけ。 私たちがコンパイルしてエラーがあれば表示し、常時稼働のMT5ターミナルに設置します。ライブ画面はスマホから確認できます。
リアル運用前のチェックリスト
- 長期間、さまざまな相場環境でバックテスト済み。
- 数週間デモ口座で運用し、その結果を理解している。
- 1取引あたりのリスクと、許容できる最大ドローダウンを決めている。
- すべてのポジションにストップと決済条件があり、magic numberは一意。
- リアル運用は最小ロットから始める。
よくある質問
MT5のEAを動かすのにプログラミングの知識は必要ですか?
いいえ。完成済みのExpert Advisor(.ex5)なら、コードを書かずに動かせます。自作する場合はMQL5の基礎があると便利です。AIアシスタントで下書きを作り、慎重にテストする方法もあります。
.mq5と.ex5の違いは何ですか?
.mq5はMetaEditorで編集するソースコードです。.ex5はコンパイル済みのファイルで、MetaTrader 5が実際に実行するのはこちらです。
スマホでMT5のEAを動かせますか?
いいえ。MetaTrader 5のモバイルアプリではExpert Advisorを実行できません。EAには24時間起動しているデスクトップ版ターミナルが必要です。自分のPC、VPS、またはetrinkのようなマネージドクラウドで動かします。
リアル口座で運用する前に、どのくらいテストすべきですか?
まずStrategy Tester(ストラテジーテスター)でバックテストし、その後、実際のお金をリスクにさらす前に、少なくとも数週間、さまざまな相場環境でデモ口座で動かしてください。
無料で始める — テスト済みのEAを、クラウド上の常時稼働MT5ターミナルで 動かしましょう。関連記事:VPSなしでMT5のEAを24時間稼働させる方法。