Web Lukes
📄

【MT5実測7年】日経225アノマリー徹底検証 — 月曜は『本物』、でも日付フィルターはエッジの75%が幻だった

公開日: 2026/6/24更新日: 2026/6/24

📩「月曜って上がる気がする」を、気のせいで終わらせたくなかった

日経のチャートを毎日見てると、ふと思う。

「月曜、なんか上げてる気がする」 「月末はいつも嫌な下げ方する気がする」

その"気がする"を確かめたくて、Exness の MT5 に直接つないで日経225(JP225m)を 7年分・1,806営業日 引っ張り、曜日・時間帯・日付で殴り続けた。

そして最後にもうひとつ、悪魔の囁きも検証した。

「じゃあ、一番上がりやすい日だけ買えば最強やん?」

結論を先に言う。アノマリーは半分本物。でも"日付だけ買う"は、ほぼ全部が幻やった。 これはその全記録や。

⏰ 「どの時間窓をトレードすべきか(PF/Sharpe・スプレッド込み)」は、別ブローカー(XM)で検証した姉妹記事 日経225時間アノマリー、スプレッド片道&XM半減を織り込んだ正しい評価 に凝縮済み。本記事は 曜日・日付の"実態"と、それを手法化する時の"罠" を扱う。


🔧 検証環境

Code
データ : MetaTrader5 (Exness) — JP225m (Japan 225 Index)
期間 : 2019-07-11 ~ 2026-06-24(約7年)
時間足 : H1(28,868本)→ JSTカレンダー日にリサンプル
営業日 : 1,806セッション(月〜金、出来高ゼロ日は除外)

タイムゾーンは"実証"で確定させた

時間アノマリーはTZが1時間ズレるだけで結論が全部狂う。なので推測せず裏取りした。

  • Exnessサーバー時刻は UTC(GMT+0)固定。ライブtickのepochを実UTCと突き合わせ誤差0秒
  • さらに毎年の出来高ピークを見ると、どの年も JST 9時(東京の寄り付き)が最大(2022の弱気相場年だけ米国時間23時が最大=レジームの差で、TZズレではない)

JST = サーバー時刻 + 9時間 で一本化できた。


📅 ① 曜日アノマリー:月曜の「日中」が主役

終値→翌終値(CC)と、寄付→引けの日中(OC)の両方で見た。

日経225 曜日アノマリー

曜日CC平均CC勝率日中平均日中勝率日中 t値
月+0.149%56.8%+0.217%60.4%3.16
火+0.012%47.9%+0.009%48.8%0.14
水+0.162%55.5%+0.165%56.6%2.50
木+0.035%52.9%+0.041%53.4%0.56
金+0.012%51.5%+0.014%51.8%0.20
  • 月曜は「寄ってから引けまで」が最強(日中+0.217%・勝率60.4%・t=3.16)。週末の米株高や材料を、東京時間が日中かけて織り込む
  • 水曜のCCも有意(t=2.46)。週半ばの押し目買い
  • 火曜と金曜はほぼフラット。ここに賭ける理由はない

⚠️ ただし「月曜は鉄板」と言い切ってはいけない

t=3.16に踊る前に年別を見る。月曜CC平均:

202020212022202320242025
+0.34%-0.01%-0.11%+0.16%+0.17%+0.34%

強気相場の年で効き、2022の弱気相場では負ける。月曜効果というより「上昇トレンド地合いの増幅装置」。外れ値をトリムしても+0.155%・t=2.47で残るが、レジーム依存は刻んでおくべき。


⏰ ② 時間帯アノマリー:9時の寄り付きが収益エンジン

1時間バーの「寄→引」をJST時刻ごとに平均。

日経225 時間帯アノマリー

時刻(JST)平均%/h累積寄与メモ
9時+0.030%+55.9%東京寄り付き。日中益の主エンジン(高ボラ)
22時+0.015%+18.9%米国時間入り(t=1.91)
8時-0.010%-11.1%寄り直前の調整
10時-0.008%-9.6%寄り後の利確戻し
12-13時-0.005%-12.3%昼の中だるみ
  • 9時の寄り付き一本が累積リターンの大半を稼ぐ。寄りのギャップ&初動モメンタム
  • 寄り直後(10時)と昼(12-13時)は軟調。米国時間入り(22時)は素直にプラス

🗓️ ③ 日付アノマリー:月末30日という落とし穴

暦日ごとの終値→終値を平均。

日経225 日付アノマリー

  • 中旬〜下旬の節目(6-10日、22日、25日=給料日)が強い。給与・年金フローか
  • 月末30日が全暦日で最弱。月またぎ持ち越しを嫌う調整

米株の「月替り上昇」は日経では効かない

