MagicNumberの設計|複数EAを同じ口座で回すための運用
目次
結論:MagicNumberは「EAの名札」。1口座の中で重複させない
1つの口座で複数のEAを動かすなら、最初に決めるべきことはMagicNumberの割り当てです。MagicNumberは、注文やポジションに付ける「どのEAが出したか」を示す番号です。多くのEAはこの番号を見て「自分のポジションはどれか」を判断しています。
番号が重複すると、あるEAが別のEAのポジションを自分のものと勘違いし、決済やストップの変更を勝手に行うことがあります。エラーは出ず、表示上はどちらのEAも普通に動いているように見えるので、気付きにくい事故です。
おすすめブローカー比較 →
🎁 無料EAをダウンロード📧 無料メール講座(全8通)+登録者限定 MT5 インジケーター13本パック
※ プライバシーは厳守。配信解除はいつでも可能です。
仕組み:EAはどうやって「自分のポジション」を見分けるか
MT5では、EAが発注するときに数値のMagicNumberを付けられます。この値はポジション(POSITION_MAGIC)と取引履歴(DEAL_MAGIC)に残ります。手動で発注した場合は通常0になります。
一般的なEAは、ポジションを数えたり管理したりする際に次のように絞り込みます。
- 銘柄が自分のチャートと同じか
- MagicNumberが自分の設定値と同じか
この2つが一致したポジションだけを「自分の持ち分」として扱います。ここで大事なのは、MT5そのものはMagicNumberの重複を止めないことです。番号は単なる約束事で、守るかどうかは運用する側とEAの作りに任されています。
重複したときに起きること
同じ銘柄・同じMagicNumberで2つのEAが動くと、例えば次のような事態が起き得ます。
- エントリーの抑制:「最大ポジション数1」のEAが、もう一方のEAのポジションを自分のものと数えて新規エントリーを見送る
- 他人のポジションの決済:決済シグナルが出たとき、もう一方のEAのポジションまで一緒に閉じてしまう
- ストップの上書き:トレーリングストップが、もう一方のEAのポジションのSLまで動かしてしまう
- ロット計算の狂い:保有中のポジション数を見てロットを決めるEAでは、想定より大きな建玉になる
どれも、バックテストでは再現しません。テスターではEAを1本ずつ動かすからです。検証結果と実際の運用がずれる原因の1つが、ここにあります。
部分決済の追跡
部分決済を使うEAでは、記録のたどり方にも注意が要ります。ヘッジング口座では、部分決済してもポジションの識別番号(POSITION_IDENTIFIER)は変わらず、履歴の決済取引にもDEAL_POSITION_IDとして残ります。EAごとの成績をあとから集計するなら、MagicNumberで絞り込んだうえで、このポジションIDでまとめるのが確実です。
ただし、決済取引に記録されるMagicNumberは、決済の注文を出した側の値になる場合があります。EAが建てたポジションを途中で手動で一部決済すると、その取引だけ番号が0になり、MagicNumberだけで集計すると数字が合わなくなることがあります。コメント欄も業者やサーバー側で書き換わることがあるため、識別の手がかりとしては頼りません。
設定前のチェックリスト
| 確認項目 | 確認方法 | 怠った場合のリスク |
|---|---|---|
| 各EAのMagicNumberが重複していないか | 各EAのパラメータ画面で一覧にして控える | 決済・SL変更の干渉 |
| 同じEAを複数チャートで使う場合に番号を分けたか | 銘柄違い・時間足違いでも別番号にする | 銘柄を見ないEAでの取り違え |
| 口座がヘッジング型か | 口座情報で確認する | ネッティング口座では同じ銘柄のポジションが1つに合算され、番号では分けられない |
| 稼働中に番号を変えていないか | 変える前にポジションがないことを確かめる | 既存ポジションが管理されないまま残る |
| 手動取引と混ぜていないか | 手動取引は別口座にする | 集計のずれ、手動決済による記録の欠け |
番号は「EAごとに桁を分ける」ような単純な規則にしておくと、あとで履歴を見たときに迷いません。設定画面の場所はEA設定方法にまとめています。
限界と注意
MagicNumberを分けても防げないことがあります。正直に書いておきます。
- MagicNumberを見ないEAには効かない:銘柄だけで絞り込むEA、口座のすべてのポジションを管理するEAは、番号を分けても干渉します。他社のEAを混ぜる場合、その作りまでは私たちには分かりません。
- 初期値の衝突:多くのEAは初期値のまま配布されています。開発者が違うEAどうしで初期値がたまたま同じになることは十分あり得ます。必ず自分で値を確認してください。
- 複数銘柄を扱うEA:ATLASやTRINITYのように1つのEAで複数の銘柄を扱う場合、他のEAと同じ銘柄を取り合う形になります。番号を分けても証拠金は共有するので、同時にドローダウンが重なる可能性は残ります。
- 資金管理は分離されない:番号で分けられるのはポジションの管理だけです。証拠金維持率やロスカットは口座全体で決まります。1本のEAが大きく負ければ、他のEAも巻き込まれます。
干渉を確実に避けたいなら、EAごとに口座を分けるのが最も単純です。番号の設計は、同じ口座で回すと決めたときの最低限の備えと考えてください。
まとめ
- MagicNumberは注文・ポジション・履歴に残るEAの識別番号で、MT5は重複を止めない
- 重複すると、エントリーの抑制、他のEAのポジションの決済、SLの上書き、ロット計算の狂いが起き得る。バックテストでは再現しない
- 部分決済の追跡は、MagicNumberとポジションIDを組み合わせて行う。手動で決済すると記録がずれることがある
- ネッティング口座では番号でポジションを分けられない。複数EAならヘッジング口座を使う
- 番号を分けても証拠金は共有になる。干渉を確実に避けるなら口座を分ける
ほかの運用ノウハウはEA・MT5ノウハウにまとめています。
関連記事
📧 無料メール講座(全8通)+登録者限定 MT5 インジケーター13本パック
※ プライバシーは厳守。配信解除はいつでも可能です。