相場の状態を、記録し検証する
RegimeNote は毎営業日の市場データを記録し、過去と比べています。このサイトについて →
RegimeNote / 検証レポート / 類似相場検索

類似相場検索は明日を教えてくれるのか — 463営業日・4通りの基準での検証

公開 2026-08-16 / 対象: 日経225の日次相場状態 / 期間: 2024-09-19〜2026-08-14(463営業日) / 検証者: RegimeNote運営事務局
SHAREX で共有LINEはてブ
検証日
2026-08-16
データ期間
2024-09-19〜2026-08-14
対象・N
日経225の日次相場状態 / 463営業日(225銘柄から生成)
結論
予測力は検出できず。4通りの距離基準×3通りの期間の全12通りで統計的な優位性なし。あわせて類似上位20日が実質8局面という構造的な問題を確認
最小検出可能効果
±0.47pt(翌日・p10)〜 ±2.81pt(5営業日後・p1)この検定設計(サンプル数・クラスタ補正・|t| ≥ 2)で見える下限です。これより小さい効果は、存在しても検出できません。「差が出なかった」は「効果がゼロ」ではありません。
使用API
/api/similar-backtest ・ /api/similar
本記事の数値は検証日時点のものです。当サイトのデータは毎営業日更新されるため、時間の経過とともに最新のAPI応答とは差が生じます。四半期ごとに掲載数値と結論を最新データで再検証し、結論が変わった場合は本文を改訂して記事末尾に改訂履歴を残します。

「今日と似た相場は過去にいつあり、その後どうなったか」——直感的で、実際いくつものサービスが 同種の機能を提供しています。当サイトも類似局面として実装しました。 ではそれは、明日を教えてくれるのでしょうか。指標を出す以上は検証とセットにするという 恒久ルールにもとづいて検証しました。

結論
  1. 予測力は検出できませんでした。距離の基準4通り × 期間3通りの全12通りで、 統計的な優位性は確認できていません。
  2. 「類似する20日」は20の事例ではありません。連続した日をまとめると、 延べ20日が実質8局面にしかなりません。 これは類似検索という機能形式そのものに内在する問題です。
  3. 「有意でなかった」のではなく「検定できなかった」ものもあります。 20営業日後は、窓が重ならない基準日だけを取るとn=10〜14しか残らず、 判断を下せる水準にありません。この区別を曖昧にしないことが検証の質だと考えています。

1. 何を検証したか

各営業日の相場を、10個の指標からなる状態として表しました。25日騰落レシオ/5日騰落レシオ/日経平均の5日騰落率/同20日騰落率/Breadth Gap/値上がり銘柄比率/上位5銘柄の寄与集中/セクター寄与の分散/VIX水準/ドル円の20日騰落率です。

各指標を過去の分布で標準化し、2つの日のあいだの距離を「1指標あたり平均何σ離れているか」として計算します。距離が小さいほど似た相場です。この距離で過去を検索し、見つかった類似日のその後の日経平均の動きを集計します。

検証の問いは単純です。「類似日のその後の平均」が高い日は、実際にその後よく上がったのか。

検索は各営業日についてその時点で入手できた情報だけでやり直しています。標準化に使う分布はその日までのもの(未来の分布で今日を測らない)、候補は20営業日以上前の日に限り、類似日の「その後」も検索時点で確定しているものだけを採用しています。

2. 「似ている」の基準をどう決めたか

バックテストの成績が最も良く出る距離を選ぶことは禁じ手です。それは当サイトが重みの調整を拒否してきた原則の閾値版で、いくつも試して一番良かったものを採れば、偶然の山を拾うだけになります。

そこで距離の分布そのものから決めました。20営業日以上離れた全ペア97,903組の距離を出し、その分位点を基準にします。ここにリターンの情報は一切入っていません。

全ペア距離の分位点距離10件以上の類似日がある営業日エピソード数の中央値延べ日数の中央値
下位1%0.62218.1%11
下位2.5%0.7144%33
下位5%(採用)0.79363.1%58
下位10%0.89681.2%820
当サイトが採用しているのは下位5%(距離0.793)です。4通りすべてで検証し、結論が基準に依存しないことを確認しています。

