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

月足の反発に優位性はあるか — 28検定の結果

公開 2026-08-25 / 対象: 日経平均月足+個別464銘柄 / 期間: 1984-12〜2026-08(指数)・1999-05〜2026-08(個別) / 検証者: RegimeNote運営事務局
検証日
2026-08-25
データ期間
指数 1984-12〜2026-08(501本) / 個別 1999-05〜2026-08
対象・N
日経平均の月足 501本 / 個別 464銘柄・131,250月足 / 28検定
結論
統計的な優位性は確認できませんでした(28検定すべてで基準に届かず)
最小検出可能効果
指数 ±1.41〜4.23pt / 個別 ±0.56〜1.68pt(月次リターン・28検定の幅)この検定設計(サンプル数・クラスタ補正・|t| ≥ 2)で見える下限です。これより小さい効果は、存在しても検出できません。「差が出なかった」は「効果がゼロ」ではありません。
使用API
/api/monthly-backtest / /api/monthly-backtest?stocks=1

「月足で反発を見る手法には優位性がある」——よく語られる見方です。反発の定義を7つ用意し、期間2つ・系統2つの計28通りで測りました。結果は、どの定義でも当サイトの判定基準を満たしませんでした。

この検証で守ったこと

定義は測る前に固定しました。件数が検定に足りるかを数えるための下調べで、予備的な平均値を先に見てしまっています。その事実をここに開示したうえで定義を凍結し、以後変更していません。隠すと「結果を見てから定義を選んだのではないか」という疑いを残すためです。

判定は2つの方法の両方で |t| ≥ 2 を要求しました。片方だけで越えるものは、分析の選び方に依存しているとみなして採りません。超過は全期間平均との差で測ります(指数を指数で測る以上、指数ベンチマークの超過リターンは意味を持たないため)。

28検定を回しています。|t| ≥ 2 は偶然でも1〜2件は出る本数です。だから全定義・全期間の結果を下に並記します。

そのうえで、この設計で「見える下限」も出しました。標準ヘッダの最小検出可能効果がそれで、指数なら 月次リターンで ±1.41〜4.23pt、個別なら ±0.56〜1.68pt です。これより小さい効果は、実在しても今回のデータ量では見えません。たとえば「反発の翌月は平均0.5pt高い」という程度の効果が指数に本当にあったとしても、この検証はそれを検出できません。したがって本記事の結論は「効果はゼロだった」ではなく、「この大きさより上の効果は無かった」です。下限は定義ごとに違い、発火が少ない定義ほど大きくなります(前月−10%超は2年に1回程度しか起きないので ±4.18pt まで見えません)。

① 指数(日経平均月足501本・1984年12月〜)

指数は生存バイアスを受けません。結論を担うのはこちらです。全期間平均は翌月 +0.42% / 3ヶ月後 +1.25%。

定義期間発火エピソードep平均ep t非重複平均非重複 t判定
① 2本連続陰線後の陽転1ヶ月5353-0.19%-0.68-0.19%-0.68差は出なかった
① 2本連続陰線後の陽転3ヶ月5353+1.20%-0.04+1.20%-0.04差は出なかった
① 3本連続陰線後の陽転1ヶ月2424-1.62%-1.35-1.62%-1.35差は出なかった
① 3本連続陰線後の陽転3ヶ月2424+0.99%-0.15+0.99%-0.15差は出なかった
② 長下ヒゲ(下ヒゲ÷実体 ≧ 2.0・陽線)1ヶ月4238+0.23%-0.22+0.38%-0.06差は出なかった
② 長下ヒゲ(下ヒゲ÷実体 ≧ 2.0・陽線)3ヶ月4238+2.20%+0.59+2.46%+0.76差は出なかった
③ 前月 −5%超の下落からの当月1ヶ月8062+0.48%+0.09+0.77%+0.46差は出なかった
③ 前月 −5%超の下落からの当月3ヶ月8062+0.63%-0.49+1.36%+0.07差は出なかった
③ 前月 −10%超の下落からの当月1ヶ月2018+2.03%+0.83+2.14%+0.83差は出なかった
③ 前月 −10%超の下落からの当月3ヶ月2018+2.06%+0.43+2.61%+0.66差は出なかった
④ 12ヶ月移動平均にタッチして陽線1ヶ月6948-0.06%-0.67+0.46%+0.07差は出なかった
④ 12ヶ月移動平均にタッチして陽線3ヶ月6948+0.46%-0.62+1.67%+0.34差は出なかった
④ 24ヶ月移動平均にタッチして陽線1ヶ月3731-0.81%-1.38-0.37%-0.93差は出なかった
④ 24ヶ月移動平均にタッチして陽線3ヶ月3731-0.37%-0.88+0.25%-0.47差は出なかった

14検定すべてで差は出ませんでした。|t| の最大は 1.38(判定基準の 2 に遠く及びません)。下調べで目立って見えた「前月 −10%超」も、翌月 +2.03%(全期間平均 +0.42%)に対して t = +0.83 です。点推定の大きさは結論になりません。

