etrink← ホーム

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でバックテスト

  1. MT5で表示 → ストラテジーテスター(Strategy Tester、Ctrl+R)を開きます。
  2. EA、銘柄、時間足、そして最低1年分の期間を選びます。
  3. 最も現実に近い結果を得るには「リアルティックに基づいた全ティック」を使います。
  4. 利益だけでなく、純利益、最大ドローダウン、取引回数を確認します。

良いバックテスト結果は約束ではありません。相場は変わります。過去データで素晴らしく見えたEAが、リアルでは損失を 出すこともあります。

チャートで動かす

  1. ナビゲーター(Navigator)からEAをチャートにドラッグします。
  2. 設定画面でアルゴリズム取引を許可(Allow Algo Trading)にチェックを入れ、入力値を設定します。
  3. ツールバーのAlgo Tradingボタンをオンにします。チャート上のアイコンがアクティブなら稼働中です。
  4. メッセージやエラーはエキスパート(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は一意。
  • リアル運用は最小ロットから始める。
リスク警告。レバレッジをかけたFX/CFD取引には、預け入れた資金をすべて失う高いリスクがあります。 個人口座の大半は損失を出しています。テストしていないEAをリアル口座で動かすことは絶対にやめてください。 リスク開示を読む。

よくある質問

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時間稼働させる方法。