トレーディングにおけるアウトオブサンプルテストとは?

システムトレードを開発・検証する際に避けて通れない課題が「過剰適合(オーバーフィッティング)」です。過去データに過度に合わせ込んだ戦略は、バックテストでは優秀に見えても、実運用では通用しないことが多々あります。これはトレード戦略の世界で繰り返し見られる典型的な失敗パターンです。

この問題を回避し、戦略の堅牢性を検証するために有効な手法が アウトオブサンプルテスト です。


目次

アウトオブサンプルテストの意義

アウトオブサンプルテストとは、過去のヒストリカルデータを二つに分割し、戦略の開発と検証を分離する手法です。具体的には、インサンプル(In-Sample)とアウトオブサンプル(Out-of-Sample)という二つの期間を設定します。

インサンプルとは、戦略の開発に使用する期間です。ここでは、観察、仮説の構築、パラメータの調整、シグナルルールの改良など、すべての設計作業を行います。つまり、戦略の「設計図」を作るためのデータです。一方、アウトオブサンプルとは、戦略の検証に使用する期間です。この期間のデータは、戦略の開発には一切使用しません。インサンプルで完成した戦略を、未知のデータに対して適用し、再現性や堅牢性を確認するためのものです。

仮にデータ期間が10年あった場合、最初の7年をインサンプル期間として戦略の開発に使用し、残りの3年をアウトオブサンプル期間として検証に使用します。アウトオブサンプル期間は、戦略の構築には一切使用せず、あくまで「未知の市場環境に対して戦略が通用するか」を確認するためのものです。

10年のヒストリカルデータを「開発用(インサンプル)」7年、「検証用(アウトオブサンプル)」3年に分割した例。戦略構築と検証を明確に分離することで、堅牢性を客観的に評価できます。

この分離によって、開発時に見えていなかった未来の値動き(未知の価格の動き)に対して、戦略がどれだけ通用するかを客観的に評価できます。アウトオブサンプルで良い結果が出ることよりも、インサンプルと近しい結果が得られることの方が重要です。両者が似た傾向を示すことで、戦略が未知の市場でも通用する可能性が高まります。

実施手順

まず、テスト対象とするデータ全体のサンプルサイズを決めます。その上で、7:3や8:2、9:1といった比率でインサンプルとアウトオブサンプルを分割します。インサンプルでは戦略の観察、仮説の構築、パラメータ調整、シグナルルールの改良を行います。そして完成した戦略をアウトオブサンプルに適用し、結果を比較することで堅牢性を評価します。

例_開発用期間(インサンプル)7年:検証用期間(アウトオブサンプル)3年

アウトオブサンプルテストで比較すべき指標は限られています。特に重要なのは以下の二つです。

  • プロフィットファクター:1以上であることが必須で、理想はインサンプル時の値から±10%程度であること。インサンプルとアウトオブサンプルで近い値を示すことが堅牢性の証拠になります。
  • 1取引あたりの平均利益・損失:両期間で大きな乖離がないことが重要です。近い値を示すほど、未知の市場でも通用する可能性が高いと考えられます。
  • 勝率(Win Rate):インサンプルとアウトオブサンプルで大きく乖離していないことが重要です。勝率は戦略の再現性を示す指標であり、堅牢性の補助的な判断材料になります。

実践例:S&P500の検証

過去に作成した記事 では、2015年〜2023年をインサンプル、2024年以降をアウトオブサンプルとしてS&P500の戦略を検証しました。その際の戦略ロジックは以下です。

【構築した戦略の概要】

  • 対象銘柄:S&P500
  • ロジック:RSI(2)を使った逆張り買い戦略
  • パラメータ:買いレベル_40、売り決済レベル_90
  • 追加決済条件:ローソク足_10本経過で強制決済
  • フィルター:ADX(5)_レベル30以上
  • 手数料:0.05%/1取引
  • 検証期間:2015年1月1日〜2023年12月31日

過去の記事では、インサンプルを2015年1月1日~2023年12月31日、アウトオブサンプルを2024年1月1日~2025年10月31日として行いました。このように期間を分けてテストすることで、戦略が直近の市場環境でも通用するかを確認できます。上記の戦略でも確認してみましょう。重要なのは、インサンプルとアウトオブサンプルで近しい結果が得られることです。

■2015年1月1日~2023年12月31日までの結果

インサンプル

■2024年1月1日~2025年10月31日までの結果

アウトオブサンプル

今回の検証において、インサンプル期間では、プロフィットファクターが 1.49、平均利益額が $3605.41、平均損失額が $5302.08 という結果でした。

アウトオブサンプルでは、プロフィットファクターが 2.29、平均利益額が $5372.78、平均損失額が $5986.14 となり、特に平均損失額は非常に近い数字が出ています。これは、戦略がインサンプルとアウトオブサンプルで同様の損失傾向を示していることを意味し、堅牢性の一つの証拠となります。

比較インサンプルアウトオブサンプル
プロフィットファクター(PF)1.492.29
平均利益額$3605.41$5372.78
平均損失額$5302.08$5986.14
トレード回数163回32回
勝率68.71%71.88%

一方で、プロフィットファクターと平均利益額はアウトオブサンプルで大幅に上振れしました。これは、今回のアウトオブサンプル期間がやや短めだったことが影響している可能性があります。期間が短いと、個別のトレード結果に左右されやすく、統計的なぶれが生じやすくなります。実際の検証ではもう少し長めのアウトオブサンプル期間を用意したほうが良さそうです。

なお、勝率に関しても、インサンプルが 68.71%、アウトオブサンプルが 71.88% と近しい数字になっており、戦略の再現性と堅牢性を裏付ける結果となりました。

このような検証結果から、今回のS&P500戦略は一定の堅牢性を備えていると判断できます。


StrategyQuantXによる応用

さらに、StrategyQuantXを使えば、インサンプルとアウトオブサンプルの比率を20分割し、交互に繰り返すテストを簡単に実施できます。

全データを20分割し、インサンプルとアウトオブサンプルを交互に設定

10年前と直近では価格水準や動き方が異なるため、アウトオブサンプル期間の選び方に正解はありません。しかし、開発期間に直近のデータを交えることで、より精度の高い戦略構築と堅牢性テストが可能になります。こうした分割テストを行うことで、戦略が異なる市場環境でも安定して機能するかを確認できます。


まとめ

アウトオブサンプルテストは、システムトレードの堅牢性を検証するための必須手法です。インサンプルとアウトオブサンプルで近しい結果が出ることが重要であり、比較指標はプロフィットファクターと1取引あたりの平均利益・損失、勝率などが推奨項目です。StrategyQuantXを活用すれば、分割テストによって精度を高めることも可能です。

システムトレードの本質は「未知の市場でも通用するか」を見極めることであり、最大の障壁はオーバーフィッティングです。アウトオブサンプルテストを正しく活用し、堅牢な戦略を構築していきましょう。

次回は堅牢性テストシリーズの第二弾として、「what ifテスト」 を取り上げます。


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次