米国株で有名な**ターン・オブ・マンス(月末数日+月初数日が上がる)**を営業日で切ると:

区分平均%/日
月末-1営業日-0.21%
月初+1営業日+0.11%
月の中盤+0.11%

日経では「月替りで上がる」どころか月末はむしろ軟調。米株の定番を輸入すると逆を踏む。稼ぎ場は中盤。


😈 ④「で、強い日付だけ買えばええやん」←これが罠だった

ここまで読んで、こう思わへんかった? 俺は思った。

「6日と8日は+0.4%、月末30日は最弱。強い日だけ買って弱い日を避ければ最強やん。」

でも待ってほしい。ランダムな数字でも、31個並べれば必ず『高い日』と『低い日』が生まれる。サイコロを31回振れば、たまたま6が多い目はある。それを「当たりの目」と呼ぶのが日付フィルターの正体かもしれん。

見抜く方法はひとつ。前後半テストや。

  1. データを**前半(2019-2022)と後半(2022-2026)**に二分
  2. 前半だけで「ベスト8日/ワースト8日」を選ぶ
  3. その日付を、**後半(=本番に相当する未知の期間)**で答え合わせ

結果①:前後半の相関は r=0.12(予測力ほぼゼロ)

日付アノマリーの前後半相関

各点が暦日。日付が本物なら右上がりの直線に乗るはず。現実は雲。前半で最高だった日が後半で平凡、前半最悪の30日が後半ゼロ近辺。「その暦日が過去どうだったか」は、未来を1ミリも予測してない。

結果②:エッジの75%が蒸発、ワースト日すらプラ転

ベスト日・ワースト日の本番成績

前半(選んだ期間)後半(本番)
ベスト8日+0.26%+0.19%
ワースト8日-0.25%+0.06%
差(エッジ)0.50%0.13%
  • ベスト-ワーストの差は 0.50% → 0.13% へ約75%蒸発
  • 前半で最悪だった日が、後半ではプラスに転じた
  • 「強い日だけ買う」戦略は、選んだ瞬間にしか存在しない

なぜ:31個のツマミ × 少なすぎるサンプル

7年あっても、ある暦日に当たる営業日はせいぜい60回。60サンプルの平均で「この日は強い」と決めるのは、コイン60回投げて表が多めの面に賭けるのと同じ。次は普通に裏返る。しかも暦日は31個のツマミ。回せば過去にピッタリ合う形は必ず出る。それは法則やなく**過去への整形(カーブフィット)**や。

📏 フィルターは「粗いほど頑健、細かいほど危険」 曜日(5択)より暦日(31択)が、暦日より「特定日付+時間帯」がもっと危ない。ツマミの数だけ、自分を騙す自由度が増える。


📝 まとめ:アノマリーは天気予報、日付フィルターは占い

問い答え
一番強い曜日は?月曜の日中(+0.22%・勝率60%・t=3.16)。次点で水曜CC
月曜は鉄板?NO。強気相場の増幅装置。2022は負け。地合いフィルタ必須
一番強い時間は?9時の寄り付き(累積+56%)。昼12-13時は中だるみ
強い日付は?中盤(6-10日・22日・25日)。月末30日が最弱
強い日だけ買えば勝てる?NO。前後半相関0.12、エッジの75%が本番で蒸発
  • アノマリー自体は実在する(月曜・9時はそこそこ残る)。でも細かい日付ルールに刻んだ瞬間、占いになる
  • バックテストで一番怖いのは、負ける手法やない。『過去にだけ完璧に勝つ』手法や
  • 対策は前後半テストひとつ。これをやらずに数字に踊るのが、一番高くつく

俺もまんまと「6日と8日…」と皮算用した側の人間や。でも、実弾で溶ける前にデータで気づけてよかった。

あなたが今ニヤニヤしてる「勝てる日付ルール」、本番に出す前に一度だけ前後半で殴ってみてくれ。生き残ったら本物。溶けたら——よかった、気づけた。🍵


🛠️ 前後半テストの再現コード