この分布には、それ自体で意味のある数字があります。97,903組の最小距離が0.305——2年でもっとも似ている2日ですら、1指標あたり平均0.305σ違います。中央値は1.324です。「本当に似た日」は、思っているよりずっと少ない。

3. 類似上位20日は、20の事例ではない

この記事でもっとも重要な指摘です。

類似検索が「似ている日」を20日返したとき、それを20の事例だと思って読むのが自然です。「過去20回、こういう相場がありました」と。しかし実際には、そうなっていません。

相場の状態は数日単位で連続します。ある急落局面が3日続けば、その3日はどれも今日と似ていると判定され、3件として数えられます。つまり「20日」の中身は、同じ出来事を何度も数えたものである可能性が高いのです。

例えるなら、ある薬の効果を20人で確かめたつもりが、実は3人を週に何度も測っていただけ、という状態です。人数は20に見えても、独立した事例は3しかありません。

そこで5営業日以内に隣り合う類似日を1つの「局面(エピソード)」にまとめて数え直しました。

距離の基準延べ日数の中央値エピソード数の中央値延べ日数のp90エピソード数のp90
下位1%1175
下位2.5%33179
下位5%852011
下位10%2082012
延べ日数とエピソード数の乖離が、そのまま「重複して数えていた分」です。

もっとも緩い基準では、延べ20日が実質8局面でした。半分以下です。当サイトが採用している下位5%の基準でも、延べ日数の中央値8日に対しエピソード数の中央値は5です。

したがって検証では、予報値を「エピソードごとに平均してから、エピソード間で平均する」方式にしました。長く続いた局面が結果を支配しないようにするためです。表示側でも必ず「類似局面 9回(延べ20日)」の形式で出しています。「過去20回ありました」と読ませないための設計です。

この問題は当サイト固有のものではなく、類似検索という機能形式に必ず付いてまわります。同種の機能で「類似日20件」とだけ表示されている場合、その20件が何局面なのかは確認する価値があります。

4. 結果:全12通りで検出できず

距離の基準期間基準日数素の相関非重複サンプリングブートストラップ区間月クラスタt判定
下位1%翌営業日530.272n=53 / 0.272[0.018, 0.551]1.33検出できず
下位1%5営業日後530.076n=21 / -0.148[-0.206, 0.445]-0.53検出できず
下位1%20営業日後53-0.112n=10 / 検定不能[-0.235, 0.251]1.31検出できず
下位2.5%翌営業日129-0.021n=129 / -0.021[-0.161, 0.123]0.55検出できず
下位2.5%5営業日後1290.033n=40 / 0.076[-0.198, 0.287]-0.05検出できず
下位2.5%20営業日後129-0.165n=13 / 検定不能[-0.26, 0.201]0.24検出できず
下位5%翌営業日185-0.081n=185 / -0.081[-0.235, 0.053]-1.74検出できず
下位5%5営業日後1850.11n=48 / 0.147[-0.065, 0.317]0.95検出できず
下位5%20営業日後185-0.139n=14 / 検定不能[-0.275, 0.181]-0.1検出できず
下位10%翌営業日238-0.115n=238 / -0.115[-0.233, 0.031]-1.22検出できず
下位10%5営業日後2380.056n=55 / -0.033[-0.119, 0.23]1.43検出できず
下位10%20営業日後238-0.119n=14 / 検定不能[-0.323, 0.281]1.04検出できず
「素の相関」は各営業日を独立とみなした場合。「非重複サンプリング」は前方の観測期間が重ならないよう基準日を間引いたもの(この検証の主系統)。ブートストラップ区間は連続ブロックを復元抽出した相関の95%区間で、0を含めば誤差の範囲です。

翌営業日の符号一致率は53%、5営業日後は49.2%で、コインを投げるのと変わりません。

もっとも強く出たのは、もっとも厳しい基準(下位1%)の翌営業日で相関 0.272 でした。ただし基準日はわずか53日しかなく、基準をゆるめると符号ごと反転します(下位2.5%で-0.021、下位5%で-0.081、下位10%で-0.115)。関係が実在するなら基準を変えても向きは保たれるはずで、これはノイズと考えるのが自然です。

