FXのバックテストで成績が良く見えても、実運用へ移すと数字が急に細くなることがあります。ロジックが壊れたとは限りません。検証時にひとまとめにしていた「取引コスト」が、現実では別々のタイミングで効いている場合があります。
今回は、スプレッド、スリッページ、手数料を三つに分けます。目的は悲観的な数字を作ることではなく、どの条件が結果を変えたのかを後から説明できるようにすることです。
まず、三つのコストは同じものではない
スプレッドは、同じ時点の売値と買値の差
スプレッドは、BidとAskの間にある差です。MetaTrader 4の公式ヘルプでは、ストラテジーテスターは初期状態でテスト開始時点のスプレッドを使い、利用者が任意の値を設定できると説明されています。
ここで注意したいのは、設定した一つの値が、過去の全時間帯にそのまま当てはまるとは限らないことです。通常時、流動性が薄い時間、重要な材料の前後では、実際の広がり方が違う可能性があります。
スリッページは、想定価格と約定価格のずれ
スリッページは、注文時に見ていた価格と実際に処理された価格のずれです。スプレッドが一定でも、通信、価格更新、注文方式、流動性などによって約定のずれ方は変わり得ます。つまり「スプレッドを広めにしたから、スリッページも入っている」とは言い切れません。
手数料と保有コストは、別の単位で積み上がる
手数料は取引回数やロットに応じて発生し、スワップなどの保有コストは日をまたぐかどうかで変わります。CFTCも、OTCのFXでは手数料、スプレッド、資金調達費用などを含めて結果を見る必要があると注意を促しています。

確認1:固定スプレッドを「過去の代表値」にしすぎない
テスト開始時の値と、過去の分布は別物
テスターに表示されたスプレッドが正しくても、それは過去の各時点で観測されたスプレッドの列とは別です。特に短い時間足や小さな値幅を狙うロジックでは、数ポイントの違いが取引回数や決済条件まで変えることがあります。
一つの数字ではなく、三つの帯で試す
最初から「正しいスプレッド」を一つに決めるより、狭い・通常・広いの三つの条件を用意すると変化を追いやすくなります。大切なのは、最も良い条件を採用することではなく、どの帯から成績が崩れ始めるかを記録することです。
確認2:スリッページをスプレッドの中へ隠さない
テスターが再現していない部分を先に書く
MetaQuotesのMT4テスター解説には、注文処理にスリッページや遅延がないという制約が記されています。古い解説ページでもあるため、現在の端末・使用データ・補助ツールの仕様は個別確認が必要ですが、少なくとも「標準テストが実際の約定をすべて再現する」と決めつけないための確認材料になります。
フォワード結果は、損益より約定差を先に集める
デモや小さな検証環境で比較するときは、最終損益だけでなく、注文を出した時刻、想定価格、約定価格、その差を残します。平均値だけでは急なずれが埋もれるため、中央値と大きなずれが出た回数を分けておくと、ロジックと執行条件を切り離しやすくなります。
確認3:手数料と保有時間を同じ箱に入れない
片道・往復・ロット単位をそろえる
手数料を入力するときは、片道なのか往復なのか、1ロット当たりなのか1取引当たりなのかを明記します。単位をそろえずに合計だけを引くと、取引回数が増えたときに誤差も一緒に増えます。
日をまたぐ費用は、取引回数と分ける
スワップや保有に伴う費用は、回数より保有時間の影響を受けます。短期とスイングを同じ式で処理せず、「何回取引したか」と「何日またいだか」を別の列にすると、コストが増えた理由を追いやすくなります。
同じロジックを、条件だけ変えて並べる
基準・広め・ストレスの三列を作る
比較表は、基準条件、広めのコスト条件、さらに厳しいストレス条件の三列で十分です。売買ロジック、期間、初期資金、ロット計算は固定し、コスト条件だけを変えます。一度に複数の変数を変えると、何が効いたのか分からなくなります。
見る順番は、利益より取引の消え方
最終損益の差だけでなく、取引回数、平均保有時間、期待値、最大ドローダウンがどう変わったかを見ます。コストを少し広げただけで特定の時間帯の取引がまとめて消えるなら、そのロジックは方向性より執行条件へ強く依存している可能性があります。

検証ノートは、あとで再現できる短さにする
最低限の記録は六つ
端末とビルド、ブローカーまたはデータ元、銘柄、テスト期間、スプレッド条件、手数料・スリッページの扱いを残します。長い感想より、この六つがそろっているほうが同じ条件を再現しやすくなります。
「入れた」と「再現した」を分ける
設定欄へ数字を入れたことと、過去の執行環境を再現できたことは別です。ノートには「固定値で近似」「実測分布を使用」「標準テスターでは未再現」のように、どこまで再現したかを書いておきます。
まとめ:良い数字より、崩れる条件を残す
三つのコストを別々に動かす
スプレッドは価格差、スリッページは約定差、手数料と保有コストは回数や時間に応じた費用です。三つを別々に動かせば、結果の変化に名前を付けられます。
バックテストは未来を保証する装置ではありません。それでも、前提を分け、同じロジックを複数条件で比べれば、「どこまでなら同じ性質を保つのか」を静かに確かめられます。数字が崩れた場所は失敗ではなく、運用条件を知るための境界線です。
参照した公開情報
- MetaTrader 4 Help – Strategy Testing Setup
- MetaQuotes – Testing Features and Limits in MetaTrader 4
- CFTC – Eight Things You Should Know Before Trading Forex
本記事は学習・検証方法の整理を目的とした一般情報です。特定の取引、業者、商品を推奨するものではありません。実際の費用や約定条件は利用環境で異なるため、契約内容と取引履歴をご確認ください。


コメント