FX
MT4のスワップを確認してFX自動売買の費用を照合する方法

MT4のスワップは、これから保有する場合の条件と、すでに注文へ計上された金額を分けて確認します。気配値表示の「仕様」にある買い・売りの数値は、必ずしもそのまま円の受払額ではありません。まず計算単位を確認し、保有中は「取引」、決済後は「口座履歴」の注文を照合しましょう。
FX自動売買では、売買による利益だけを見ていると、持ち越し費用を含めた結果とずれることがあります。この記事ではWindows版MT4を中心に、見る場所、単位、計上時期、EA側での読取値を順に整理します。特定業者の最新スワップ額や、受取利益を保証する内容ではありません。
- 将来の条件と注文に計上済みの金額の見分け方
- 買い・売り・計算単位をそろえて読む手順
- 売買損益とスワップ・手数料を重複なく集計する方法
- 表示額が合わないときに注文と期間から調べる順序
MT4のスワップをFX自動売買前に確認する

条件・保有中・決済後を分ける
最初に決めるのは、どの段階の数字を知りたいかです。新しく保有する銘柄の条件を知りたい場合は仕様、すでに持っている注文の計上額を知りたい場合は取引タブ、閉じた注文の結果を見たい場合は口座履歴を使います。同じ「スワップ」という表示でも、対象が異なります。
仕様は今後の費用を考える材料ですが、過去の全期間に同じ条件が適用されたことを示す履歴ではありません。今日の仕様値に保有日数を掛けただけでは、以前の条件変更や複数日分の付与を再現できない場合があります。確定した実績は注文の計上額や業者の明細と照合します。
反対に、ある注文へ計上された累計額から、これからの一日分をそのまま推定するのも避けたい読み方です。その注文の数量、方向、期間を固定して初めて比較の意味が出ます。EAを複数使う口座では、口座全体の合計と一つのEAの費用も区別しましょう。
| 知りたいこと | まず見る場所 | その数字が示すもの |
|---|---|---|
| 保有前の条件 | 気配値表示→仕様 | 現在の買い・売りの計算条件 |
| 保有中の累計 | ターミナル→取引 | 対象注文へ計上済みの額 |
| 決済後の結果 | ターミナル→口座履歴 | 閉じた注文のスワップ |
| 正式な期間集計 | 業者の取引明細・報告書 | その書類の対象期間と計上方法 |
保有中と決済後の表示場所はTitan FXのWindows版MT4マニュアルでも確認できます。操作の参照元であり、口座開設や業者を推奨する目的ではありません。
気配値表示から仕様を開く
Windows版では、気配値表示で対象の銘柄を右クリックし「仕様」を開きます。気配値表示自体が見えない場合は、表示メニューなどからウィンドウを出します。似た名前の銘柄が並んでいるときは、実際にEAが取引する接尾辞付きの名前まで一致させてください。
仕様の中では、買いスワップ、売りスワップ、スワップタイプを一組で読みます。ロングとショートはそれぞれ買い・売り側です。買い側が受取でも、売り側が同じ金額の支払になるとは限りません。両方がマイナスになる条件も含め、符号を個別に確認します。
口座タイプや取引サーバーが違えば、同じ通貨ペア名でも条件が同一とは限りません。別の口座の画面を参考にする場合は、業者名だけでなく、口座の種類、銘柄、数量単位もそろえます。デモ画面の条件を本番口座へそのまま転記して確定値にしないようにしましょう。
仕様に表示される項目の意味はMetaTrader 4公式ヘルプの気配値表示・契約仕様で確認できます。画面名や翻訳が少し違うときも、単に似た数字を探すのではなく、スワップタイプと方向の対応を確認します。
ポイント・通貨額・年率を見分ける

「買いスワップが3」と表示されても、3円と決め付けてはいけません。スワップの計算方式には、ポイント、銘柄の基準通貨、年率、証拠金通貨などがあります。数値が同じでも単位が異なれば、数量へ換算した受払額は変わります。
EAで仕様を読む場合、MODE_SWAPLONGとMODE_SWAPSHORTだけを取得して終了せず、MODE_SWAPTYPEも併せて確認します。MQL4では計算方式の識別値が定義されています。0はポイント、1は銘柄の基準通貨、2は金利、3は証拠金通貨です。これは計算方式の区別であり、その数字自体がスワップ額ではありません。
ポイント方式なら、対象銘柄のPointや契約数量などとの対応を確認します。年率方式なら、年率の数字を一日あたりの金額と読み替えず、業者が示す日割り基準や換算方法を使います。基準通貨と口座通貨が違う場合は、どの時点のどのレートで換算されるかも必要になります。
たとえば二つの業者で「5」と「0.5」が並んでいても、大小だけで費用の優劣は分かりません。同じ銘柄、同じ売買方向、同じ数量、同じ付与日数について、口座通貨でいくらかへそろえて比較します。換算条件が不明なら、推測式でランキングを作らず公式の計算説明を確かめます。
識別値と名称はMQL4の銘柄プロパティ一覧を参照してください。仕様取得用の関数を使っても、業者固有の付与・端数処理まで自動で説明できるわけではありません。
付与時刻と複数日分を確認する

