2026年11月6日 · データ

バックテストで使ったユニバースはポイント・イン・タイムではなかった

バックテストで使ったユニバースはポイント・イン・タイムではなかった

ローソク足のタイムスタンプがすべて正確でも、バックテストが明日の情報を使っていることがあります。何年分もの履歴に今日まで生き残った資産だけを使い、どの市場が流動性を保ち、上場を続け、残す価値があるかをあらかじめ知っていたかのように戦略を検証すると、そうなります。

ユニバースの構築も戦略の一部です。実運用システムが各判断時点で利用可能な資産からしか選べなかったのなら、バックテストも同じ制約を守る必要があります。その制約を消してしまう近道が、よく3つ使われています。

誤り1:今日のリストを全期間のバックテストに使う

今日、時価総額上位50の暗号資産無期限先物市場を選び、2021年からバックテストするとします。このリストからは、消滅したり、流動性を失ったり、上場廃止になったりした銘柄が除外されます。また、当時まだ存在していなかった可能性のある市場を、過去の時点でも利用できたことにしてしまいます。

歪みは見落としやすいものです。失敗した資産がサンプルから消えているため、戦略が実際以上に安定して見えます。たとえば、モメンタムのルールは今日の50市場では非常に優秀に見えても、当時の戦略なら、後に暴落したり取引所での上場を失ったりした銘柄に何度も資金を配分していたかもしれません。結果を知ったうえで選んだポートフォリオを検証したことになります。

銘柄の採用状況を日付付きの記録として作りましょう。各資産について、採用可能になった時期、採用対象でなくなった時期、その理由を記録します。リバランスのたびに、その時点で利用可能な情報だけを使ってルールを適用します。市場は実際に上場した後、必要なウォームアップ期間を経て採用します。上場廃止になる場合は、最終ポジションの決済や精算方法を定義しておきましょう。その銘柄の行を削除しても、決済ルールにはなりません。

誤り2:判断時点より後のデータで測った統計量を使って順位付けする

ユニバースを過去のものに限定しても、採用ルールが将来まで含む期間を使えば情報が漏れます。「毎月、流動性上位20銘柄を取引する」というルールは妥当に聞こえます。しかし、その月に取引する銘柄の流動性を、その月全体のデータで順位付けしていたら問題です。

月最初の取引日にリバランスするとします。その月の平均売買代金で順位を付けると、1日目に採用条件を満たしていたかを決めるために、残りの3週間の情報まで使ってしまいます。歪みは、実現可能な取引規模が異常に良く見える形で現れがちです。月の後半に流動性が低下した資産を戦略が避けているものの、エントリー時点ではその変化を知ることはできなかったはずです。

測定期間の締め切りを選定時点より前に設定します。月初の取引日にリバランスするなら、前の取引日までに完了した直近20セッションで順位付けできます。そのうえで、約定までの遅れを明示しましょう。昨日の終値で順位付けするなら、想定する運用手順で今日の寄り付きに注文を出せますか?

選定ルールポイント・イン・タイムでの方法よくある情報漏れ
売買代金上位20銘柄リバランス前に終了したセッションで順位付けリバランス日や対象月のデータを含める
取引所に上場していること上場・上場廃止の実効時刻を使う過去の日付に現在のシンボル一覧APIを使う
最低履歴期間選定時点までに得られた観測値を数えるフィルター通過に将来までの生存を要求する

誤り3:履歴データの欠落を、資産が採用対象外だった証拠として扱う

データベンダーのアーカイブが、過去の市場を完全に記録しているとは限りません。シンボルが見つからない理由として、資産が当時存在しなかった、取引所が命名規則を変更した、ベンダーが上場廃止銘柄のデータを保管していなかった、単に配信データに欠損がある、といった可能性があります。それぞれ意味合いは異なります。

歪みは、説明のつかない穴があるのに整然として見えるユニバースに現れます。研究者は十分なルックバック期間を求め、それを満たさない銘柄をいつのまにか除外しがちです。これは妥当なウォームアップ条件の場合もありますが、新規上場銘柄を意図的に除外することにもなります。さらに、失敗した市場にデータ欠損が集中していると、「完全なデータのみ」という条件が別のサバイバーシップ・フィルターになってしまいます。

採用資格、データの有無、戦略のウォームアップを別々の事実として記録しましょう。各日付で資産を除外した理由を残します。欠損を目立たない削除に変えず、リサーチ台帳に記録してください。データソースから市場の上場状況や取引可能性を確認できない場合は、その旨を明記し、その不確実性に結果がどの程度左右されるかを測定しましょう。

再現可能なユニバースにする

有効な監査は、過去のリバランスを1回選ぶところから始められます。日付付きの上場記録と、その締め切り時点で利用できたデータから候補リストを再構築します。完了した観測値だけを使って順位付けの入力値を計算し直し、得られた採用銘柄をバックテストで実際に使ったリストと比較します。

実行時のルール、締め切り、採用判断、データソースのバージョンを実行結果とともに保存します。ある日付に、なぜ1つの資産が採用され、別の資産が採用されなかったか説明できないなら、戦略が優位性を見つけたのか、未来を反映したサンプルを引き継いだだけなのか、まだ判断できません。

ユニバースの誤りが、あり得ない価格として表れることはめったにありません。都合のよい市場でなくなった市場を、戦略が都合よく避けているように見える形で現れます。

サバイバーシップ・バイアスポイント・イン・タイム・データユニバース構築バックテスト
← 記事一覧