コンテンツにスキップ

移動平均線は本当に効くのか

最も基本的で、最も広く信じられている指標である移動平均線(MA)を、網羅的に検証しました。単発の200SMA(V-MA-001)から、期間、種類、モードを総当たりするグリッド検証、追撃、そして機械学習の特徴量としての検証まで行いました。対象は USD/JPY を中心に9通貨ペア、日足21年ぶんです。

検証の前提とデータ

「1,515 実験で棄却」という主張自体が、検証可能でなければ意味がありません。用いたデータと条件を明示します。

項目内容
対象通貨ペアUSD/JPY(主)/メジャー: EUR/USDGBP/USDAUD/USD / JPYクロス: EUR/JPYGBP/JPYAUD/JPYNZD/JPYCAD/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 補正(α=5%\alpha = 5\%
乱数シード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の上で買えば有利」40
グリッドG1 方向フィルタclose > MA で順張り600
グリッドG2 MAクロスゴールデン/デッドクロス1800
グリッドG3 傾きフィルタMAの傾き方向に売買1200
グリッドG4 パーフェクトオーダー3本MA整列で順張り520
グリッドG5 距離フィルタMA乖離の平均回帰で逆張り600
追撃G6 ADXフィルタトレンド強度で選別すれば効く1280
追撃G7 ボラレジーム高/低ボラでだけ効く1920
追撃G8 適応型MAHull/KAMA/DEMA/TEMAなら効く640
追撃G9 タッチ&リジェクション動的S/Rとして反発を狙う2400 ※有意な“負”
追撃G10 クロスペア(メジャー3)他のメジャーペアなら効く1440
最終G11 JPYクロス5ペア他のJPYクロスなら効く2400
最終G12 週足ノイズの少ない上位足なら効く300
最終G14 ML特徴量機械学習の特徴量としてなら3変種ΔR20\Delta R^2 \approx 0
累計1,5150

各ラウンドで具体的に何を、どのパラメータで、どう試したかは、ページ末尾の「検証詳細(ラウンド別)」に全て記載しています。

検証で得られた事実

V-MA-001、グリッド、追撃、最終(ML特徴量)で得た、累計 1,515 実験+ML検証のうち:

  1. FDR 補正後の positive-Sharpe 生存者は 0 件。α=5%\alpha=5\%、10 家族、複数通貨ペア、10 期間、6 種類の MA(SMA / EMA / HMA / KAMA / DEMA / TEMA)、複数フィルタ(ADX / ATR / タッチ)を組み合わせて網羅しても、支持する統計的証拠は一切得られなかった。
  2. ベースライン(always long)の OOS シャープは +0.388。これは 2016–2026 の円安ドリフトの受動的な捕捉であり、edge ではない。
  3. 見かけ上の上位候補は、インサンプルでは機能していない。IS シャープ ≈ 0 かマイナスで OOS だけ勝つ、という選抜バイアスの典型が再現。
  4. 短期 MA の売り(short-only)は全滅し、長期 MA のスイッチも総崩れ。円安期に円買い方向を取る戦略の構造的敗北。
  5. MA タッチ&リジェクション(動的S/R)は有意にマイナス(p0.000p \approx 0.000)。
  6. クロスペア(EUR/USD, GBP/USD, AUD/USD)も全滅。MA の失敗は USD/JPY 固有問題ではない。
  7. 適応型 MA(Hull, KAMA, DEMA, TEMA)も棄却。反応の速い MA ほど、IS の負けがむしろ深くなる。
  8. ADX やボラティリティレジームでフィルタしても棄却。「トレンド強度でフィルタすれば効く」は成立しない。
  9. JPYクロス5ペアも、週足も棄却。「JPYクロスなら」「ノイズの少ない上位足なら」の逃げ道も塞がれた。
  10. ML 特徴量としての MA も、点予測寄与はゼロ(ΔR2+0.003\Delta R^2 \approx +0.003)。他 feature の過学習を弱める regularization 効果として弱く残るのみで、パッシブな always-long にすら負ける。

MA が edge を持たない構造的な理由

以下は検証結果からの帰納的な解釈です(仮説であり、証明ではありません)。

  1. MA は公開され、40年以上参照されている。全参加者が同じ計算式で同じ MA を見ている。edge がある単純ルールは、市場が効率化する過程で消える。線形フィルタは誰でも再現でき、あれば裁定される。
  2. MA は「過去の平均」であり、未来の因果を含まない。MA(200) は約100本前の情報が中心で、転換点では必ず遅れる。「200SMAタッチで反発」は MA の予測力ではなく、それを見ている参加者の行動集約による現象。
  3. 方向フィルタは「トレンド」ではなく「過去半分」を切り出しているだけ。close > MA(n) は「過去 n 本の平均を上回っている」という事後的な傾向記述で、「将来上昇する」ではない。
  4. コストが edge を打ち消す。短期 MA は取引回数が多く、長期 MA は反応が遅い。両端で失敗し、中間にも FDR 補正後の edge はない。

「負けるなら、逆をやれば勝てる」は成立しない

有意にマイナスの結果(とくに G9)を見ると、「では逆をやれば有意にプラスでは?」と考えたくなります。しかし、この検証ではそれは成り立ちません。

  1. 向きを変えてもコストは同じだけかかる。純損益は「グロス損益 − コスト」です。MAルールの多くはグロスがほぼゼロで、スプレッドとスリッページで負けています。ロングの代わりにショートしても、取引回数は同じ、つまりコストは同額で、グロスの符号が入れ替わるだけ。グロスがほぼゼロなら、逆にしても同じコストを引かれて同じように負けます。損失分がそのまま利益に反転するわけではありません。
  2. 負けの多くは「ドリフトに逆らったこと」による。short_only や switch が負けるのは、2016–2026 の円安ドリフト(108 → 162)に逆らって円買い方向を取ったからです。その逆をやる、つまりただ買い持ちすることは、ベースライン(+0.388)に戻るだけで、ベースラインを超える edge にはなりません。「負けの逆」は多くの場合、単に受動的ドリフトの再現です。
  3. 勝ち負けの符号がそもそも再現しない。上位、下位の多くは 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 で勝てている個人トレーダー」が観測されるなら、それは次のいずれかです。

  1. サンプル不足で運と実力を区別できない(数十トレードでは分散が大きすぎる)
  2. MA 以外の要素(時間帯、水平帯、レジーム認識、リスク管理)が実質的な edge の源で、本人が MA だと思っている
  3. 観測期間がベースライン有利なドリフトと重なった(「相場に居ただけ」で勝った)
  4. 選抜バイアス。勝った人だけが「MAで勝った」と発信し、負けた人は沈黙する
  5. 報告バイアス。実際は勝っていないが、勝ちを強調する

これらを排除した上で 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(α=5%\alpha=5\%)です。

単発 V-MA-001(日足200SMA方向フィルタ、4戦略)

神話: 「日足200SMAの上では買い、下では売り(またはノーポジ)を優先すると、リスク調整後成績が改善する」

設計: USD/JPY 日足(2005–2026、5,582本)で、次の4戦略の年率シャープを比較。

IDルール
A常に long(ベースライン)
Bclose > SMA200 で long、他は flat
Cclose > SMA200 で long、close < SMA200 で short
Dclose < SMA200 で short、他は flat

結果(全期間):

戦略相場滞在勝率期待値(pips)Ann Sharpe対A p値
A always long100%52.1%+0.88+0.173
B long-only filter53.8%52.4%−0.35−0.0710.152
C switch filter100%50.3%−1.33−0.2610.152
D short-only filter46.2%47.8%−2.32−0.4420.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:

    kindn保持sideISOOSp
    EMA201both−2.32−3.8080.000
    SMA201both−2.37−3.4970.000
    EMA501both−2.19−3.1250.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実験): 「ノイズの少ない上位足なら効く」。週足にリサンプルし、正しい年率化(52\sqrt{52})。ベースライン(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 + MA33−0.132+0.302
    ma_only19−0.353+0.122

    点予測寄与は ΔR2=+0.0030\Delta R^2 = +0.003 \approx 0 です。シグナルのシャープは改善しますが、これは「予測力の向上」ではなく、baseline の短期反転過学習を弱める regularization 効果にすぎず、改善後もパッシブな always-long(+0.388)に負けます。ma_only は単独では最悪の OOS R²。→ edge の源にはならない。

累計(全ラウンド): 1,515実験、正シャープの FDR生存 0件

参考

  • 検証の方法:本ケースで用いた検証手続き
  • 仮説カタログ:H-01〜H-20 の仮説一覧
  • 移動平均線(MA):教科書としての MA(本結論を反映して読み直す価値があります)
  • Fama, E. (1970); Lo, A. W. (2004); Bailey & López de Prado (2014)