
MT4・MT5 実行中のログメッセージ
EAが動かない(自動売買されない)
- 意味
- EAをチャートに入れても注文しない
「EAが動かない(自動売買されない)」とは
EAをチャートに入れたのに注文が出ない、チャート右上の顔マークが悲しい顔(MT4)になっている、という状態の原因と確認手順です。多くは自動売買の許可設定か、EA自体のエラーで止まっているかのどちらかです。
ログの表示例
MT4: OrderSend error 4109 MT5: CTrade::OrderSend: market buy 0.10 USDJPY [auto trading disabled by client]
「エキスパート」タブまたは「操作履歴」タブに表示されます。数値や表記の細部は、ビルド・ブローカー・EAの作りによって異なります。
「EAが動かない(自動売買されない)」の主な原因
- MT4 の「自動売買」/ MT5 の「アルゴリズム取引」ボタンがオフ
- EAのプロパティで「自動売買を許可する」(MT5 は「アルゴリズム取引を許可」)にチェックがない
- EAが OnInit() で INIT_FAILED を返して停止している(パラメータ不正・認証失敗など)
- EAのエントリー条件がまだ成立していないだけ
- 「エキスパート」タブにエラーが出て、EAが停止している(array out of range、zero divide など)
- 週末・取引時間外・スプレッドが広いときに注文しない設定になっている
「EAが動かない(自動売買されない)」の対処法
- ツールバーの「自動売買」(MT5 は「アルゴリズム取引」)ボタンを緑にする
- チャート右上のEA名の横が笑顔(MT4)/青い帽子のアイコン(MT5)になっているか確認する
- 「エキスパート」タブと「操作履歴」タブを開き、エラー番号をこの辞典で調べる
- EAのパラメータ(ロット数・マジックナンバー・時間帯設定など)を見直す
コード例(MQL5)
// アルゴリズム取引が許可されているか確認する(10027・4752 対策)(MQL5)
bool CanTrade()
{
if(!TerminalInfoInteger(TERMINAL_CONNECTED)) { Print("サーバーに接続していません"); return false; }
if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)) { Print("ツールバーの「アルゴリズム取引」がオフです"); return false; }
if(!MQLInfoInteger(MQL_TRADE_ALLOWED)) { Print("EAのプロパティで「アルゴリズム取引を許可」がオフです"); return false; }
if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT)) { Print("この口座ではEAの取引がサーバーで禁止されています"); return false; }
return true;
}MetaEditor(MT5)でコンパイルできることを確認済みです。自分のEAに組み込むときは、変数名や設定値を合わせてください。












