4つの数字が、目を背けたくなる状況を物語っています。ウォークフォワードのSharpeは1.4、過去の取引は312件、ペーパー取引は46件、そしてペーパー取引とバックテストの約定価格には18ベーシスポイントの差があります。見出しになるのはSharpeでしょう。しかし、ペーパー取引の履歴が十分に蓄積して成績を判断できるようになる前から、戦略の挙動が違って感じられる理由は、18ベーシスポイントの差にあるかもしれません。
ウォークフォワードテストでは、過去のデータを使って戦略を選定するリサーチプロセスが、その後のデータで評価できるかを検証します。ペーパー取引では、現在のデータ、時刻、注文ロジック、約定を使って稼働するシステムが、テストしたプロセスと同じように動くかを確かめます。関連する問いではありますが、前者の結果だけで後者への答えが得られるわけではありません。
ウォークフォワード検証で実際に何が確かめられるのでしょうか?
たとえば、6か月分のデータで戦略を学習または選定し、その次の1か月で評価するとします。ウィンドウを先に進めて、これを繰り返します。各テスト月のデータが対応する選定プロセスに使われていなければ、一連の過去の市場環境におけるパフォーマンスの証拠が得られます。
ただし、ペーパー取引でも同じ判断や約定が再現されるとは限りません。過去のテストでは、確定済みのローソク足、固定の手数料体系、簡略化された成行注文モデルを使っているかもしれません。一方、稼働中のペーパープロセスは到着したデータを受け取り、別の経路でシミュレーション注文を送ります。片方が妥当でも、もう片方との間に不一致があることはあります。
そのため、ウォークフォワードのサンプルで312件だった取引がペーパー取引では46件だったとしても、それだけで結論は出せません。比較する期間、シグナルの頻度、期間の境界で保有しているポジション、そして両方で同じ定義の取引件数を数えているかを確認しましょう。6週間のペーパー取引で、1年間にわたるローリングテストの取引件数に合わせることはできません。
なぜ約定価格の差から多くのことがわかるのでしょうか?
ペーパー取引の損益曲線を解釈する前に、平均18ベーシスポイントの差を分解して調べましょう。バックテストで想定した約定価格とペーパーシミュレーターの約定価格との差でしょうか。それとも、判断時点の仲値とペーパー取引の約定価格との差でしょうか。この2つは別のものを測っています。判断価格、注文到着時の価格、シミュレーション上の約定価格、手数料、資金調達料は、それぞれ分けて記録してください。
| 観測された差 | 最初に確認すること | 重要な理由 |
|---|---|---|
| ペーパー取引の件数が少ない | シグナルのタイムスタンプと適格性ルール | 入力の欠落や遅延で判断が抑制されることがある |
| 取引は同じだが約定が悪い | 注文タイプ、スプレッド、インパクト、手数料ティア | バックテストで、より低コストな執行経路を想定している可能性がある |
| ポジションサイズが異なる | 現金、契約乗数、丸め処理 | 単位の小さな不一致が注文ごとに積み重なる |
| 再起動後に乖離する | 復元されたポジションと未約定注文 | ペーパープロセスが異なる状態から再開している可能性がある |
たとえば、次のバーの始値で買うバックテストは、流動性の高い銘柄ならペーパー取引の成行注文と近い結果になるかもしれません。しかし、急変動の後にペーパー注文が到着した場合、その差には執行コストだけでなくタイミングと相場変動も含まれます。18ベーシスポイントすべてを「スリッページ」と呼ぶと、原因が見えなくなります。
ペーパー取引とウォークフォワードテストをどう比較すればよいでしょうか?
まず判断を比較し、次に注文、最後に約定を比較します。ペーパー取引の判断ごとに、同じ戦略バージョンを同じ入力履歴で再生し、その時点で利用できた情報を比べましょう。比較に役立つ記録には、次の項目があります。
- 戦略のバージョンとパラメーター。選定に使ったウィンドウも含めます。
- イベント時刻と利用可能時刻を含む入力値。
- シグナル、目標ポジション、現在のポジション、提案された注文。
- 注文の制約、手数料、資金調達料、シミュレーション上の約定の詳細。
- 執行前後の現金とポジションの状態。
シグナルが異なる場合は、データのタイミングとコードのバージョンを調べます。シグナルが一致して注文が異なる場合は、サイズ計算、取引所のルール、ポートフォリオの状態を確認します。注文が一致して約定が異なる場合は、執行の前提を調べます。それぞれの層を分けて確認しましょう。そうしないと、パフォーマンスの数字1つを頼りに、見当違いの原因を探すことになります。
乖離が戦略の破綻を示すのはどんなときでしょうか?
パイプラインが一致したら、意味のある共通期間で結果を比較し、戦略が意図した挙動をしているかを調べます。ペーパー取引が数件しかなくても、タイムスタンプや注文経路の不具合はすぐに見つかることがあります。しかし、戦略の平均リターンが変化したと確実に判断することはできません。そのためには十分な観測数が必要で、必要な数はリターンのノイズの大きさや集中度によって異なります。
市場環境が変わることもあります。すべての判断が一致していても、スプレッドの拡大や資金調達料の継続的な悪化が戦略に打撃を与えるかもしれません。これは検証の不具合ではなく、取引環境の実際の変化です。リターンとあわせてコストやエクスポージャーも記録しておけば、その違いが見えるようになります。
ウォークフォワード検証は、過去の期間における選定プロセスの証拠です。ペーパー取引は、観測された環境下で稼働するシステムの証拠です。結果が乖離したら、まず記録が食い違い始める最初の地点を探しましょう。意外な数字は、たいていSharpeではありません。2つの実験が異なる問いに答える原因となった、小さな執行上またはデータ上の違いです。
← 記事一覧