スワップの対象になる持ち越し時刻は、取引先の規定を確認します。日本時間で午前0時をまたいだ、カレンダー上で二日間持った、という数え方だけでは、取引上の付与回数を確定できません。サーバー時刻、夏時間、対象銘柄の条件を確認する必要があります。
契約仕様に複数日分のスワップを付ける曜日が示される場合もあります。一般に見かける曜日をすべての銘柄へ固定して使わず、取引先の最新の仕様やスワップカレンダーを見ます。祝日や受渡日の関係で日数が変わる場合は、通常週の予定とも区別しましょう。
比較する際は、取引を始めた日時と終えた日時を同じ基準で並べます。日本時間のメモとMT4のサーバー時刻を混ぜると、付与境界をまたいだかが分からなくなります。時刻の読み替えが必要なら、MT4の日本時間換算とEAの時間指定を参照してください。
付与を避けたい場合も、境界の直前なら必ず予定価格で決済できるとは限りません。スプレッド拡大、接続状態、取引休止などがあるため、時刻条件を入れるだけで費用や損失をゼロにできるわけではありません。停止を新規発注だけに適用するのか、既存建玉の扱いも変えるのかを先に決めます。
ゼロ表示の理由を順に調べる
取引タブのスワップが0でも、表示故障とは限りません。まだ対象の持ち越しを迎えていない、付与日数や条件が異なる、数量が小さく端数処理の影響を受けるなど、いくつかの確認点があります。まずその注文の成立日時、方向、数量を見ましょう。
仕様欄が0の場合と、注文の累計が0の場合も分けます。仕様欄の0は現在の条件、注文欄の0はその注文に計上されている状態です。将来もずっと費用がないと判断するには足りません。特別な口座条件がある場合も、適用期間や対象銘柄、別の手数料がないかを契約資料で確認します。
スマートフォンとWindows版で違って見える場合は、表示通貨や合計欄に含まれる費用が同じかを確かめます。アプリの大きな合計額と、注文一件の売買損益欄を直接比べると、スワップを含むかどうかの違いを見落としやすくなります。画面名と項目名をそろえて照合してください。
MT4のスワップを実績とEAで照合する

取引タブから注文一件を追う
保有中はターミナルの取引タブで対象注文の行を探し、スワップ列を読みます。ここでは一日の予定額ではなく、その注文へ計上されている値を確認します。ターミナルは表示メニューやCtrl+Tで開けます。列が見づらい場合はウィンドウ幅や表示項目を調整し、別の列を読み違えないようにします。
照合する組は、注文番号、銘柄、売買方向、ロット、成立時刻、スワップです。同じ銘柄で複数の注文がある口座なら、合計数量だけで一行へまとめず、まず一件ずつ確認すると原因を切り分けやすくなります。EAが自動で増減させた注文と手動注文を混ぜないことも大切です。
ここで表示された値は、その瞬間の確認値です。取引状態が変われば表示内容も変わります。比較用に数字を控える場合は、取得した時刻と口座通貨も一緒に管理し、前日の画面と今日の画面を同時点の値として扱わないでください。問い合わせ用の資料には、認証情報を含める必要はありません。
部分決済や複数EAの注文がある場合は、数量の変化も追います。保有開始時のロットを現在の残量へそのまま当てはめた概算と、実際の計上額が一致しないことがあります。注文の引継ぎ方は業者や処理方法を確認し、番号と履歴を見て対応を取ります。
決済後は履歴の期間もそろえる
決済済みの注文は口座履歴タブで確認します。まず履歴に設定している表示期間が目的の日付を含むかを確認してください。取引タブから行が消えたから、スワップ自体も消えたと判断するのではなく、決済後の行へ移って結果を読みます。
検索する手掛かりは、保有中に確認した注文番号や銘柄、約定日時です。履歴に見つからないときは、表示期間、口座、サーバーの取り違えから確認します。MT4で見られる履歴の範囲や正式な資料の取得方法は業者で違うので、長期の集計には業者の明細や取引報告書も使います。
一部の業者では、MT4で全履歴を選んでも取得できる期間に制限があることが案内されています。たとえばFXTFの取引明細書に関するFAQは、同社のMT4側の履歴範囲と明細項目を説明しています。他社へ同じ期間制限を当てはめる根拠にはしないでください。
履歴を保存・整理する手順が必要なら、MT4の取引履歴の表示・保存方法を参照してください。スワップを確認するためだけに、建玉を決済する必要はありません。確認操作と実際の取引操作を分けましょう。
売買損益と費用を分けて合算する

