自動売買が無効(AutoTrading disabled)でEAが動かない — MT5の10027/10026を完全解決
目次
- 10027 と 10026 の違い(クライアント無効 vs サーバー無効)
- ① TRADE_RETCODE_CLIENT_DISABLES_AT = 10027(あなたの端末側でOFF)
- ② TRADE_RETCODE_SERVER_DISABLES_AT = 10026(ブローカー側でOFF)
- MT5の売買許可は4層構造 — 全部ONで初めて動く
- 第1層: ツールバーの「アルゴ取引」ボタン(端末全体)
- 第2層: オプション設定の「アルゴリズム取引を許可」
- 第3層: チャートごとのEA設定「アルゴ取引を許可」
- 第4層: チャート右上のEAアイコンの状態
- 30秒トリアージ(この順番で見る)
- 見落としがちな原因5選
- ① インベスターパスワードでログインしている(閲覧専用)
- ② ブローカーがその口座タイプでEAを禁止している(10026)
- ③ 端末の再起動・アップデート・口座切替でボタンが戻る
- ④ VPSでの自動起動時に自動売買がOFFのまま
- ⑤ デモ口座と本番口座の取り違え
- MQL5でこの状態を検出する(EA開発者向け)
- 運用のポイント
- 優先度チェックリスト
- まとめ
- FAQ
- Q: アルゴ取引ボタンをONにしたのにEAがエントリーしません。
- Q: 10027 と 10026 はどう違いますか?
- Q: 昨日まで動いていたのに、勝手に自動売買がOFFになっていました。
- Q: 手動注文はできるのにEAだけ発注できません。
「自動売買が無効」でEAが動かない(MT5)
EAをチャートにセットしたのに何時間待っても1回もエントリーしない——このとき真っ先に疑うべきなのが「自動売買(アルゴ取引)の無効化」です。エラーらしいエラーが出ずに沈黙するのが特徴で、EAが動かない原因としては圧倒的な第1位。しかもMT5の売買許可は4層構造になっており、どれか1つでもOFFだと発注は通りません。
この記事では、MT5でEAを使う人と、MQL5でEAを書く人の両方に向けて、関連する2つのリターンコード 10027(TRADE_RETCODE_CLIENT_DISABLES_AT) と 10026(TRADE_RETCODE_SERVER_DISABLES_AT) の意味、4層の許可構造、見落としがちな原因、コード側での検出方法までをまとめます。エラーコード全般の一覧は MQL5 / MT5 エラーコード対処法の総合ガイド を参照してください。
この記事は2026年7月時点のMT5(build 4xxx系)を前提にしています。画面名・アイコンの見た目はビルドにより多少異なる場合があります。
10027 と 10026 の違い(クライアント無効 vs サーバー無効)
「自動売買が無効」を表すリターンコードは2つあり、どちら側が止めているかが違います。ここを見分けるだけで対処が半分決まります。
① TRADE_RETCODE_CLIENT_DISABLES_AT = 10027(あなたの端末側でOFF)
クライアント(=あなたのMT5端末)側の設定で自動売買が無効になっている状態です。ツールバーの「アルゴ取引」ボタンがOFF、オプション設定の許可が外れている、などが原因。この場合、注文リクエストはブローカーのサーバーに送られる前に端末内で拒否されます。
意味: クライアントターミナルで自動売買が無効(AutoTrading disabled by client)
定数: TRADE_RETCODE_CLIENT_DISABLES_AT
値 : 10027
Experts(エキスパート)タブには次のようなログが出ます。
2026.07.07 09:15:32.441 EA_NAME (XAUUSD,H1) OrderSend failed 10027
2026.07.07 09:15:32.441 EA_NAME (XAUUSD,H1) CTrade::OrderSend: ... [autotrading disabled by client]
対処は自分のMT5の設定を直すだけ。次章の4層をすべてONにすれば解決します。
② TRADE_RETCODE_SERVER_DISABLES_AT = 10026(ブローカー側でOFF)
サーバー(=ブローカー)側がこの口座の自動売買を禁止している状態です。端末の設定をいくら見直しても直りません。一部のボーナス口座・セント口座・コンテスト口座などで「EA利用不可」の規約になっているケース、規約違反等でブローカーが口座単位でアルゴ取引を止めているケースが該当します。
意味: サーバー側で自動売買が無効(AutoTrading disabled by server)
定数: TRADE_RETCODE_SERVER_DISABLES_AT
値 : 10026
対処はブローカーへの確認一択。口座タイプがEA対応か(対応口座への変更・新規開設が必要か)をサポートに問い合わせてください。
| コード | 定数 | 止めている側 | 対処 |
|---|---|---|---|
| 10027 | TRADE_RETCODE_CLIENT_DISABLES_AT | 自分のMT5端末 | 端末の4層許可をON(本記事で解決) |
| 10026 | TRADE_RETCODE_SERVER_DISABLES_AT | ブローカーのサーバー | ブローカーに口座のEA可否を確認 |
MT5の売買許可は4層構造 — 全部ONで初めて動く
MT5では、EAが発注できるまでに4つの独立したスイッチがあります。1つでもOFFなら発注は通りません。「昨日まで動いていたのに」というときも、この4層のどれかが落ちています。
第1層: ツールバーの「アルゴ取引」ボタン(端末全体)
MT5上部ツールバーの 「アルゴ取引」ボタン。ONだと緑の再生マーク(▶)、OFFだと赤い停止マークで表示されます。ショートカットは Ctrl+E(気づかずに押してOFFにしてしまう事故が意外と多い)。ここがOFFだと全チャート・全EAの発注が一括で止まり、10027になります。
第2層: オプション設定の「アルゴリズム取引を許可」
ツール → オプション → エキスパートアドバイザ タブの「アルゴリズム取引を許可する」チェック。第1層のボタンの土台となる設定で、ここが外れているとボタンをONにできない/しても発注されません。
同じタブには「〜のときアルゴリズム取引を無効にする」系のチェック(口座の切り替え時/プロファイルの切り替え時/チャートの銘柄・期間変更時)もあります。ここにチェックが入っていると、口座を切り替えた瞬間などに第1層のボタンが勝手にOFFへ戻ります。「たまに勝手に止まる」の正体は大抵これです。
第3層: チャートごとのEA設定「アルゴ取引を許可」
EAをチャートに挿入するときのダイアログ(またはチャート上のEA名を右クリック→設定)の 「全般(Common)」タブ → 「アルゴ取引を許可」 チェック。これはそのチャートのそのEAだけに効くスイッチです。ここが外れていると、他のEAは動くのにこのEAだけ動かない、という状態になります(この場合 MQLInfoInteger(MQL_TRADE_ALLOWED) が false になります)。
第4層: チャート右上のEAアイコンの状態
EAが正しくロードされると、**チャート右上にEA名と小さなアイコン(帽子マーク)**が表示されます。
- カラー(青系)の帽子 = EAは稼働中で売買可能
- グレーの帽子/取り消し表示 = EAはロードされているが売買不可(上の1〜3層のどれかがOFF)
- EA名自体が表示されていない = そもそもEAがチャートに載っていない(挿入失敗・削除済み)
アイコンは「結果の表示」であって直接操作するスイッチではありませんが、一目で状態を確認できる最速のチェックポイントです。ビルドによって表現は多少異なります。
| 層 | 場所 | 影響範囲 | MQL5での検出 |
|---|---|---|---|
| ① アルゴ取引ボタン | ツールバー(Ctrl+E) | 端末全体 | TERMINAL_TRADE_ALLOWED |
| ② オプションの許可 | ツール→オプション→エキスパートアドバイザ | 端末全体 | TERMINAL_TRADE_ALLOWED |
| ③ チャート毎の許可 | EA設定→全般タブ | そのチャートのEAのみ | MQL_TRADE_ALLOWED |
| ④ EAアイコン | チャート右上 | 状態表示 | —(①〜③の結果) |
30秒トリアージ(この順番で見る)
- ツールバーの「アルゴ取引」ボタンは緑(▶)か? → 赤ならクリックしてON(Ctrl+E)
- チャート右上にEA名+カラーの帽子アイコンが出ているか? → グレーなら次へ、名前ごと無いならEAを挿入し直す
- EA設定 → 全般タブ →「アルゴ取引を許可」にチェックが入っているか? → 外れていたらチェックしてOK
- ツール → オプション → エキスパートアドバイザ →「アルゴリズム取引を許可する」は有効か? → 「口座切替時に無効にする」系のチェックも確認
- 口座情報を確認 — インベスター(閲覧専用)パスワードでログインしていないか? → 取引パスワードでログインし直す
- 1〜5が全部OKなのに10026が出る → ブローカーに「この口座でEAは使えるか」を確認
ほとんどのケースは手順1〜3で解決します。
見落としがちな原因5選
① インベスターパスワードでログインしている(閲覧専用)
MT5の口座には取引用パスワードとインベスターパスワード(閲覧専用)の2種類があります。インベスターパスワードでログインすると手動・自動を問わず一切の発注が不可能で、アルゴ取引ボタンを押しても売買できません。他人に口座を見せた後や、パスワードマネージャーが古い方を記憶していた場合に起きがちです。MQL5からは AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) が false になるので判別できます。取引パスワードで再ログインしてください。
② ブローカーがその口座タイプでEAを禁止している(10026)
一部のセント口座・ボーナス付き口座・コンテスト口座は規約でEA利用不可になっていることがあります。この場合サーバー側が拒否するため 10026 が返り、端末側では直せません。口座開設時の規約を確認し、必要ならEA対応の口座タイプへ変更します。
③ 端末の再起動・アップデート・口座切替でボタンが戻る
MT5のアップデート適用後や、オプションの「口座の切り替え時にアルゴリズム取引を無効にする」等が有効な環境では、アルゴ取引ボタンがOFFに戻ることがあります。「先週まで動いていたのに、いつの間にか止まっていた」パターンの典型です。再起動・切替のたびにボタンの色を確認する習慣をつけるか、オプションの自動無効化チェックを外してください。
④ VPSでの自動起動時に自動売買がOFFのまま
VPS運用では「Windows再起動 → MT5自動起動」まで組んでいても、起動したMT5のアルゴ取引がOFFのままというケースがあります。MT5は起動時に /config で設定ファイル(iniファイル)を渡す仕組みがあり、[Experts] セクションで自動売買の許可(AllowLiveTrading)やEAの自動アタッチを指定できます。自動起動を組む場合はこの起動時設定まで含めて構成し、再起動後に必ずチャート右上のアイコンがカラーで表示されているかをリモートで確認してください。VPSは「無人で動かすため」の環境なので、この確認を怠ると数日〜数週間の機会損失になります。
⑤ デモ口座と本番口座の取り違え
デモではEAが動いているのに本番で動かない(またはその逆)という場合、MT5が今どちらの口座にログインしているかを確認してください。オプションの「口座切替時にアルゴ取引を無効化」が効いてボタンが落ちているケース、本番口座側だけインベスターパスワードでログインしていたケースが典型です。ナビゲーターの口座番号と、ターミナル右下の接続表示を見れば10秒で確認できます。
MQL5でこの状態を検出する(EA開発者向け)
「静かに止まる」のが10027/10026の嫌なところです。EA側でどの層がブロックしているかをログとアラートで自己申告させると、サポートコストが激減します。使う関数は次の4つです。
| 関数 | 何を見ているか |
|---|---|
TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) | 端末全体のアルゴ取引許可(ボタン+オプション) |
MQLInfoInteger(MQL_TRADE_ALLOWED) | このEA(このチャート)の売買許可 |
AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) | 口座として売買可能か(インベスターログインで false) |
AccountInfoInteger(ACCOUNT_TRADE_EXPERT) | 口座としてEA売買が許可されているか(サーバー側設定) |
// どの層が自動売買をブロックしているかを特定して出力する
bool CheckAlgoTradingAllowed()
{
bool ok = true;
if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
{
Print("BLOCKED [Terminal]: AutoTrading button is OFF (toolbar / Ctrl+E) or disabled in Options");
ok = false;
}
if(!MQLInfoInteger(MQL_TRADE_ALLOWED))
{
Print("BLOCKED [Chart/EA]: 'Allow Algo Trading' is unchecked in this EA's Common tab");
ok = false;
}
if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
{
Print("BLOCKED [Account]: trading not allowed - investor (read-only) login?");
ok = false;
}
if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
{
Print("BLOCKED [Server]: broker disabled EA trading for this account (retcode 10026)");
ok = false;
}
return ok;
}
運用のポイント
OnInit で1回チェックして警告し、OnTick では止めないのが定石です。
int OnInit()
{
if(!CheckAlgoTradingAllowed())
Alert("EA loaded, but algo trading is blocked. See Experts log for the reason.");
return INIT_SUCCEEDED; // INIT_FAILED にしない
}
ここで INIT_FAILED にしてしまうと、ユーザーがボタンをONにした後にEAを挿入し直す手間が発生します。ロード自体は成功させておけば、ユーザーがアルゴ取引ボタンをONにした瞬間から売買が始まります。OnTick側では、状態が変わったときだけ1回ログを出す(毎ティックPrintしない)実装にすると、Expertsタブが流れずに済みます。
また、OrderSend() の retcode で 10027 / 10026 を受けたときに定数名入りでログを出しておくと、事後調査が容易になります。
if(res.retcode == TRADE_RETCODE_CLIENT_DISABLES_AT) // 10027
Print("Order rejected: AutoTrading disabled on YOUR terminal. Turn ON the Algo Trading button.");
else if(res.retcode == TRADE_RETCODE_SERVER_DISABLES_AT) // 10026
Print("Order rejected: broker disabled autotrading for this account. Contact your broker.");
FXEA365で配布しているEAは、チャート上のダッシュボードに自動売買のON/OFF状態を常時表示する仕様のため、この「静かに止まっている」状態に画面を見た瞬間に気づけます。
優先度チェックリスト
| 優先 | 確認 | 対処 |
|---|---|---|
| 🚨 まず | アルゴ取引ボタンが赤(OFF) | クリックでON(Ctrl+E) |
| 🚨 まず | チャート右上のEAアイコンがグレー | 4層を順に確認 |
| ⚠️ 次 | EA設定・全般タブの「アルゴ取引を許可」 | チェックを入れて再適用 |
| ⚠️ 次 | オプションの許可+自動無効化チェック | 許可ON・自動無効化を見直し |
| ✅ 確認 | インベスターパスワードでログイン | 取引パスワードで再ログイン |
| ✅ 確認 | 10026(サーバー側拒否) | ブローカーに口座のEA可否を確認 |
| 🛠 開発 | EAが沈黙する | 上記の層別チェックコードを実装 |
まとめ
- 「EAが動かない」原因の第1位は自動売買(アルゴ取引)の無効化。エラーで騒がず沈黙するのが特徴。
- 10027 = 自分の端末側でOFF(自分で直せる)、10026 = ブローカー側でOFF(サポートに確認)。
- MT5の売買許可は①ツールバーのボタン ②オプション ③チャート毎のEA設定 ④アイコン表示の4層。全部ONで初めて発注が通る。
- インベスターパスワード・口座切替での自動OFF・VPS再起動後のOFF戻りが三大見落とし。
- EA開発者は
TERMINAL_TRADE_ALLOWED/MQL_TRADE_ALLOWED/ACCOUNT_TRADE_ALLOWED/ACCOUNT_TRADE_EXPERTでどの層が止めているかを自己申告させる。
エラーコード全般は MQL5 / MT5 エラーコード対処法の総合ガイド を、状態を常時表示するダッシュボード搭載の無料EAは EA一覧 を参照してください。
FAQ
Q: アルゴ取引ボタンをONにしたのにEAがエントリーしません。
ボタン(第1層)以外の層を確認してください。特に多いのがチャート毎のEA設定(全般タブ)の「アルゴ取引を許可」の外れです。チャート右上のEAアイコンがカラー表示になっているかで最終確認できます。アイコンがカラーなのにエントリーしない場合は、自動売買の問題ではなくEAのエントリー条件が満たされていないだけの可能性が高いです(Expertsタブのログを確認)。
Q: 10027 と 10026 はどう違いますか?
10027(TRADE_RETCODE_CLIENT_DISABLES_AT)はあなたのMT5端末が自動売買を無効にしている状態で、端末の設定変更で直せます。10026(TRADE_RETCODE_SERVER_DISABLES_AT)はブローカーのサーバーが口座単位で自動売買を禁止している状態で、端末側では直せません。ブローカーに口座タイプのEA可否を確認してください。
Q: 昨日まで動いていたのに、勝手に自動売買がOFFになっていました。
オプション(ツール → オプション → エキスパートアドバイザ)の「口座の切り替え時/プロファイルの切り替え時にアルゴリズム取引を無効にする」系のチェックが原因の可能性が高いです。また、MT5のアップデート後にボタンがOFF状態で起動することもあります。VPS運用なら再起動後の確認を必ずルーチンに入れてください。
Q: 手動注文はできるのにEAだけ発注できません。
手動が通るなら口座自体は生きています。チャート毎のEA設定(全般タブ)かツールバーのアルゴ取引ボタンがOFFです。手動売買は「アルゴ取引」の許可と無関係に通るため、この症状は自動売買レイヤーの無効化を強く示唆します。それでも直らず10026が出る場合は、ブローカーが口座のEA利用を制限しています。
関連記事
2026-07-07
Invalid stops(10016/130)を完全解決 — MT5/MT4でSL・TPが設定できない原因と直し方
2026-07-07
Unsupported filling mode(MT5エラー10030)を完全解決 — 別ブローカーに移した日にEAが発注できなくなる理由と直し方
2026-07-07
Market closed(10018 / エラー132)を完全解決 — MT5「市場が閉鎖」でEAが発注できない原因と直し方
2026-07-07
Off quotes / リクオート(MT5/MQL5)を完全解決 — 10021・10004 で注文が拒否される原因と直し方
📧 5日間メール講座(無料)
FX自動売買の本質、バックテストの正しい見方、ブローカー選びのコツを毎日1通お届けします。
※ プライバシーは厳守。配信解除はいつでも可能です。