2つのゴールドEAがなぜ同じ注文を管理するのか?MT4マジックナンバーを確認する
模擬口座の事例を用いて、EAが通貨ペアとマジックナンバーで注文を絞り込む方法、および番号変更後に残存ポジションが管理から外れるのを避ける方法を説明します。
著者:トーマス|MT4実務|2026年11月10日
概要:同じMT4口座に2つのゴールドEAを稼働させる場合、それらが同じ注文識別条件を使用していると、同じ注文のストップロスを同時に変更する可能性があります。調査時はまず注文上の通貨ペアとマジックナンバーを確認し、次にコードが実際にどの条件で絞り込んでいるかを確認します。以下の番号と注文はすべて教育用の仮定です。
マジックナンバーはどこに記録されるか
MQL4のOrderSendはmagicパラメータの受け渡しに対応しています。注文が正常に選択された後、OrderMagicNumberでその注文の識別番号を読み取れます。これはプログラムに分類の根拠を提供できます。具体的にどの注文が変更または決済されるかは、依然としてEA自身の絞り込みと実行ロジックによって決まります。プログラムが口座注文を走査する際に通貨ペアのみを確認する場合、2つのゴールドEAが異なるマジックナンバーを設定していても、同じ注文群を処理する可能性があります。

図では戦略A、Bがそれぞれ101と202を使用すると仮定しています。Aは取引プールの注文を1件ずつ選択し、まず実際の通貨ペアを照合し、次に識別番号を照合します。両方が一致した場合にのみ、後続ロジックへ注文種別と許可される動作の確認を渡します。注文の選択に失敗した場合はスキップしてエラーを記録すべきです。変更を伴う前には、目標注文を再度選択し、以前にプログラムへコピーした古いデータを使用するのを避けるのが望ましいです。
模擬口座で3段階に分けて検証する
第一段階では、2つのEAのバージョン、入力パラメータ、チャート周期、ブローカーの通貨ペア正式名称を記録します。口座によってゴールドの名称にサフィックスが付く場合があります。同じ通貨ペアに複数のインスタンスを配置する場合も、それらが独立して管理するのか、設計上注文を共有するのかを明確にすべきです。
第二段階では、模擬口座で各EAにそれぞれ識別可能なテスト注文を1件生成させ、同時に除外されるべきテスト注文を1件用意します。ログには少なくとも注文番号、通貨ペア、マジックナンバー、プログラムが実行しようとする動作を記録します。次に制御可能な管理動作を1回トリガーし、例えば戦略A自身のテスト注文の変更を試み、戦略Bの注文が元の値を維持しているか確認します。未約定注文と約定済みポジションは別々に検証するのが望ましいです。取引プールには両方の種類の注文が同時に含まれる可能性があり、実際の処理ルールは通常異なるためです。
第三段階では、ターミナルを再起動するかEAを再読み込みした後にもう一度確認します。プログラムが今回の実行期間中に成立した注文リストのみを記憶している場合、再起動後の動作が変わる可能性があります。既定の条件で注文を再識別するか、および一致する注文がない場合に予期しない動作が発生しないかを確認できます。番号は補助的な分離にすぎず、口座範囲の総リスクチェックが意図的にすべてのポジションを読み取る場合は、実際に注文を変更する権限とは別に記録すべきです。
番号を変更する前に旧注文を処理する
戦略Aが以前101でポジションを建て、現在303に変更したと仮定します。入力パラメータの変更は通常、後続コードが使用する値にのみ影響し、旧注文の識別番号がチャート設定に伴って自動的に移行することはありません。管理条件が303のみに一致する場合、元の101の注文はスキップされる可能性があります。変更前には旧注文と予定される処理方法を列挙し、模擬環境で再起動と引き継ぎを検証すべきです。バージョンが確認できない、またはログで絞り込みロジックを説明できないEAに遭遇した場合は、まず自動管理の変更を一時停止し、既存ポジションの退出計画を確認してください。模擬で通過したとしても、テストしたシナリオを説明できるにすぎず、実際の価格変動、サーバーによる注文拒否、スリッページは別途評価する必要があります。