EAの表示とMT4の数字を比べるときは、何を合計しているかを合わせます。MQL4のOrderProfitは、スワップと手数料を含まない選択中注文の損益です。保有中なら未実現の値、決済後なら確定した売買損益を返すため、時点も区別します。
一つの注文について三項目を合計するなら、基本の読取式はOrderProfit()+OrderSwap()+OrderCommission()です。ただし、別の入出金処理や口座単位で計上される費用がある場合は、この注文単位の合計だけで口座全体の変化を説明できるとは限りません。
説明用に、売買損益が1,000円、スワップがマイナス80円、手数料がマイナス120円という仮の注文を考えます。三つの合計は800円です。これは実際の口座の実績や料金ではありません。手数料がマイナス値で渡されているのに、さらに引き算すると二重に符号を反転させてしまいます。
| 項目 | 仮の読取値 | 扱い |
|---|---|---|
| 売買損益 | 1,000円 | 価格変動による損益 |
| スワップ | -80円 | 計上された符号で加算 |
| 手数料 | -120円 | 計上された符号で加算 |
| 三項目の合計 | 800円 | 1,000-80-120。説明用の仮定 |
OrderProfitの範囲は公式リファレンスで確認できます。受け取ったスワップがあっても、価格変動による損失や手数料を含めた結果がマイナスになることはあります。受取額の大きさだけで、EAの運用が有利と判断しないようにしましょう。
EA側では選択した注文の値を読む
OrderSwapは、OrderSelectで選択済みの注文に対するスワップ値を返します。銘柄全体の次回条件を返すMODE_SWAPLONGなどとは役割が違います。今後の条件を知りたい処理と、実績を集計する処理で関数を取り違えないことがポイントです。
下は発注・決済を行わず、指定した注文番号の三項目を表示する学習用スクリプトです。Ticketには、ご自身のデモ口座で確認した実在番号を入力します。初期値の0では終了します。ここで実機コンパイルや特定業者の計上方法まで確認済みの完成EAとして扱うものではありません。
#property strict
input int Ticket = 0;
void OnStart()
{
if(Ticket <= 0)
{
Print("Set an existing demo ticket. Read only.");
return;
}
ResetLastError();
if(!OrderSelect(Ticket, SELECT_BY_TICKET))
{
int err = GetLastError();
Print("Order selection failed: ", err);
return;
}
int type = OrderType();
if(type != OP_BUY && type != OP_SELL)
{
Print("Not a market order. Read only.");
return;
}
double profit = OrderProfit();
double swap = OrderSwap();
double commission = OrderCommission();
Print("Ticket=", OrderTicket(), " Symbol=", OrderSymbol(),
" Lots=", OrderLots(), " ClosedAt=", OrderCloseTime());
Print("Profit=", profit, " Swap=", swap,
" Commission=", commission,
" Sum=", profit + swap + commission,
" Currency=", AccountCurrency());
}
選択した注文が保有中か履歴側かは、OrderCloseTimeなどで確認します。番号で選んだ場合は、選択できたという事実だけで保有中とは判断できません。以前に選んだ注文をそのまま読み続けず、照合したい時点で選び直します。
コードのSwapと、同じ口座・注文番号の画面のスワップ欄を比べます。計算方式を読み取るコードではなく、計上済みの値を確認するコードなので、ここへさらに日数やロットを掛けないでください。返された値を二重に数量換算すると、注文単位の実額と合わなくなります。
取得対象の定義はOrderSwapの公式説明、事前選択とデータの扱いはOrderSelectの公式説明を参照してください。
MT4のスワップが合わないときの確認順

最初に口座と注文番号を一致させ、次に数量と売買方向、最後に計上時刻と通貨を合わせます。この順番なら、別注文の値を計算し続ける手戻りを減らせます。仕様欄の予定条件、注文の累計、口座全体の残高を一つの数字として比べていないかも見直しましょう。
不一致が残る場合は、付与日数、途中の条件変更、数量の変更、為替換算、端数処理、別途計上される費用を確認します。現在の条件から過去全期間を逆算しても一致するとは限りません。特に長期保有では、その期間の公式明細が確認材料になります。
問い合わせるときは、注文番号、口座の種類、銘柄、方向、数量、対象日時、表示された項目名と値を整理します。ログインパスワードや自動売買の認証情報まで送る必要はありません。説明できない差がある状態で、ロットを増やして結果を試すことは避けましょう。
FX自動売買へ反映するなら、まず費用を含めた集計が一致するかをデモで確認し、次に持ち越しの可否や新規発注の停止条件を検討します。スワップを避ける時刻条件を入れた場合は、約定回数や売買損益にも影響するため、費用項目だけを消して改善したと扱わないことが大切です。
MT4のスワップは、見る場所を分け、単位と注文をそろえると読みやすくなります。新規注文前の条件は仕様、計上済みの値は注文、最終的な費用の確認は履歴と明細、という順序で整理してください。この記事は確認手順を目的にしているため、口座開設や作成ツールへの申込を急ぐ必要はありません。
EA作成ツールの検証範囲を確認する
生成コードの動作テスト・コンパイル結果と、その限界 →記事内の戦略や個別のEAの収益性を検証した結果ではありません。学んだルールを、形にしてみよう。
EA作成ツールを開く ↗