MT5でFIFOの決済拒否が返ったら、実際の口座が許す建玉の順序を確認します。FIFO(first in, first out:先入れ先出し)はサーバーの制約である場合があり、日誌で選んだ損益配分方式とは別です。同じ依頼を反復したり、確認なしに古い建玉へ決済対象を置き換えたりしません。応答、口座方式、同一銘柄の現在建玉を保存します。全MT5利用者・全法域の共通ルールではありません。

口座のFIFOと、分析用のFIFO

MQL5のACCOUNT_FIFO_CLOSEがtrueなら、銘柄ごとの建玉を最も古いものから建てた順に決済します。ヘッジ方式以外ではこのプロパティはfalseです。ヘッジ方式という名称だけで自由な両建てや決済を保証するわけでもありません。ACCOUNT_HEDGE_ALLOWEDは反対建玉の許可であり、別の確認項目です。

表示言語を日本語にしても口座の設定・契約・管轄は変わりません。担当法人と規約で実際の条件を確かめます。一方、共有されたnetting建玉の縮小を古いエントリーへ配分する表計算上のFIFOは分析規約です。複数戦略の損益配分を正しく作っても、サーバーが受ける操作を変えません。本記事は実建玉の技術的な決済順を扱い、税務の取得価額配分を定めません。

拒否のあとに保存する情報

完全な応答を読みます。10045(TRADE_RETCODE_FIFO_CLOSE)は口座FIFO設定に関連する拒否です。一般的な「決済失敗」だけでは価格、数量、接続などと区別できません。10046の反対建玉禁止や10044のclose-only制約とも別です。

サーバー、口座の非個人識別用別名、正確な銘柄、チケット、建てた時刻、現在数量を記録。同一銘柄だけを時刻で並べ、利益順や画面の行順を優先順にしません。表示精度の範囲で同時刻ならIDを保存して業者へ照会し、チケット番号の大小で決まると勝手に補いません。パスワードや個人情報は診断記録へ入れません。

3建玉の全決済モデル

以下は独自の架空例です。ヘッジ口座でFIFO=true、同じEUR/USDの買い3建玉、1 lot=100,000 EUR、Bidは1.1030に固定。費用、価格変化、ほかの操作、滑りなし。全決済依頼の順を扱い、すべての部分決済ルールを定めるものではありません。

建玉時刻数量買い価格Bid1.1030の損益
P108:000.10 lot1.1000+30 USD
P208:050.20 lot1.1010+40 USD
P308:100.10 lot1.1020+10 USD

P1より先にP3を閉じようとするとこの順序に反します。P1の全決済が確認されたあとも次はP2で、P3ではありません。最大利益P2や最小数量を選ぶ規則とは違います。約定後に残る実建玉を読み直して先頭を確認します。

利益順ではなく建てた順

横にスクロールすると図全体を確認できます。

利益順ではなく、建てた順架空FIFOモデル。P1は08:00、P2は08:05、P3は08:10。前の全決済を確認してからP1、P2、P3の順で進む。P1 · 08:000.10 lot先頭:利益30 USDP2 · 08:050.20 lot次:利益40 USDP3 · 08:100.10 lot最後:利益10 USDこのモデルではP1より先のP3決済は拒否独自の架空モデル。実口座の取引ではない。
架空FIFOモデル。P1は08:00、P2は08:05、P3は08:10。前の全決済を確認してからP1、P2、P3の順で進む。

決済前の合計利益は80 USD。価格固定ならP1の全決済後は実現30 USD、P2・P3の含み益50 USD。P2も閉じると実現70 USD、含み益10 USDです。合計80 USDの配分が変わったのであり、追加の利益は生まれません。実際には費用と価格変化で合計も変わり得ます。

古い建玉へ自動で置き換えない理由

閉じたい建玉が別戦略・別EAの計画に属することがあります。別チケットを閉じれば口座制約に適合しても計画を変えます。銘柄、方向、数量、総エクスポージャーへの効果を確認。規約と計画が衝突するなら、代わりの取引を即送信するより作業設計を見直す場合があります。

