FXにおけるスリッページ前提の仕組み
直接的な答え
FXにおける「スリッページ前提」とは、計算を作成したときに意図した、または観測した価格と、注文が実際に執行される価格がどのように異なり得るかをモデル化するために使う、簡略化されたルールのことです。実務上、スリッページ前提は、執行の不確実性を推定コスト(場合によっては利益)へと変換し、バックテスト、フォワードテスト、あるいは取引パフォーマンスのあらゆるシミュレーションに含められるようにすることを目的としています。重要な考え方は、将来に何が起きるかを予測することではなく、取引がどのように約定(フィル)し得るかについて、一定で明示的な前提を置くことです。
メカニズムと定義
スリッページとは、注文の参照価格(たとえば、シグナルが生成されるときに使われる価格、または意思決定時点のミッド価格)と、実際の約定価格(あなたのシステムが受け取る価格)との差です。スリッページ前提は、このギャップを、モデルが計算できる何かへと変換します。
ワークフローを理解する簡単な方法は、次の4つの要素を分けることです。
- 参照価格:取引計算の「開始点」としてモデルが使う価格。
- 約定価格ルール:参照価格から約定価格を決めると仮定するプロセス。
- 方向の扱い:ルールがあなたに不利に動くのか、それともどちらの方向にも変わり得るのか。
- 総コストの会計:スリッページが、スプレッドやコミッションなどの他の執行コストとどのように相互作用するか(シミュレーションにそれらを含める場合)。
最小限のモデル
多くのスリッページ前提の設定は、次のいずれかのアプローチに落ち着きます。
- 固定スリッページ(pipsまたはpointsで一定):すべての執行が一定量だけ悪化すると仮定します。たとえば、買いは参照価格からXだけ下、売りは参照価格からXだけ上で約定するといった具合です。
- 注文サイドとタイミングに基づくルール:シミュレーションした注文がbid/askでトリガーされるか、ローソク足の境界で発生するか、あるいは特定のバーの終値/始値の慣習を使うかに応じて、異なるオフセットを適用することがあります。
- レンジまたは分布からのランダムなスリッページ:1つの一定値ではなく、スリッページを選んだレンジからサンプリングします。これも前提です。なぜなら、分布はリアルタイムの約定に依存せずに指定されなければならないからです。
- 流動性またはボラティリティに連動したスリッページ:スリッページ量を、シミュレーションで使うボラティリティや流動性の指標のような代理変数に結び付けます。より現実的になる可能性はありますが、複雑になり、過剰適合しやすくなることもあります。
指定しなければならない入力
他の人が検証できる形でスリッページ前提を使うには、次のような入力を指定する必要があります。
- 測定単位:pips、points、または価格のパーセンテージ。
- 適用タイミング:注文エントリーのみか、決済(エグジット)か、両方か。
- スケーリング方法:スリッページが注文サイズに応じて変わるのか、一定のままか。
- サイドの慣習:買い/売りをbid/askのどちらの方向に対応させるか。
- スプレッドとの相互作用:参照価格がミッド、bid、askのどれか、そしてスプレッドを別途すでに含めているかどうか。
証拠または例(明示的な前提つき)
「ミッド価格」を参照価格として使うシミュレーションを考えます。次の前提を定義します。
- 参照価格:意思決定の瞬間のmid = (bid + ask) / 2
- スプレッド:点数またはpipsで測った固定スプレッドSをシミュレートする。
- スリッページ前提:執行はSlpだけトレーダーに不利に動く。
- スリッページはエントリーとエグジットの両方に適用する。
例:計算ロジック
買い注文の場合:
- 意思決定時点のミッドはmidです。
- すでにスプレッドを別途モデル化しているなら、約定はbidかaskのどちらから始めるべきかを決める必要があります。よくあるモデリングの選択肢は次のとおりです。
- Bid = mid − S/2
- Ask = mid + S/2
- 買いは一般にask付近で約定するため、まず約定の基準をaskとし、その後あなたに不利になるようにスリッページを適用するかもしれません。
- fill_price ≈ ask − Slp
売り注文の場合:
- 売りは一般にbid付近で約定します。同様の慣習として:
- fill_price ≈ bid + Slp
これは「シーケンス」の側面を示しています。約定価格は、(a)参照価格の定義、(b)スプレッドの扱いの選択、(c)スリッページのルールに依存します。これらのどれかを変えると、同じSlp値を維持していても、モデル内の取引P&Lは変わります。
出力が表すもの
シミュレーションの出力では、スリッページ前提は通常次のように現れます。
- 推定約定価格(または推定価格調整)。
- 1取引あたりのコスト影響(参照ベースのP&Lと、約定ベースのP&Lの差)。
- 集計されたパフォーマンス差(ドローダウン、プロフィットファクター、総リターンなど)。これらは、あなたの前提に依存する条件付きのものとして扱うべきです。
限界と失敗パターン
スリッページ前提を慎重に適用していても、いくつかの限界によってシミュレーションが実際の執行を誤って表すことがあります。
-
前提の不一致 スリッページは一つのものではありません。遅延、部分約定、提示(クォート)の挙動、そして市場インパクトなどから生じ得ます。モデルがスリッページを一定のオフセットとして扱う場合、実際にスリッページが変化する条件を捉えられない可能性があります。
-
執行コンポーネントの欠落 よくある誤りは、コストの二重計上または省略です。たとえば、参照価格がすでにbid/askを暗に含んでいるのに、スプレッドとスリッページを別々の控除としてモデル化していると、コストが歪むことがあります。逆に、コミッションや手数料を省くと、コストが実際より小さく見えることがあります。
-
タイミングの曖昧さ FXの約定は、注文が価格更新のいつに対して出されたかに依存します。バックテストがローソク足の始値または終値で約定すると仮定している場合、スリッページ挙動は偏る可能性があります。これはモデリング上の選択であり、明示し、テストする必要があります。
-
分布の前提が恣意的になり得る スリッページをレンジまたは分布からサンプリングする場合、シミュレーション環境と整合する方法でそれを正当化する必要があります。そうしないと、結果がもっともらしい執行挙動ではなく、ランダム化設定を反映してしまうかもしれません。
-
過去の関係は将来の結果を保証しない 過去データを使ってスリッページ前提をキャリブレーションしていても、市場構造や執行条件は変わり得ます。したがって、あなたのスリッピッジモデルは予測ツールではなく、シナリオツールです。
検証と次の質問
スリッページ前提が内部的に整合しているかどうかは、次の3点を確認することで独立に検証できます。
- 価格慣習の監査:シミュレーションが参照としてミッド、bid、askのどれを使っているかを確認し、その慣習に買い/売りの約定ロジックが一致していることを確かめる。
- コスト会計の監査:スプレッド、コミッション/手数料(含めている場合)、およびスリッページが、正しく分離されているか、または二重計上なしで統合されているかを確認する。
- 感度テスト(概念的):スリッページ前提を制御された形で変更する(たとえば、より大きい/より小さいオフセット)し、結果がどれほど影響を受けるか観察する。大きな感度は、モデルが仮定した執行ギャップに強く依存していることを示唆します。