2026年9月25日 · リサーチ

バックテストの市場データが実際に取引可能だったか、どう判断すればよいでしょうか?

バックテストの市場データが実際に取引可能だったか、どう判断すればよいでしょうか?

市場データの1行は完全に正確でも、バックテストの根拠として使えないことがあります。取引は実際に行われ、価格は正しく、タイムスタンプも有効です。それでも、フィードの配信が遅れていたり、ベンダーが後から値を修正していたり、記録された市場に戦略がアクセスできなかったりする可能性があります。

過去のデータが取引可能だったかを確かめるには、イベントのタイムスタンプだけでなく、データを監査する必要があります。その行が何を示すのか、システムでいつ利用可能になったのか、どの取引所や銘柄を表すのか、そしてその気配値や約定が注文を出す根拠になり得たのかを把握しましょう。

正確な過去価格があれば、バックテストには十分ですか?

いいえ。正確性が答えるのは、「情報源が最終的に記録した価格はいくらか」です。バックテストではさらに、「判断時点で戦略が何を知り得たか」「何を約定できたか」に答える必要があります。この2つは別の問いです。

暗号資産の取引が12:00:00.120に成立した一方で、データベンダーのストリームが12:00:00.480にプロセスへ届いたとします。.200に判断する戦略は、その取引を利用できません。イベントのタイムスタンプが判断時点より前でも同じです。過去データのファイルにイベント時刻しか保存されていなければ、バックテストでは、実運用のプロセスがまだ受信していない情報を戦略に与えてしまうことがあります。

時刻または項目分かること欠けている場合のバックテスト上の問題
イベント時刻取引所がイベントの発生時刻として示す時刻市場での発生時刻と、戦略が情報を利用できた時刻を混同する
受信時刻収集システムがメッセージを受け取った時刻遅延データを即時に届いたかのように使う
シーケンス番号または更新IDフィード内でのイベントの順序更新を順不同で適用したり、気づかないまま飛ばしたりする
改訂時刻修正後の過去値が判明した時刻元のフィードには存在しなかった値でバックテストする

アーカイブに受信時刻がない場合は、その欠落を正直に扱いましょう。遅延を仮定して検証するか、イベント時刻に基づくリサーチに主張を限定できます。保存されていないタイムスタンプから、当時の情報集合を正確に再構成することはできません。

気配値が実際に執行可能だったか、どう見極めればよいですか?

まず、注文が実際に到達する市場を確認します。複数の取引所をまとめた最良買気配・最良売気配を見ても、表示された数量に自分の口座がアクセスできたことや、注文到着時にも気配が残っていたこと、取引所がその注文種別を受け付けたことまでは証明できません。

成行注文を仲値で約定させる想定は、たいてい現実的ではありません。より有用な推定方法は、注文数量に合わせて表示板の流動性を順に消費する約定を見積もり、手数料と遅延または価格インパクトの仮定を加えることです。最良気配のデータしかない場合は、主張できる範囲を限定しましょう。最初の価格水準は推定できますが、記録されていない板の厚みまでは分かりません。

指値注文の場合、価格に触れたからといって約定したとは限りません。自分より前に並んでいる注文が、先に利用可能な数量を消費している可能性があります。通常のスナップショットからキュー順位を知ることは難しいため、価格に触れたら約定とするルールは、実際に起きたことではなく、楽観的なシナリオとして扱いましょう。

1分足から、安値が指値を下回ったことは分かります。しかし、安値が付く前に自分の注文が取引所へ届いていたか、その価格でどれだけ取引されたか、自分の前にどれだけの注文が並んでいたかは分かりません。

市場データのアーカイブを信頼する前に、何を確認すべきですか?

まずは基本的な性質を確認します。壊れたフィードに高度な執行モデルを付け足すより、こうした確認のほうが多くの不適切なリサーチを見つけられます。

最後の確認は、あまりに基本的に聞こえるかもしれません。以前、見かけ上のボラティリティ体制の変化を調べるのに午前中を費やしたことがあります。原因は、フィード移行後に数量フィールドの単位が変わっていたことでした。チャートは見事でしたが、単位が間違っていました。

データの利用可能時刻が結果に与える影響を、どう検証できますか?

戦略の判断境界を中心に、小規模な感度分析を行います。現実的な遅延分だけデータの利用可能時刻をずらし、シーケンスの連続性が壊れた更新を除外し、実際の取引所の板データがある場合はそれを使って約定を比較します。元の結果と、データを劣化させた場合の結果を両方報告しましょう。わずかな遅延で効果が消えるなら、その戦略は収集環境では安定して得られない情報優位性に依存しているかもしれません。

具体例として、最良買気配が1ティック上がったときにシグナルが出るとします。取引所のイベント時刻を使った場合と、収集システムの受信時刻を使った場合の2通りで再生します。イベント時刻で40回取引し、受信時刻では27回だったなら、その差も戦略の根拠の一部です。それぞれの再生でのパフォーマンスも同じく根拠になります。データが見栄えよくないからといって、劣るほうの再生結果を隠してはいけません。

次の確認にはペーパートレードが役立ちます。リサーチシステムと同じ運用経路で、フィードの遅延、古い気配値、シンボル対応の誤り、取引所の注文制限が明らかになるためです。ただし、実運用のすべてのキューや市場インパクトを再現できるわけではありません。その限界を明確にしておきましょう。

実務上、「取引可能なデータ」とは何を意味しますか?

バックテストから、観測値がいつ発生したか、戦略がいつ利用できたか、どの市場に由来するか、想定した約定をどのような執行根拠が支えているかを説明できることです。整った価格系列は出発点です。タイミング、アクセス、約定に関する仮定を検証し、それらを厳しくしても結果に納得できるとき、リサーチの信頼性が高まります。

市場データバックテストデータエンジニアリング執行ペーパートレード
← 記事一覧