正直なバックテストをしたいなら、ティックデータを使うべき。よく聞く助言です。私は、多くの戦略には当てはまらず、従うとかえってバックテストの質を下げることが多いと考えています。ティックデータが不正確だからではありません。入手できるデータのなかでは最も正確です。問題は、多くの人がそれを使うとき、厳密さの代わりに解像度を高めてしまうことです。この2つは同じではありません。
よくある失敗の流れを見てみましょう。あるリサーチャーが1-minute足で戦略を組み、納得のいくSharpeを得ます。すると、メンターやフォーラムの投稿、あるいは拭いきれない疑念から、「バーで作ったバックテストは不正直だ」と言われます。そこでパイプライン全体をティックデータで作り直します。すべての約定と気配更新を、マイクロ秒単位のタイムスタンプ付きで扱うのです。バックテストは遅くなり、コードは3倍複雑になります。Sharpeは……ほとんど変わらないか、誰にも説明できない方向へ動きます。それでも公開してしまいます。ティックデータのほうが厳密そうに感じるからです。しかし、厳密そうに感じることと、実際に厳密であることは違います。
ティック解像度で得られるもの
ティックデータを使えば、すべての約定の順序と価格を確認できます。(料金を払えば)すべての注文板更新も確認できます。これは確かな情報です。キュー内の自分の順位を再現し、特定の価格水準での約定確率を推定し、逆選択を確認できます。つまり、仮定上の約定直後に市場が不利な方向へ動くかどうかが分かります。保有期間が秒単位で、エッジがティックの何分の1かで測られる戦略では、どれも非常に重要です。
しかし、Stratmillで目にする戦略の大半も、個人やセミプロのリサーチャーが実際に運用する戦略の大半も、ポジションを数分から数日保有します。その時間軸でバックテストの正確さを左右するのは、特定の1-minuteのなかにあった40回目の約定までモデル化したかどうかではありません。スプレッド、資金調達率、スリッページ曲線、そして指値注文がキューの他の参加者の後ろに並ぶ事実をモデル化できているかどうかです。この4つすべてをティックデータで誤ることもあれば、1-minute足ですべて正しく扱うこともできます。解像度と正確さは別の軸です。
最後の数字は、軽視されがちです。ティック単位のバックテストは、単に「行数を増やした同じバックテスト」ではありません。多くの取引所では、約定データが取り込み時刻に対して順不同で届き、後から訂正され、複数のマッチングエンジンのシャードに分散されます。私たちがデータを取り込んだ複数の取引所では、再接続の際にデータが重複したり、丸ごと欠落したりすることもあります。粒度を細かくするだけでなく、よく作られたバー用パイプラインより本当に正確なティック用パイプラインを構築するには、相応のシステム開発が必要です。そこまで取り組むチームは多くありません。ベンダーのティックファイルをバックテスターに読み込ませて終わりにします。つまり、既知で文書化された近似値(OHLCV)を、未知で文書化されていない近似値(ベンダーが調子の悪い日に行うティックデータの補正処理)に置き換えているのです。
買い込むことになるノイズ
もう1つ、開発というより統計に関わるコストがあります。個々の約定価格はビッドとアスクの間を行き来します。これがビッド・アスク・バウンスで、市場のミクロ構造に関する文献では1980年代から知られている現象です。シグナルが数秒より短い時間軸で動くなら、ティック単位のバックテストでは、実際には単なるバウンスであるものにパターンを見てしまうことがあります。あるリサーチャーが約定ごとのデータで見事な平均回帰パターンを見つけたのを見たことがあります。しかし、5秒足に集約しただけで消えてしまいました。そのパターンはバウンスだったのです。
知り合いのクオンツが、こう話してくれました。マーケットメイキングの経験があり、今は小規模な暗号資産のポートフォリオを運用しています。「ティックデータは虫眼鏡だ。自分のエッジに向けるならいい。ノイズに向けたら、ノイズを美しくモデル化するのに半年費やすことになる」。今ではほとんどのバックテストに1-second足か1-minute足を使い、ティックデータに切り替えるのは「この指値注文は実際に約定したか」という個別の問いを調べるときだけです。それはシグナルではなく、約定確率についての問いです。
この使い分けが正しい考え方です。そして、ティックデータを推す人が見落としがちな点でもあります。ティックデータを正しく使うとは、戦略全体をティックデータで動かすことではありません。バーのデータでは本当に答えられない1つか2つの問いに、ピンポイントで使うことです。
批判が正しいケース
とはいえ、ティックデータが必須となる戦略もあります。それを認めずに主張を広げすぎるのは誤りです。マーケットメイキングに近い運用、つまり両側に気配を出し、ティックごとに在庫を管理し、特定の価格水準でキューのどこにいるかを気にする戦略では、バーのデータで問題を表現できません。その戦略の経済性は1-minuteのなかにあり、複数のminuteをまたぐ動きにはありません。複数の取引所間でレイテンシに敏感な統計的裁定を行う場合も同じです。そこでは「どちらの約定が先だったか」がまさに問われます。また、大口注文を扱うオプションのマーケットメイキングでは、約定後数百ミリ秒の逆選択が勝負を決めます。こうした状況でバーを使ったバックテストは、単なる簡略化ではなく、分類上の誤りです。戦略を低解像度で再現しているのではなく、実際の戦略と名前が同じだけの別の戦略を検証しているのです。
| 戦略の時間軸 | バーのデータでは見えないもの | ティックデータは必須? |
|---|---|---|
| マーケットメイキング/キュー依存型 | 約定確率、逆選択、キュー内の順位 | はい——必須 |
| レイテンシ/取引所間裁定 | 約定の順序、どの取引所が先に動いたか | はい |
| 日中モメンタム、平均回帰(数分~数時間) | バーのなかでの約定タイミング、スプレッドコスト | 約定確率の検証に限って必要。シグナルには不要 |
| スイング/複数日、オプションの方向性戦略 | 重要な情報はほぼない | いいえ——バーで十分で、より明瞭なことも多い |
主張したいのは「ティックデータは悪い」ということではありません。ティックデータに飛びつくのは、もっと難しく、地味な問いから目をそらす手段になっていることが多いということです。コストモデルは正しいか。約定の仮定は正しいか。この注文は本当に約定したのか。それとも、板が実際には提示していない価格で約定したことにしていないか。キュー内の順位とスプレッドを正直に考慮すれば、こうした問いには1-minute足や1-second足でも答えられます。ティックデータなら、数倍の開発コストをかけて、より高い精度で答えられます。ただし、その精度を上げても結論が変わらない戦略もあります。時間軸が本当に求めるところに労力を注ぎ、それ以外では使わないこと。細かいデータほど厳密そうだからと、いつでも最も粒度の細かいデータを選ぶより、リサーチチームの時間を有効に使えます。
← 記事一覧


