OOSとは?売買ルールを作るのに使っていないデータで試す理由
「過去のデータでうまくいったなら、その売買ルールは本番でも使えるの?」
結論からいうと、それだけではまだ分かりません。
30秒で結論
OOS(オー・オー・エス)とは、「ルールを作るときには使わず、最後のテスト用に残しておいた別のデータ」で、そのルールを試すことです。Out of Sampleの略です。
学校のテストでたとえると簡単です。
答えを見ながら何度も練習した問題で100点を取っても、本当に理解できたかは分かりません。
そこで、練習では一度も見なかった問題を解いてみます。
株の売買ルールでも同じです。
・ルールを作るために使うデータ
・最後に確認するため、見ずに残しておくデータ
を分けます。
OOSは「初めて見る問題でも通用するかを確かめるテスト」と覚えれば十分です。
初心者用語集:OOSを用語集で確認する
なぜ同じデータだけで試すと危ないの?
たとえば、過去の株価を見ながら売買ルールを作っているとします。
負けた場面を見るたびに、
「この条件を少し変えよう」
「ここも直そう」
と何度も調整すると、その過去の期間では成績の良いルールを作れるかもしれません。
でも、それは過去の答えを覚えすぎただけかもしれません。
このように、過去のデータに合わせすぎることを「過学習(かがくしゅう)」と呼びます。
ここでは、「過去問の答えを丸暗記したため、少し違う新しい問題ではうまく解けなくなる状態」と考えてください。
OOSは、その合わせすぎを見つける方法の1つです。
バックテストとOOSは何が違う?
バックテストとは、過去の株価データを使って、「もし昔のこの時期に、決めた売買ルール通りに売り買いしていたら、得をしていたか損をしていたか」をコンピューターなどで試すことです。
OOSは、そのバックテストで使うデータをどう分けるかという考え方です。
たとえば過去2年分のデータがあるなら、
・最初の1年でルールを考える
・残りの1年は途中で見ず、最後の確認に使う
という分け方ができます。
後半のデータをルール作りの途中で何度も見てしまうと、「初めて見る問題」ではなくなるので注意が必要です。
今やっている検証はOOSなの?
いいえ。
この実験室で現在行っている20日分の検証は、厳密なOOSとは呼んでいません。
今は、株式市場が開いている日を20日分、同じ売買ルールで記録しています。
土日や祝日など、市場が休みの日は数えません。
この検証では、その日の取引がすべて終わったあとに確定した株価の記録を使い、
「もし決めたルール通りに売買していたら、結果はどうなっていたか」
を振り返ります。
この振り返りを、このサイトでは「Daily Replay(デイリー・リプレイ=毎日の振り返り検証)」と呼んでいます。
実際のお金を使った売買ではありません。
今の検証は、ルールを途中で変えずに同じ条件で記録するためには役立ちます。
ただし、
「ルール作りに使ったデータ」と
「一度も見ずに残しておいた確認用データ」
を最初から厳密に分けた試験ではありません。
そのため、このサイトでは現在の検証を「OOSで検証済み」とは書きません。
なぜ20日分、同じルールを続けるの?
月曜日に負けたから火曜日にルールを変更し、火曜日にも負けたから水曜日にも変更したとします。
これでは毎日違う方法を試すことになり、最後にどのルールが良かったのか比べにくくなります。
そこで現在は、
- 今のルールを変えない
- 株式市場が開いている日を20日分記録する
- 途中の勝ち負けだけを見てルールを変えない
- 新しい案は別のテストとして比べる
という順番で進めています。
OOSで良い結果なら、将来も勝てる?
いいえ。
OOSで良い結果が出ても、将来の利益が保証されるわけではありません。
市場の状況は変わります。
売買にかかる費用や、どの株(どの会社の株)を試したか、試した期間によっても結果は変わります。
OOSは未来を当てる魔法ではありません。
「過去の答えに都合よく合わせただけのルールではないか」を、もう一段厳しく確かめる方法です。
初心者は3つだけ覚えればOK
OOSという言葉を見たら、まず次の3つを確認すれば十分です。
- どのデータを見ながらルールを作った?
- どのデータを最後の確認用として見ずに残した?
- 確認用データを見たあと、都合よくルールを変えていない?
OOSを入口に、次はこの順番で読む
このサイトでは、OOSを単独の用語として終わらせず、実際の検証へつなげています。次の順番で読むと、バックテストの数字をどう疑い、どう残すかが分かりやすくなります。
- 過学習とは? — なぜ過去データへ合わせすぎると危ないのか
- Walk-forward検証とは? — 時間を前へ進めながら別期間で確かめる方法
- 売買コストとスリッページ — コストを入れると成績がどう変わるか
- Profit Factorとは? — 勝率だけでは見えない利益と損失のバランス
- 期待値とは? — 勝率・利益幅・損失幅をまとめて見る方法
- 225銘柄×50戦略の実測 — 前半では良く見えた戦略が最後の未使用期間で崩れた例
最初に1本だけ読むなら、次はWalk-forwardがおすすめです。 OOSを1回だけ分ける考え方から、期間を前へずらして何度も確かめる考え方へ進めます。
まとめ
OOSは、難しい仕組みではありません。
「練習に使っていない初見問題で、もう一度テストする」
これが基本です。
現在のAI株システムでは、同じルールを20日分続けて記録していますが、これは厳密なOOSとは分けています。
将来、候補となる売買ルールができたら、ルール作りに使っていない別のデータで確かめる工程を別に行う方針です。
※この記事は個人的なAI株システムの開発・検証記録です。過去データを使った検証結果は将来の利益を保証するものではなく、特定銘柄の推奨や投資助言を目的としません。