ブレイクアウトは条件成立と発注が価格変動の加速局面に重なりやすく、バックテストの想定価格と実約定に差が生じます。スプレッド、スリッページ、約定遅延を分離し、手法ではなく執行品質として劣化を測る方法を整理します。
シグナルが正しくても想定価格では約定しない
ブレイクアウト型のロジックでは、一定レンジや直近高値・安値を価格が超えた事実を条件として利用する。しかし条件成立は値動きが加速する瞬間と重なりやすく、検証上のシグナル価格と実際の約定価格が一致するとは限らない。
特に短時間で注文が集中すると、BidとAskの差であるスプレッドが拡大し、注文処理中にも価格が更新される。チャート上では同じブレイクでも、実運用の損益は執行環境によって異なる。手法の評価には、方向の正誤だけでなく「条件成立から約定までに何が起きたか」を残す必要がある。
価格差を三つの要素へ分解する
まずシグナル判定時のミッド価格、Bid、Askを保存する。次に発注時の提示価格と実約定価格を記録する。これにより、想定コストをスプレッド、発注後の価格差をスリッページとして分けて集計できる。
さらにシグナル時刻、発注時刻、約定時刻を保存すれば、計算処理と注文処理に要した時間も測れる。例えばスリッページが大きい取引だけを抽出し、同時点のスプレッドと約定遅延を比較すれば、流動性悪化と時間経過のどちらが価格差に関係していたかを検証しやすい。
単純な平均値ではなく、中央値、90%点、95%点まで確認すると、少数の大きな執行コストが損益へ与える影響も見える。
ブレイク幅ごとに執行品質を比較する
EAではブレイク幅をATRなどの値幅指標で正規化し、条件成立時の値動きの強さと執行コストを対応させる方法がある。ブレイク幅が大きいほどスリッページも増えるなら、強い値動きを捉える条件そのものが高い執行コストを伴っている可能性がある。
バックテストでも全取引へ同じ固定スプレッドを置くのではなく、実運用ログから得たコスト分布を条件別に適用する。これにより、シグナルの期待値と執行後の期待値を別々に評価できる。
まとめ
ブレイクアウトでは、価格条件の成立と注文執行が同じ市場環境の中で起きるため、シグナルだけを検証しても実際の損益構造は再現できない。
シグナル時価格、提示スプレッド、発注・約定時刻、実約定価格を一組で保存すれば、どこでコストが発生したかを分解できる。手法の優劣ではなく、想定価格が実際の約定へ変換される過程を測ることが、執行品質を検証する基礎となる。