② 個別銘柄(464銘柄・131,250月足・1999年5月〜)
この系統の解釈規則は、結果を見る前に固定しました。
生存バイアスは反発側に有利に働く。いまの上位523銘柄は過去の急落から立ち直った集団であり、倒れた銘柄が除外されているため。
・その追い風があっても有意でない場合は、より強い否定として結論に使う。
・有意だった場合はバイアスの疑いを除けないため、肯定の証拠にはしない(参考値として並記するだけ)。
個別系統は否定の検出力を上げる片側の検査としてのみ結論に寄与する。結論を担うのは指数系統。
定義期間エピソード暦月ep平均ep t月平均月 t判定
① 2本連続陰線後の陽転1ヶ月13,700296+1.13%-0.28+1.12%-0.10差は出なかった
① 2本連続陰線後の陽転3ヶ月13,597294+3.59%+0.18+3.56%+0.00差は出なかった
① 3本連続陰線後の陽転1ヶ月6,483288+1.34%+1.44+1.28%+0.30差は出なかった
① 3本連続陰線後の陽転3ヶ月6,434286+3.52%-0.12+3.50%-0.08差は出なかった
② 長下ヒゲ(下ヒゲ÷実体 ≧ 2.0・陽線)1ヶ月10,738293+0.93%-2.30+0.96%-0.63差は出なかった
② 長下ヒゲ(下ヒゲ÷実体 ≧ 2.0・陽線)3ヶ月10,660291+2.95%-3.28+2.90%-1.09差は出なかった
③ 前月 −5%超の下落からの当月1ヶ月20,797300+1.23%+1.08+1.28%+0.36差は出なかった
③ 前月 −5%超の下落からの当月3ヶ月20,599298+3.85%+1.87+3.85%+0.43差は出なかった
③ 前月 −10%超の下落からの当月1ヶ月10,427296+1.19%+0.25+1.48%+0.63差は出なかった
③ 前月 −10%超の下落からの当月3ヶ月10,297294+3.64%+0.34+3.87%+0.37差は出なかった
④ 12ヶ月移動平均にタッチして陽線1ヶ月14,972297+0.38%-10.38+0.88%-0.99差は出なかった
④ 12ヶ月移動平均にタッチして陽線3ヶ月14,806295+2.78%-4.96+3.13%-0.73差は出なかった
④ 24ヶ月移動平均にタッチして陽線1ヶ月10,073297+0.11%-11.47+0.76%-1.30差は出なかった
④ 24ヶ月移動平均にタッチして陽線3ヶ月9,972295+2.07%-7.77+2.57%-1.66差は出なかった

こちらも14検定すべてで差は出ませんでした。反発側に有利な追い風がある集団で測ってなお届かないので、規則どおりより強い否定として結論に使います。

エピソード単位の t 値だけを見ると −11.47 のような大きな値が出ますが、これは読んではいけない数字です。銘柄は同じ月に一緒に動くので、14,972 件のエピソードを独立した標本として扱うと標準誤差が小さく出すぎます。暦月でまとめ直すと同じ項目が −0.99 になります。この差そのものが、クラスタ補正を併走させる理由です。

データ衛生(結果を見る前に固定)

個別の月足には壊れた記録が混じっていました。たとえば 8303 の 2023年8月は、始値 2824・安値 2791 に対して高値と終値が 553億という値でした(上場廃止の直前)。これを1件含めるだけで、全体の平均月次リターンが +14,972% になります。

そこで「同一バーの中で 高値÷安値 が 10 以上なら壊れた記録」とみなし、その月以前を切り捨てました(リターンが不連続をまたがないようにするため)。実測 144,258 本の分布は中央 1.136・p99.9 が 2.35・p99.99 が 5.32 で、10以上は9本(0.006%)しかありません。これは「大きなリターン」ではなくバー内の不整合なので、落としても方向に偏りません。本番では 6銘柄・673ヶ月が該当しました。

限界
再現方法

指数は /api/monthly-backtest、個別は /api/monthly-backtest?stocks=1 がそのまま同じ数値を返します(どちらも noindex の管理用)。月足の取得には range=50y を使っています —— Yahoo の range=max は月足で168本しか返さず、開始日が同じに見えるため「これが全部だ」と誤認します。

この先の探索(別記事・結論ではありません)

本記事は事前に定義を固定した検証です。これとは別に、反発の定義とレジーム条件を掛け合わせた探索も行いました。目的は結論を出すことではなく、今後どの仮説を本検定するかを決めることです。結果は 月足の反発 × レジーム条件(探索) に分けてあります。あちらで見つかったものは結論ではありません。

本記事の数値は検証日時点のものです。当サイトのデータは毎営業日更新されるため、時間の経過とともに最新のAPI応答とは差が生じます。四半期ごとに掲載数値と結論を最新データで再検証し、結論が変わった場合は本文を改訂して記事末尾に改訂履歴を残します。
改訂履歴
2026-08-25 公開(初版)
2026-08-26 標準ヘッダに最小検出可能効果を追加。限界に「機械的ルール単体である」ことと、4検定で2つの方法が同じ計算になっている点を追記。探索記事への導線を追加(数値と結論は変更なし)
スポンサーリンク
マーケットボード ・ このサイトについて ・ 起点日ランキング ・ 状態スクリーナー ・ 先物・オプション ・ 市場体温計 ・ 類似局面 ・ シグナル台帳 ・ 決算カレンダー ・ 予報の答え合わせ ・ 検証レポート ・ 銘柄一覧 ・ 日次アーカイブ ・ 週間セクターレポート ・ 解説記事 ・ 更新履歴 ・ プライバシーポリシー・免責事項 ・ お問い合わせ
当サイトは投資に関する情報提供を目的としており、金融商品取引法に基づく投資助言・勧誘を行うものではありません。 掲載情報の正確性・完全性は保証されません。株価データは Yahoo Finance の提供情報(約20分遅延・終値ベース)、 適時開示情報はTDnet(適時開示情報閲覧サービス)に基づきます。投資の最終判断はご自身の責任において行ってください。