4通りの基準をすべて載せているのは、この種の反転を隠さないためです。仮に下位1%の結果だけを示せば「翌日に弱い予測力あり」と書けてしまいます。

5. 窓の重なりを補正しないと、偽の有意が出る

採用基準(下位5%)の20営業日後で、実際に起きたことを示します。

検定の方法結果読み方
素の差の検定(各営業日を独立とみなす)t = -2.15基準の2を超えている=有意に見える
月クラスタ補正(窓の重なりを考慮)t = -0.1ほぼゼロ。有意性は消える
非重複サンプリング(窓が重ならない基準日だけ)n = 14そもそも検定に足りない

日次の指標で20営業日先を見ると、隣り合う基準日の観測期間はほとんど重なります。1月10日から20営業日と1月11日から20営業日は、19日ぶんが同じ値動きです。これを独立した2つの観測として数えると、実際より多くの情報があるかのように扱ってしまい、標準誤差が小さく出すぎます。

素の検定では t = -2.15 と基準の2を超えており、これだけを見れば「有意」です。しかし月ごとに集計し直すと t = -0.1 になり、有意性は消えます。補正しなければ、ここで誤った結論を出していました。

6. 「有意でなかった」と「検定できなかった」は違う

20営業日後については、もう一歩踏み込んで書く必要があります。

窓の重なりを原理的に避けるには、基準日どうしを20営業日以上あければよいのですが、そうすると基準日は10〜14日しか残りません。2年間を20営業日で区切れば当然の帰結です。

この件数では、予測力があってもなくても検出できません。したがって20営業日後について正しい記述は「予測力がないと分かった」ではなく、「判断を下せるだけのデータがない」です。当サイトはこの2つを区別して書きます。前者は結論、後者は結論が出ていないという結論だからです。

翌営業日については窓が重ならないため、この問題は生じません(n=185)。5営業日後は中間で、非重複だと件数が減ります。表の「非重複サンプリング」欄に残った件数を明記してあるのはこのためです。

7. 予測できないのに、なぜ機能として公開するのか

Breadth Gapのときと同じ判断です。予測力の有無と、公開する価値の有無は別の問題です。

「今日の相場は、2025年3月下旬や2025年2月中旬に似ている」という情報は、明日を当てるためではなく、今の相場がどういう状態なのかを理解するために使えます。数字の羅列である相場状態に、過去の具体的な日付という手がかりが付きます。

そのうえで、当サイトの類似局面のページは次の規律で作っています。

8. 限界

9. 再現方法

本レポートの数値は当サイトの測定用APIがそのまま返しているものです。/api/similar-backtest が距離の分布・4通りの閾値・エピソード数・3種類の検定結果を返します。現在の相場に対する検索結果は /api/similar、画面は /similar です。

改訂履歴
2026-08-16 公開(初版)
SHAREX で共有LINEはてブ
ご確認ください
本レポートは過去データの集計結果であり、将来の株価を予測・保証するものではありません。 本レポートは特定銘柄の売買を推奨するものではありません。 当サイトは金融商品取引法に基づく投資助言・勧誘を行うものではなく、記載内容は情報提供を目的としています。 投資の最終判断はご自身の責任において行ってください。
スポンサーリンク
マーケットボード ・ このサイトについて ・ 起点日ランキング ・ 状態スクリーナー ・ 先物・オプション ・ 市場体温計 ・ 類似局面 ・ シグナル台帳 ・ 決算カレンダー ・ 予報の答え合わせ ・ 検証レポート ・ 銘柄一覧 ・ 日次アーカイブ ・ 週間セクターレポート ・ 解説記事 ・ 更新履歴 ・ プライバシーポリシー・免責事項 ・ お問い合わせ
当サイトは投資に関する情報提供を目的としており、金融商品取引法に基づく投資助言・勧誘を行うものではありません。 掲載情報の正確性・完全性は保証されません。株価データは Yahoo Finance の提供情報(約20分遅延・終値ベース)、 適時開示情報はTDnet(適時開示情報閲覧サービス)に基づきます。投資の最終判断はご自身の責任において行ってください。