バックテスト基礎

マジックナンバーの役割と、同一口座で複数EAを稼働させる時の推奨知識

MT5(およびMT4)における「マジックナンバー(Magic Number)」は、EAが「これは自分が発注したポジションだ」と識別するためにつける固有の背番号(識別ID)です。 1つの口座で複数のEAを同時に稼働させる場合、各EAに全く異なるマジックナンバーを設定しないと、EA同士が「他人のポジションを自分のものと勘違いして勝手に決済する(競合する)」という

Read this for この数字を、運用できるかの判断材料にする。

PF、勝率、最大DD、取引回数は単独では判断しません。期間、条件、崩れ方とセットで読みます。

Category バックテスト基礎

backtest

マジックナンバーの役割と、同一口座で複数EAを稼働させる時の推奨知識

結論

MT5(およびMT4)における「マジックナンバー(Magic Number)」は、**EAが「これは自分が発注したポジションだ」と識別するためにつける固有の背番号(識別ID)**です。 1つの口座で複数のEAを同時に稼働させる場合、各EAに全く異なるマジックナンバーを設定しないと、EA同士が「他人のポジションを自分のものと勘違いして勝手に決済する(競合する)」という致命的なバグを引き起こし、口座資金を無意味な取引手数料で溶かし尽くすことになります。

なぜEA運用で重要か

システムトレードの初心者が陥る最も多いトラブルの一つが、このマジックナンバーの重複です。 例えば、市販のEAを2つ買ってきて、何も設定を変えずに同じ口座のEURUSDチャートにそれぞれ適用したとします。もし両方のEAのデフォルトマジックナンバーが「0」や「12345」で偶然同じだった場合、EA(A)が買ったポジションを、EA(B)が「自分の決済条件を満たした」と判定して数秒後に勝手に決済してしまう……といった悲劇が起こります。

仕組み・条件

MT5のプログラミング(MQL5)におけるマジックナンバーの扱い:

バックテストやリアル運用で壊れるポイント

どう確認するか

新しいEAを導入する際は、必ずパラメータ設定画面に「MagicNumber」や「Magic」という項目があるか確認してください。 もし複数のEAを稼働させるなら、運用者自身がExcel等で「EA名と割り当てたマジックナンバーの対応表」を管理するクセをつけるべきです。設定する数値は何でも構いません(例:20230101 のような日付や、好きな数字の羅列など。ただし通常は整数型 int の範囲内)。

自分の検証スタンス

私は自作EAを設計する際、マジックナンバーの入力パラメータを設けるのは当然として、EAの起動時(OnInit関数)に「現在この口座内で同じマジックナンバーで稼働している別のEAが存在しないか」をチェックするセーフティガードのコードを組み込むことがあります。 インフラ面での「人間(自分)のヒューマンエラー」をシステム側で事前に防ぐ設計思想は、ポートフォリオ運用において不可欠です。

関連して読む

Backtest reading この数字を、運用できるかの判断材料にする。

PF、勝率、最大DD、取引回数は単独では判断しません。期間、条件、崩れ方とセットで読みます。

参照した公式情報

免責

本記事は個人の検証メモであり、投資助言ではありません。バックテスト結果は将来の成績を保証しません。海外FXや自動売買には、法規制・レバレッジ・スプレッド拡大・約定遅延・スリッページなどのリスクがあります。条件は変わるため、最新情報は各公式ページで確認してください。