2026年10月23日 · リサーチ

データが悪化すると、戦略のSharpe比も改善することがある

データが悪化すると、戦略のSharpe比も改善することがある

データを悪くしたあとで、バックテストがより説得力のある結果に見えることがあります。見苦しい約定値を除外し、欠損を整った価格で埋めれば、Sharpe比が上がるかもしれません。その改善は警告のサインになり得ます。クリーニングのルールが、戦略の生き残りに必要な市場環境そのものを消し去った可能性があるからです。

データ品質は重要です。買い気配と売り気配の逆転や取引の重複があれば、誰も実際には約定できなかった価格での約定が生じることがあります。一方、不都合な観測値を消すフィルターも、モデル上の選択です。新しいシグナル特徴量と同じくらい慎重に扱いましょう。

価格が悪いデータだと判断できるのは、どんなときでしょうか?

まず、その観測値が何を表しているかを考えます。市場の通常水準から大きく離れた取引は、破損した記録かもしれませんし、流動性の薄い市場で実際に流動性を掃き取った取引や、特定の取引所で起きたイベントかもしれません。出来高ゼロの1-minute足は取引がなかったことを意味する場合がありますが、足そのものの欠損はフィードの障害かもしれません。それぞれ適切な処理は異なります。

価格が短期移動平均を1%下回ったときに買い、平均価格で手仕舞う単純な平均回帰戦略を考えてみましょう。流動性の薄い夜間に、ある取引が直前の価格を1.2%下回って成立し、その後市場が急反発します。この約定が実際のものなら、指値注文を出していた戦略は約定できたかもしれません。執行可能な気配値に裏付けられていない誤ったティックなら、その約定を計上することで、存在しない優位性を作り出してしまいます。

足を削除すれば自動的に安全になるわけではありません。戦略の注文が市場に残っていた可能性があり、次の実取引で約定したかもしれません。信頼できるリプレイでは、戦略が何を観測できたか、注文が何に対して現実的に執行できたかをモデル化する必要があります。

クリーニングのルールは結果にどう影響するでしょうか?

明示したデータ処理をいくつか適用して戦略を実行し、結果の変化を比較します。元データを保持し、除外や修正のたびに理由を記録します。そのうえで、結果がどの程度こうした判断に左右されるかを報告します。

データ処理期待できる効果バックテストへのリスク
取引所が公表したエラー範囲を外れる約定値を除外する無効と判明している記録が極端な値を生むのを防ぐ相場急変時の正当な取引を誤分類するおそれがある
欠損区間に直近の価格を引き継ぐギャップでインジケーターが動かなくなるのを防ぐ実際には取引がなかった価格を作り出す
直近の取引価格ではなく、複数市場を統合した気配値を使う表示された執行価格をより適切に把握できる気配数量、取引所へのアクセス、キュー内の優先順位も依然として影響する
統計的なしきい値で外れ値の足をすべて削除する極端な値への感度を下げる戦略の損失の大半が生じる実際のストレス期間を削除するおそれがある

フィルターなしの実行でSharpe比が0.9、足の0.8%を除外した実行で1.4に上がったとします。それだけでデータ品質が改善したとは言えません。除外した足がボラティリティ急上昇時期に集中しているか、P&Lの無視できない割合を占めているか、そして結果を見る前に除外ルールを定めていたかを確認しましょう。

データ例外台帳を作成しましょう。データソース、タイムスタンプ、影響を受けたフィールド、処理の理由、戦略のパフォーマンスを確認する前後のどちらで判断したかを記録します。

クリーニングによって優位性が変わったか、どう検証すればよいでしょうか?

戦略を固定し、同じ期間について、妥当と思われる複数の処理方法を比較します。可能なら元データでのリプレイ、根拠を記録した修正セット、曖昧さが残る観測値に対する保守的な執行ケースを含めます。各実行についてSharpe比とともに、取引回数、売買回転率、ドローダウン、影響を受けた区間のP&L寄与を報告します。

次に、変化した取引を詳しく調べます。怪しい約定値を少数除外しただけで戦略の上位の勝ち取引が消えるなら、該当記録を1件ずつ確認しましょう。損失が消える場合も同じように精査します。バックテストに不利なときだけ慎重に扱うルールは、すでにリサーチの一部になっています。

再現可能な調査にするため、ベンダーのファイルまたはそのチェックサム、クリーニングのコード、例外リストにバージョンを付けます。ベンダーが過去のデータを改訂することがあります。次回の実行で、戦略が変わったのか入力データが変わったのかを判別できるようにしましょう。

でも、クリーニングは必要ですよね?

はい。明らかに破損した記録を残せば、架空の取引を生んだり、ボラティリティを歪めたり、インジケーターを壊したりすることがあります。元のフィードが真実そのものだと装うべきでもありません。ここでの実務的な要点はもっと限定的です。クリーニングはバックテストがどの市場を再現していると主張するかを変え得るため、根拠を示し、ルールを固定し、感度を確認する必要があります。

データ修正でパフォーマンスが改善したら、どの観測値を削除したのか、エクイティカーブを見ていなくても同じ判断をしたかを問いましょう。答えに確信が持てないなら、両方のバージョンをリサーチ記録に残します。その差も結果の一部です。

データ品質バックテスト定量リサーチ過剰適合
← 記事一覧