MT5の決済用EAが手動ポジションに効かない|マジックナンバー0

MT5で決済用のEAを入れたのに、手動で建てたポジションが閉じない。原因の多くはマジックナンバーです。

手動で出した注文には、マジックナンバー「0」が付きます。決済用EAが0以外の番号だけを見ていれば、手動のポジションは対象外になります。逆に0を対象にすると、別の手動ポジションまで閉じることがあります。

(確認環境:MetaTrader 5 / Windows 11)

マジックナンバーとは

注文に付ける識別用の番号です。どのEAが出した注文なのかを区別するために使います。

注文の出し方 付く番号
手動(ワンクリック・新規注文画面など) 0
EAが発注 EAに設定された番号(通常は0以外)

EAは普通、自分の番号が付いたポジションだけを管理します。他のEAや手動のポジションに手を出さないためです。

症状別の原因

1. 手動ポジションに効かない

  • EAが0以外の番号だけを対象にしている — 手動のポジションは0なので対象外。設定でマジックナンバーを0にする、または手動を対象にする設定があるか確認する
  • EAを入れたチャートと銘柄が違う — 「このチャートの銘柄だけ」を対象にするEAは多い
  • ツールバーの「アルゴリズム取引」がオフ — EAは動いていない

2. 関係ないポジションまで閉じた

手動(0)を対象にすると、手動で建てたポジションは全部同じ番号になります。

  • 別の通貨ペアで手動で持っているポジション
  • スキャルピング用と長期用で分けているつもりのポジション

番号では区別できないので、銘柄で絞る設定を併用するのが基本です。同じ銘柄で手動ポジションを使い分けている場合、マジックナンバーでは分けられません。

3. 決済用のはずが、勝手にエントリーする

入れたEAが決済専用ではなく、エントリーの処理も持っている可能性があります。無料配布のEAや、テンプレートから作ったEAでよく起きます。

マジックナンバーを0にしても1にしても直りません。EAの説明で「決済のみ」と明記されているかを確認してください。

🔴 ネッティング口座では前提が崩れる

MT5の口座にはヘッジングとネッティングの2種類があります。ネッティング口座では、同じ銘柄の取引が1つのポジションにまとまります。

手動とEAが同じ銘柄を取引すると、それぞれを別のポジションとして持てません。「手動の分だけ閉じる」という前提そのものが成り立たないので、決済用EAを使う前に口座の種類を確認してください。

コードで対象を絞る場合

自分でEAを書く場合は、ポジションを1つずつ確認して、マジックナンバーと銘柄で絞ります。

if(PositionGetInteger(POSITION_MAGIC) != 0)   continue;   // 手動以外は飛ばす
if(PositionGetString(POSITION_SYMBOL) != _Symbol) continue; // 別の銘柄は飛ばす

ループの回し方や、閉じる時の注意点はMQL5でポジションを決済する方法にまとめています。

手動ポジション専用の決済EAを使う場合

当サイトが開発・販売している TimerClose_EA(¥1,500)は、手動エントリーしたポジションを設定した秒数で自動決済するEAです。上の2つの絞り込みが、初期設定で有効になっています。

設定 初期値
手動エントリーのみ対象とする(Magic=0) ON
このEAを入れたチャートの通貨ペアのみ対象とする ON

そのため、他のEAのポジションや、別の銘柄の手動ポジションには触れません。ただし同じ銘柄の手動ポジションは、すべて対象になります。エントリーの処理は持っていない、決済専用のEAです。

時間で決済する考え方はMT5で決済だけを自動化する方法で扱っています。

まとめ

  1. 手動の注文はマジックナンバー0
  2. 効かない時は、EAの対象番号・銘柄・アルゴリズム取引の3点を見る
  3. 0を対象にすると手動ポジションは全部同じ扱い。銘柄で絞る設定を併用する
  4. 勝手にエントリーするなら、決済専用ではないEAを入れている
  5. 🔴 ネッティング口座では手動とEAを分けて持てない

EAそのものの入れ方と、1つのチャートに入れられるEAの数についてはMT5にEAを入れる方法|1つのチャートに1つまでを参照してください。

本記事はMT5の仕様とツールの設定を説明したものであり、特定の売買や利益を保証するものではありません。投資判断はご自身の責任で行ってください。FXは元本を上回る損失が生じる可能性があります。