バックテストで固定スプレッドを使うと、流動性低下時のコスト急増を捉えられません。ティックデータからスプレッド分布と分位点を作り、EAの損益が執行コストの変動にどこまで耐えられるかを検証する方法を整理します。
平均コストでは損益のテイル部分を再現できない
EAのバックテストでは、スプレッドを一定値として設定するケースがある。しかし実際のBidとAskの差は固定ではなく、時間帯や流動性、重要イベントなどで変化する。平均値だけを使うと、通常時の損益は近似できても、コストが急増する局面を過小評価しやすい。
特に保有時間が短く、1回あたりの期待値が小さい戦略では、数ポイントの差が損益分布そのものを変える。検証で見るべきなのは平均スプレッドではなく、その分布である。
50%点と95%点を分けて置く
ティックデータから各時点のAsk-Bidを計算し、中央値である50%点に加えて75%、90%、95%点などを求める。例えば中央値を通常環境、95%点を流動性が悪化した環境として扱えば、固定値より現実的なコストシナリオを作れる。
さらに時間帯別に分けると精度が上がる。同じ銘柄でも市場参加者が多い時間と少ない時間では分布が異なるため、全時間帯を一つの分布にまとめると特徴が薄まる。
重要なのは最大値をそのまま悲観ケースにすることではない。単発の異常値より、一定頻度で実際に発生する上位分位点を使う方が再現性を評価しやすい。
EAの期待値をコスト感応度で測る
検証では、50%点、75%点、90%点、95%点のスプレッドをそれぞれ適用し、総損益だけでなく1取引あたり平均損益、Profit Factor、最大ドローダウン、取引回数を比較する。
さらに実運用ログがあれば、シグナル発生時のスプレッドと実約定価格との差を分離する。スプレッドとスリッページを混ぜると、提示価格の悪化なのか執行時の価格移動なのか判断できない。
コスト条件を段階的に悪化させたとき、どの水準から期待値が大きく変わるかを見ることで、EAが流動性環境にどの程度依存しているかを数値化できる。
まとめ
固定スプレッドによるバックテストは扱いやすい一方、実市場で発生するコスト分布のテイル部分を落としてしまう。ティックデータから分位点を作り、複数のコスト条件で同じ戦略を再計算することで、損益の頑健性を確認できる。
価格シグナルだけでなく、その価格で実際に約定するためのコストまで検証対象に含めることが、バックテストと実運用の差を測る基本となる。