Python
import pandas as pd
# d: 日次データ(index=日付, ret_cc=終値→翌終値%)
d['dom'] = d.index.day
mid = d.index[len(d)//2]
A, B = d[d.index < mid], d[d.index >= mid] # 前半 / 後半
mA = A.groupby('dom')['ret_cc'].mean() # 前半の暦日別平均
mB = B.groupby('dom')['ret_cc'].mean() # 後半の暦日別平均
print("前後半 相関 r =", mA.corr(mB)) # → 0.12(ほぼ無相関)
best = mA.sort_values(ascending=False).head(8).index
worst = mA.sort_values().head(8).index
print("後半ベスト8 :", B[B['dom'].isin(best)]['ret_cc'].mean())
print("後半ワースト8:", B[B['dom'].isin(worst)]['ret_cc'].mean())

データは MT5 から日経225を取得し JSTカレンダー日にリサンプルした7年分。どんなフィルターでもこの数行を通すのが、自分を騙さない一番安い保険になる。

🎁おすすめツール・サービス

FX自動売買VPSなら50%OFF

キャンペーンで月1,790円〜。MT4/MT5プリインストール済み、自動復旧機能付き。14日間無料お試し。

シンクラウドデスクトップ for FX
ゴトー日EAを探しているならソースコード付

4年で資金4.7倍のバックテスト実績。ソースコード付きで自由にカスタマイズ可能。

ゴトー日EA Ultimate版(3,980円)

※上記リンクにはプロモーション(広告)が含まれています

🔮
MEMBERSHIP

量子相場謀略|ホソノP

ブログでは書けない本音のトレード戦略とEA開発の裏側を公開。 データに基づいた検証で、再現性のある手法だけをお届けします。

✓EAソースコード公開
✓バックテスト生データ共有
✓リアルタイム相場分析
✓メンバー限定記事
メンバーシップに参加する※ noteアカウントで簡単登録

📚あわせて読みたい

📄

😏 「JP225の月曜は強い」を疑え — 東京ザラ場(08:30→15:00)を検証したら、日中はむしろ垂れてた

JP225の月曜は本当に強いのか? 東京ザラ場(08:30→15:00)だけを5年・1,109日で検証したら、月曜の日中は平均-13.7pt・勝率47.5%でむしろ負け。全日でも-11.8pt(PF0.91)、火曜の日中が最悪(-67.8pt, t=-2.51)。つまり日経の上げは夜(オーバーナイト)で起きていて、東京の現物セッションは利益を吐き出す側。『月曜は強い』は寄→翌寄のフル日足の話で、日中ロングとは別物だった、という検証メモ。

アノマリー検証2026/6/26
📄

【3度目の正直】日経225時間アノマリー、スプレッド片道&XM半減を織り込んだ正しい評価 — PF 1.17 / Sharpe 0.72

XM MT5 JP225Cash# 6.5年・1,653営業日。最初は生PF 1.34と過大評価、次は往復スプレッド減算でPF 1.09と過小評価、3度目で「片道スプレッド + XM実測値(2020:12pt→2022以降:6-7pt)」を引いてPF 1.15-1.17 / Sharpe 0.71-0.72に着地。コスト前提を3回直して見えてきた本当の姿。

アノマリー検証2026/5/23
📄

【相関 -0.011】ゴールドRO改 × JP225時間アノマリーの並列ポートフォリオ検証 — 単独3.45 → 並列2.47だが最大DDは半減、夏停止判断は2026年データで再考の余地

ゴールドRO改 (n=438, PF 2.45, Sharpe 3.45) と JP225 LONG 00:30-05:00 (n=841, PF 1.31, Sharpe 1.26) を共通インデックスで日次合成。相関 -0.011 でほぼ完全独立、50/50で最大DDが半減。5-9月停止判断は5月は正解だが、7月・9月はRO改の方が強く、月別ハイブリッドが最強解。

アノマリー検証2026/5/23
📄

🔍 アノマリー全自動探索装置を作り直しました。前回1位が半年後どうなったかも見てください

31銘柄×48時刻×保持3-12時間×売買の28,680通りを36秒で総当たりするツールをGitHubで公開。使い方と読み方をまとめました。そして3代目(2026年3月)で勝率85.7%・Sharpe 0.849の1位だったGBPAUD夕方買いは、半年後の同じ探索で順位23,586位・勝率38.8%になっていました。

トレード・投資2026/9/5
📄

🔻 GBPAUD水曜ショート戦略|49回で+1,309pips・RF8.33──月末は勝率76%の化け物

GBPAUDの水曜日にショートするだけで+1,309pips・RF8.33。MT5実データ49回のトレードを分布・時間帯・月内日別で完全分析。月末の水曜ショートは勝率76.5%・平均+55.9pips/日という異次元の数字を叩き出す。

FX自動売買2026/3/8
📄

📊 【29通貨ペア×9,362戦略】FXアノマリー自動探索で見つけた「勝てる時間帯」の正体

MT5から5分足データ10,000本を取得し、29通貨ペアの全時間帯組み合わせ(3〜12時間保持)を総当たりバックテスト。9,362個の利益戦略からシャープレシオTOP100をランキング。GBPAUDの夕方買いが勝率85%・Sharpe 0.849で圧倒的1位だった衝撃の結果を完全公開します。

FX自動売買2026/3/4