移動平均線は本当に効くのか
最も基本的で、最も広く信じられている指標である移動平均線(MA)を、網羅的に検証しました。単発の200SMA(V-MA-001)から、期間、種類、モードを総当たりするグリッド検証、追撃、そして機械学習の特徴量としての検証まで行いました。対象は USD/JPY を中心に9通貨ペア、日足21年ぶんです。
検証の前提とデータ
「1,515 実験で棄却」という主張自体が、検証可能でなければ意味がありません。用いたデータと条件を明示します。
| 項目 | 内容 |
|---|---|
| 対象通貨ペア | USD/JPY(主)/メジャー: EUR/USD、GBP/USD、AUD/USD / JPYクロス: EUR/JPY、GBP/JPY、AUD/JPY、NZD/JPY、CAD/JPY |
| 時間足 | 日足(週足、月足も併せて検証) |
| 期間 | 2005-01-03 〜 2026-07-10(USD/JPY 日足 5,582 本、warmup 200 本を除外後 5,382 本) |
| データソース | Yahoo Finance |
| IS/OOS 分割 | 時系列で前半50%=インサンプル、後半50%=アウトオブサンプル(USD/JPY は各 2,691 本) |
| コスト控除 | スプレッド 2 pips + スリッページ 1 pip(片側)。他ペアは相応スケール |
| 統計判定 | Bootstrap 2,000 回で OOS シャープの信頼区間と p 値、Benjamini-Hochberg 法で FDR 補正() |
| 乱数シード | 42(再現可能) |
探索したパラメータ空間(グリッド)は、期間 [5, 10, 20, 25, 50, 75, 89, 100, 150, 200]、MA種類 SMA/EMA(追撃で Hull / KAMA / DEMA / TEMA を追加)、モード long_only / switch / short_only です。
検証した実験の一覧(累計 1,515)
「まだ試していない条件があるはず」という反論を潰すため、期間、種類、モードを機械的に総当たりし、さらに5つの反論(ADX、ボラ、適応型MA、タッチ反発、他ペア)と、上位足、ML特徴量まで追撃しました。
| ラウンド | 家族 | 検証した「神話」 | 実験数 | FDR生存 |
|---|---|---|---|---|
| 対照 | ベースライン | 「相場に居るだけ」(always long) | 1 | — |
| 単発 | 200SMA 方向 | 「200SMAの上で買えば有利」 | 4 | 0 |
| グリッド | G1 方向フィルタ | close > MA で順張り | 60 | 0 |
| グリッド | G2 MAクロス | ゴールデン/デッドクロス | 180 | 0 |
| グリッド | G3 傾きフィルタ | MAの傾き方向に売買 | 120 | 0 |
| グリッド | G4 パーフェクトオーダー | 3本MA整列で順張り | 52 | 0 |
| グリッド | G5 距離フィルタ | MA乖離の平均回帰で逆張り | 60 | 0 |
| 追撃 | G6 ADXフィルタ | トレンド強度で選別すれば効く | 128 | 0 |
| 追撃 | G7 ボラレジーム | 高/低ボラでだけ効く | 192 | 0 |
| 追撃 | G8 適応型MA | Hull/KAMA/DEMA/TEMAなら効く | 64 | 0 |
| 追撃 | G9 タッチ&リジェクション | 動的S/Rとして反発を狙う | 240 | 0 ※有意な“負” |
| 追撃 | G10 クロスペア(メジャー3) | 他のメジャーペアなら効く | 144 | 0 |
| 最終 | G11 JPYクロス5ペア | 他のJPYクロスなら効く | 240 | 0 |
| 最終 | G12 週足 | ノイズの少ない上位足なら効く | 30 | 0 |
| 最終 | G14 ML特徴量 | 機械学習の特徴量としてなら | 3変種 | |
| 累計 | 1,515 | 0 |
各ラウンドで具体的に何を、どのパラメータで、どう試したかは、ページ末尾の「検証詳細(ラウンド別)」に全て記載しています。
検証で得られた事実
V-MA-001、グリッド、追撃、最終(ML特徴量)で得た、累計 1,515 実験+ML検証のうち:
- FDR 補正後の positive-Sharpe 生存者は 0 件。、10 家族、複数通貨ペア、10 期間、6 種類の MA(SMA / EMA / HMA / KAMA / DEMA / TEMA)、複数フィルタ(ADX / ATR / タッチ)を組み合わせて網羅しても、支持する統計的証拠は一切得られなかった。
- ベースライン(always long)の OOS シャープは +0.388。これは 2016–2026 の円安ドリフトの受動的な捕捉であり、edge ではない。
- 見かけ上の上位候補は、インサンプルでは機能していない。IS シャープ ≈ 0 かマイナスで OOS だけ勝つ、という選抜バイアスの典型が再現。
- 短期 MA の売り(short-only)は全滅し、長期 MA のスイッチも総崩れ。円安期に円買い方向を取る戦略の構造的敗北。
- MA タッチ&リジェクション(動的S/R)は有意にマイナス()。
- クロスペア(EUR/USD, GBP/USD, AUD/USD)も全滅。MA の失敗は USD/JPY 固有問題ではない。
- 適応型 MA(Hull, KAMA, DEMA, TEMA)も棄却。反応の速い MA ほど、IS の負けがむしろ深くなる。
- ADX やボラティリティレジームでフィルタしても棄却。「トレンド強度でフィルタすれば効く」は成立しない。
- JPYクロス5ペアも、週足も棄却。「JPYクロスなら」「ノイズの少ない上位足なら」の逃げ道も塞がれた。
- ML 特徴量としての MA も、点予測寄与はゼロ()。他 feature の過学習を弱める regularization 効果として弱く残るのみで、パッシブな always-long にすら負ける。
MA が edge を持たない構造的な理由
以下は検証結果からの帰納的な解釈です(仮説であり、証明ではありません)。
- MA は公開され、40年以上参照されている。全参加者が同じ計算式で同じ MA を見ている。edge がある単純ルールは、市場が効率化する過程で消える。線形フィルタは誰でも再現でき、あれば裁定される。
- MA は「過去の平均」であり、未来の因果を含まない。MA(200) は約100本前の情報が中心で、転換点では必ず遅れる。「200SMAタッチで反発」は MA の予測力ではなく、それを見ている参加者の行動集約による現象。
- 方向フィルタは「トレンド」ではなく「過去半分」を切り出しているだけ。
close > MA(n)は「過去 n 本の平均を上回っている」という事後的な傾向記述で、「将来上昇する」ではない。 - コストが edge を打ち消す。短期 MA は取引回数が多く、長期 MA は反応が遅い。両端で失敗し、中間にも FDR 補正後の edge はない。
「負けるなら、逆をやれば勝てる」は成立しない
有意にマイナスの結果(とくに G9)を見ると、「では逆をやれば有意にプラスでは?」と考えたくなります。しかし、この検証ではそれは成り立ちません。
- 向きを変えてもコストは同じだけかかる。純損益は「グロス損益 − コスト」です。MAルールの多くはグロスがほぼゼロで、スプレッドとスリッページで負けています。ロングの代わりにショートしても、取引回数は同じ、つまりコストは同額で、グロスの符号が入れ替わるだけ。グロスがほぼゼロなら、逆にしても同じコストを引かれて同じように負けます。損失分がそのまま利益に反転するわけではありません。
- 負けの多くは「ドリフトに逆らったこと」による。short_only や switch が負けるのは、2016–2026 の円安ドリフト(
108 → 162)に逆らって円買い方向を取ったからです。その逆をやる、つまりただ買い持ちすることは、ベースライン(+0.388)に戻るだけで、ベースラインを超える edge にはなりません。「負けの逆」は多くの場合、単に受動的ドリフトの再現です。 - 勝ち負けの符号がそもそも再現しない。上位、下位の多くは IS と OOS で符号が入れ替わります(選抜バイアス)。ある期間の「負け」を反転しても、別期間で同じ符号になる保証はありません。反転もまた、過去へのカーブフィットです。
G9(動的S/Rのタッチ反発)は統計的に有意な負の edge を持ちますが、これも逆にしたところでコストは同じだけかかり、両側エントリーの構造的なノイズがきれいにプラスへ反転する保証はありません。「有意に負ける」の意味は「その行為を避けるべき」であって、「逆をやれば儲かる」ではありません。
では、MA とは何なのか
検証結果を矛盾なく説明する、最も倹約的な定義はこうです。
- MA は「予測器」ではない。将来リターンの符号や大きさに関する事前情報を含まない(少なくとも検証範囲では)。
- MA は「過去の平滑化された記述」である。ノイズを除いた価格の要約統計であり、視認性を高める補助線。
- MA は「参加者の共通言語」として機能する。200SMA が意識される、といった自己参照的な水準を作る。ただしこれは予測力ではなく、集合的な注意による現象で、反復再現できる edge にはならない。
MA の“正しい”使い方と、危険な使い方
MA の役割を、edge の源として使うのか、edge の記述や執行の補助として使うのかを、必ず先に区別してください。両者の期待値は根本的に異なります。
否定されていない用途(補助)は、edge を主張せずに使う場合です。
- 記述: 現状のトレンドを他人と共有するための共通の視覚化
- レジーム分類: 「200SMA上=過去半年で上昇/高値圏」という状態記述を、別戦略の切り替え条件にする
- 執行の補助: 「20EMA を終値で割ったら手仕舞う」など、損切りや部分利確の一貫した参照点
- サイジング補助: 「上位足MAから乖離が大きいほどロットを下げる」
edge の源として使うべきでない用途(棄却済み)は次のものです。
- 単純な方向フィルタ(
close > MAで買い) - MA クロス単体(ゴールデン/デッドクロス)
- MA の傾き単独での売買
- パーフェクトオーダー単独での順張り
- MA を動的S/Rとしてタッチ反発を狙う(これは有意にマイナス)
「MA で勝てている人」がいるように見える理由
もし「MA で勝てている個人トレーダー」が観測されるなら、それは次のいずれかです。
- サンプル不足で運と実力を区別できない(数十トレードでは分散が大きすぎる)
- MA 以外の要素(時間帯、水平帯、レジーム認識、リスク管理)が実質的な edge の源で、本人が MA だと思っている
- 観測期間がベースライン有利なドリフトと重なった(「相場に居ただけ」で勝った)
- 選抜バイアス。勝った人だけが「MAで勝った」と発信し、負けた人は沈黙する
- 報告バイアス。実際は勝っていないが、勝ちを強調する
これらを排除した上で MA が edge を生む証拠は、本検証では観測されませんでした。
メタ結論
- 「MA は魔法の予測器」は決定的に棄却。 FDR 補正後の生存はゼロ。
- 「MA は動的S/Rとして機能する」は積極的に危険。 有意にマイナスの edge を確認。
- 「ML特徴量としてのMA」も点予測寄与はゼロ。 edge を主張する根拠にはならない。
- 「MA は完全に無価値」も棄却。 記述、レジーム分類、執行、共通言語としての機能は否定できない。
- 正しい位置: MA は「過去の平滑化された記述」であり、それ以上でもそれ以下でもない。
言い換えると:
- MA は “why we trade”(なぜ取引するか)の理由にならない。edge の源としては禁止
- MA は “when we trade” の補助にはなる(弱く)。レジーム分類程度
- MA は “how we trade” の実装補助になる(強く)。執行、サイジング、心理的アンカー
- MA を “動的S/R” として使うのは、統計的に負けが確定
この結論の適用範囲と限界
検証は万能ではありません。この結論の射程を明示します。
- 時間軸: 日足のみ(分足は未検証)。週足でも棄却、月足はサンプル不足で検証不能。
- 通貨ペア: メジャー4+JPYクロス5の9ペアで確認。CHF系や EUR/GBP 等のマイナーは未検証。
- 期間: 2005–2026 の21年。他の相場制度や金融政策局面で挙動が異なる可能性。
- MAの種類: SMA/EMA中心(適応型も一部)。他の適応型では別結論の可能性。
- 単独ルール: 複合フィルタ(時間帯、金利差など)との AND 条件は別評価。心理的アンカーとしての価値は数値検証の範囲外。
検証詳細(ラウンド別)
各ラウンドで「どの神話を、どう試し、どうなったか」の詳細です。すべて日足終値ベース、ポジションは終値確定の翌足始値で執行(先読み回避)、IS/OOS は時系列 50:50、統計判定は Bootstrap 2,000 + Benjamini-Hochberg FDR()です。
単発 V-MA-001(日足200SMA方向フィルタ、4戦略)
神話: 「日足200SMAの上では買い、下では売り(またはノーポジ)を優先すると、リスク調整後成績が改善する」
設計: USD/JPY 日足(2005–2026、5,582本)で、次の4戦略の年率シャープを比較。
| ID | ルール |
|---|---|
| A | 常に long(ベースライン) |
| B | close > SMA200 で long、他は flat |
| C | close > SMA200 で long、close < SMA200 で short |
| D | close < SMA200 で short、他は flat |
結果(全期間):
| 戦略 | 相場滞在 | 勝率 | 期待値(pips) | Ann Sharpe | 対A p値 |
|---|---|---|---|---|---|
| A always long | 100% | 52.1% | +0.88 | +0.173 | — |
| B long-only filter | 53.8% | 52.4% | −0.35 | −0.071 | 0.152 |
| C switch filter | 100% | 50.3% | −1.33 | −0.261 | 0.152 |
| D short-only filter | 46.2% | 47.8% | −2.32 | −0.442 | 0.245 |
フィルタを足すほど成績は悪化しました。IS/OOS に分けても順位 A > B > C > D は不変。スプレッドとスリッページを 0 にしても改善は 0.03 程度で、原因はコストではなく、方向判定そのものに期待値がないことでした。B が下降局面を回避して削った区間には、多くの上昇日が含まれていたためです。→ 棄却。
グリッド G1–G5(期間×種類×モードの総当たり、473実験)
共通設計: 期間 [5, 10, 20, 25, 50, 75, 89, 100, 150, 200] × SMA/EMA × モード(long_only / switch / short_only)を機械的に総当たり。
- G1 方向フィルタ(60実験):
close > MAで順張り(V-MA-001 を全期間と両種類に拡張)。上位は全て long_only で OOS +0.5 前後だが、IS はいずれも −0.4 前後で、インサンプルで通用しなかったルールがOOSだけ勝つ選抜バイアスの典型。short_only は円安期に全滅。 - G2 MAクロス(180実験):
fast/slowの全ペアでゴールデン/デッドクロス。最良はSMA(10,75) long_onlyの OOS +0.692(raw p=0.025)だが、180実験中の1件は偶然の範囲でFDR棄却。長期同士(75/200等)の switch は総崩れ。 - G3 傾きフィルタ(120実験): MA の 5本前、20本前との差(傾き)の符号で売買。長期の short_only が最悪(OOS −0.567)。プラス側は IS≈0 で確信度なし。
- G4 パーフェクトオーダー(52実験): 3本MA(fast>mid>slow)の整列で順張り。露出を 35–44% に絞ってその上昇局面だけを取るが、上位でも IS≈0。
- G5 距離フィルタ(60実験):
z=(close−MA)/stdの外れ値で平均回帰の逆張り。唯一 IS/OOS の符号が一致する家族(EMA(20) z=2.5: IS +0.678 / OOS +0.344)だが、p>0.2 で有意ではない。露出14%と低くサンプルも少ない。→ 追加検証の候補として保留。
全体: 最良OOS +0.692/最悪 −0.567、uncorrected p<0.05 は3件(偶然期待 ≈24件より少ない)、FDR生存 0件。
追撃 G6–G10(5つの反論を潰す、768実験)
グリッドの「生存0」に対する「まだ試していない条件がある」という5つの反論を、事前登録して個別に検証。
-
G6 ADXフィルタ(128実験): 「トレンド強度で選別すれば効く」。
close>MA AND ADX(14)≥閾値。上位も IS −0.5 前後の選抜バイアス。→ 棄却。 -
G7 ボラレジーム(192実験): 「高/低ボラでだけ効く」。ATRの252本パーセンタイルでレジーム判定。→ 棄却。加えて低ボラでの switch は有意にマイナス(最悪OOS −0.743, p=0.013)。
-
G8 適応型MA(64実験): 「Hull/KAMA/DEMA/TEMAなら効く」。方向フィルタを適応型MAに置換。反応が速い分、IS の負けがむしろ深くなる。→ 棄却。
-
G9 タッチ&リジェクション(240実験): 「動的S/Rとして反発を狙う」。タッチ(
low≤MA≤high)後、終値位置で順張り。保持1–10本、side=long/short/both。上位すら OOS がマイナスで、見かけの勝ち組すら存在しない。下位はside=both、保持1本に集中し、OOS −2.9〜−3.8:kind n 保持 side IS OOS p EMA 20 1 both −2.32 −3.808 0.000 SMA 20 1 both −2.37 −3.497 0.000 EMA 50 1 both −2.19 −3.125 0.000 → 強く棄却。しかも統計的に有意な“負”の edge です。MAタッチ後の即反転狙いは、系統的に負けます。
-
G10 クロスペア(144実験): 「他のメジャーペアなら効く」。
EUR/USD・GBP/USD・AUD/USDで方向フィルタを再実行。全ペア FDR生存0。AUD/USD の短期 switch は有意にマイナス(p<0.01)。→ MAの失敗は USD/JPY 固有ではない。
累計(グリッド+追撃): 1,241実験、正シャープの FDR生存 0件。
最終 G11–G14(最後の逃げ道、270実験+ML)
-
G11 JPYクロス5ペア(240実験): 「他のJPYクロスなら効く」。
EUR/JPY・GBP/JPY・AUD/JPY・NZD/JPY・CAD/JPYで方向フィルタ再実行。全ペアで IS≈0/OOS弱プラスの同型パターン、FDR生存0。NZD/JPY は上位すら OOS マイナス。→ 棄却。 -
G12 週足(30実験): 「ノイズの少ない上位足なら効く」。週足にリサンプルし、正しい年率化()。ベースライン(always long)OOS +0.524 に対し、最良のMA rule は +0.479 で下回りました。→ 棄却。月足はサンプル不足(229本)で有意な検証が不能。
-
G14 ML特徴量(3変種): 「単純ルールが負けても、機械学習の特徴量としてなら情報を持つ」。翌日 log return を GBM(n=200, depth=3, lr=0.05)で予測し、3変種を比較。
変種 特徴量数 OOS R² シグナル Ann Sharpe baseline(returnsのみ) 14 −0.135 −0.427 baseline + MA 33 −0.132 +0.302 ma_only 19 −0.353 +0.122 点予測寄与は です。シグナルのシャープは改善しますが、これは「予測力の向上」ではなく、baseline の短期反転過学習を弱める regularization 効果にすぎず、改善後もパッシブな always-long(+0.388)に負けます。
ma_onlyは単独では最悪の OOS R²。→ edge の源にはならない。
累計(全ラウンド): 1,515実験、正シャープの FDR生存 0件。