反対注文を安全な迂回手段とみなしません。ヘッジ口座では新しい建玉になり得るうえ、反対建玉自体が禁止される場合もあります。部分決済後は残数量と順序を再取得します。依頼送信は先頭の消滅を証明しません。注文エラーと状態の照合へつなげます。

送信前の待ち行列は予定にすぎず、その間に別の受理済み操作が口座を変え得ます。失敗したら応答を保存し、古い一覧のチケットを前提に次へ進みません。人、EA、サーバー処理のどれが起点かも記録。同一銘柄だけでは起点は分からず、不明な応答は不明として残します。

円の例:先頭を半分閉じても、先頭は残る

別の架空USD/JPYヘッジ口座を考えます。P1は先に2,000 USDを150.00で買い、P2は後に1,000 USDを149.80で買いました。Bid150.20固定ならP1+400円、P2+400円、合計+800円。ここで当該デモの条件が部分決済を許可し、P1のうち1,000 USDだけが実際に決済されたと確認できた場合を仮定します。全口座がこの操作を許すという主張ではありません。

費用なしなら実現+200円、残るP1の含み益+200円、P2の含み益+400円で合計800円です。FIFOが継続して適用され、P1が同じ先頭建玉として残る設定なら、古いP1の1,000 USDを無視して「P1は処理済み、次はP2」と進められません。残数量とサーバーの識別情報を再取得します。

独立した費用条件としてこの部分決済に20円の確定手数料が付くなら、実現純利益180円と含み益600円で合計780円。800円と780円の差は手数料であり、FIFOが利益を生んだ・消した証拠ではありません。価格固定・ほかの費用なしの説明で、実注文の推奨や本番操作試験ではありません。

SL・TPと一括決済にも注意

公式MT5 HelpはFIFO口座で同一銘柄のSL・TP水準を連動させ、順序に合う決済を行う仕組みを説明しています。各建玉の保護を完全に独立して設定できる前提にせず、水準の追加・変更・削除後に関連するすべての建玉で受理値を確認します。普通のストップは正確な約定価格を保証しません。

同文書はFIFOの逐次決済とエラー時の中断を説明しています。一括コマンドは全建玉の消滅の証明ではなく、応答と残建玉を確認してから次の判断をします。画面がすぐ変わらないからと一覧全体を再送信しません。強制ロスカットは別途口座条件を確認し、この全決済例を全業者の強制清算順に流用しません。

部分決済で残る先頭

部分決済で残る先頭架空USDJPY、Bid150.20固定、P1は2,000 USDを150.00、P2は1,000 USDを149.80で買い。許可されたP1の1,000 USD決済が確認済みの条件。仮定に基づく計算P1の確定損益+200円残る含み益+600円20円の費用がある別条件合計780円
部分決済で残る先頭. 架空USDJPY、Bid150.20固定、P1は2,000 USDを150.00、P2は1,000 USDを149.80で買い。許可されたP1の1,000 USD決済が確認済みの条件。

先頭への依頼を処理したことと、先頭が完全に消えたことは別です。

小さな画面では横にスクロールするか、図を拡大できます。数値と要点は下のテキストにも記載しています。

P1の確定損益
+200円 – 費用なし。残るP1は1,000 USD。
残る含み益
+600円 – P1+200、P2+400。合計は依然800円。
20円の費用がある別条件
合計780円 – 実現純180+含み600。残数量と順序も再確認。

実資金を動かさず確認する手順

  1. 完全なretcode、正確な銘柄、ACCOUNT_FIFO_CLOSE、口座方式を保存。分析表の配分規約とは別欄にします。
  2. 現在のID、時刻、方向、数量、受理済み保護水準を並べ、先頭と不明応答を明示。利益順で選ばず履歴と照合します。
  3. P1・P2・P3と実現30/含み50 USDを再計算。円の部分決済例では残る先頭を確認します。実挙動の再現には同条件のデモと各結果の確認が必要です。