OOSとは?売買ルールを作るのに使っていないデータで試す理由

「過去のデータでうまくいったなら、その売買ルールは本番でも使えるの?」

結論からいうと、それだけではまだ分かりません。

30秒で結論

OOS(オー・オー・エス)とは、「ルールを作るときには使わず、最後のテスト用に残しておいた別のデータ」で、そのルールを試すことです。Out of Sampleの略です。

学校のテストでたとえると簡単です。

答えを見ながら何度も練習した問題で100点を取っても、本当に理解できたかは分かりません。
そこで、練習では一度も見なかった問題を解いてみます。

株の売買ルールでも同じです。

・ルールを作るために使うデータ
・最後に確認するため、見ずに残しておくデータ

を分けます。

OOSは「初めて見る問題でも通用するかを確かめるテスト」と覚えれば十分です。

初心者用語集:OOSを用語集で確認する

なぜ同じデータだけで試すと危ないの?

たとえば、過去の株価を見ながら売買ルールを作っているとします。

負けた場面を見るたびに、
「この条件を少し変えよう」
「ここも直そう」
と何度も調整すると、その過去の期間では成績の良いルールを作れるかもしれません。

でも、それは過去の答えを覚えすぎただけかもしれません。

このように、過去のデータに合わせすぎることを「過学習(かがくしゅう)」と呼びます。
ここでは、「過去問の答えを丸暗記したため、少し違う新しい問題ではうまく解けなくなる状態」と考えてください。

OOSは、その合わせすぎを見つける方法の1つです。

バックテストとOOSは何が違う?

バックテストとは、過去の株価データを使って、「もし昔のこの時期に、決めた売買ルール通りに売り買いしていたら、得をしていたか損をしていたか」をコンピューターなどで試すことです。

OOSは、そのバックテストで使うデータをどう分けるかという考え方です。

たとえば過去2年分のデータがあるなら、

・最初の1年でルールを考える
・残りの1年は途中で見ず、最後の確認に使う

という分け方ができます。

後半のデータをルール作りの途中で何度も見てしまうと、「初めて見る問題」ではなくなるので注意が必要です。

今やっている検証はOOSなの?

いいえ。

この実験室で現在行っている20日分の検証は、厳密なOOSとは呼んでいません。

今は、株式市場が開いている日を20日分、同じ売買ルールで記録しています。
土日や祝日など、市場が休みの日は数えません。

この検証では、その日の取引がすべて終わったあとに確定した株価の記録を使い、
「もし決めたルール通りに売買していたら、結果はどうなっていたか」
を振り返ります。

この振り返りを、このサイトでは「Daily Replay(デイリー・リプレイ=毎日の振り返り検証)」と呼んでいます。
実際のお金を使った売買ではありません。

今の検証は、ルールを途中で変えずに同じ条件で記録するためには役立ちます。

ただし、
「ルール作りに使ったデータ」と
「一度も見ずに残しておいた確認用データ」
を最初から厳密に分けた試験ではありません。

そのため、このサイトでは現在の検証を「OOSで検証済み」とは書きません。

なぜ20日分、同じルールを続けるの?

月曜日に負けたから火曜日にルールを変更し、火曜日にも負けたから水曜日にも変更したとします。

これでは毎日違う方法を試すことになり、最後にどのルールが良かったのか比べにくくなります。

そこで現在は、

  1. 今のルールを変えない
  2. 株式市場が開いている日を20日分記録する
  3. 途中の勝ち負けだけを見てルールを変えない
  4. 新しい案は別のテストとして比べる

という順番で進めています。

OOSで良い結果なら、将来も勝てる?

いいえ。

OOSで良い結果が出ても、将来の利益が保証されるわけではありません。

市場の状況は変わります。
売買にかかる費用や、どの株(どの会社の株)を試したか、試した期間によっても結果は変わります。

OOSは未来を当てる魔法ではありません。

「過去の答えに都合よく合わせただけのルールではないか」を、もう一段厳しく確かめる方法です。

初心者は3つだけ覚えればOK

OOSという言葉を見たら、まず次の3つを確認すれば十分です。

  1. どのデータを見ながらルールを作った?
  2. どのデータを最後の確認用として見ずに残した?
  3. 確認用データを見たあと、都合よくルールを変えていない?

OOSを入口に、次はこの順番で読む

このサイトでは、OOSを単独の用語として終わらせず、実際の検証へつなげています。次の順番で読むと、バックテストの数字をどう疑い、どう残すかが分かりやすくなります。

  1. 過学習とは? — なぜ過去データへ合わせすぎると危ないのか
  2. Walk-forward検証とは? — 時間を前へ進めながら別期間で確かめる方法
  3. 売買コストとスリッページ — コストを入れると成績がどう変わるか
  4. Profit Factorとは? — 勝率だけでは見えない利益と損失のバランス
  5. 期待値とは? — 勝率・利益幅・損失幅をまとめて見る方法
  6. 225銘柄×50戦略の実測 — 前半では良く見えた戦略が最後の未使用期間で崩れた例

最初に1本だけ読むなら、次はWalk-forwardがおすすめです。 OOSを1回だけ分ける考え方から、期間を前へずらして何度も確かめる考え方へ進めます。

まとめ

OOSは、難しい仕組みではありません。

「練習に使っていない初見問題で、もう一度テストする」

これが基本です。

現在のAI株システムでは、同じルールを20日分続けて記録していますが、これは厳密なOOSとは分けています。

将来、候補となる売買ルールができたら、ルール作りに使っていない別のデータで確かめる工程を別に行う方針です。

※この記事は個人的なAI株システムの開発・検証記録です。過去データを使った検証結果は将来の利益を保証するものではなく、特定銘柄の推奨や投資助言を目的としません。

類似投稿