「FXはEMAだけで勝てる?」←AI検証で判明した移動平均線の限界

indicator

【結論】EM1本では勝てない。


AIによる過去5年間の検証では、EMA75単体でPF(プロフィットファクター)は0.984。

つまり、優位性なし。


だが同時に「EMAをどう組み合わせるかで勝てる」ことも判明した。

EMAとは何か

EMA(指数平滑移動平均)は、最新の価格をより重視して平均を取る移動平均線。

SMA(単純移動平均)に比べて反応が速く、トレンド転換を早めに捉えやすいのが特徴だ。

短期〜中期のEMAは、価格の呼吸を可視化する。
長期EMAは、相場の方向性を示す「羅針盤」のような役割を果たす。

一般的な組み合わせは次の通り

種類 期間 特徴
短期EMA 25 エントリーの呼吸を測る(初動)
中期EMA 75 波の流れを判断する(持続)
長期EMA 200 相場全体の方向を決める(基準)

理論上は、これらを使い分ければ「順張りトレードの軸」になる。

参考:「200MA(SMA)だけで勝てる?

AIによる検証概要

使用AI:ChatGPT Pro(統計モジュール搭載)

データ:Axioryヒストリカルデータ(USDJPY/5分足)

まずは、EMA75を使って検証。

EMAだけで勝てるかどうかを検証してください。
条件
・環境 : MT4
・通貨ペア:USDJPY
・期間:2021年1月〜2025年8月
・時間足:5分足
 - datetimeをユニーク化(重複削除)
 - 欠損を補うために「全1分足の時系列インデックス」を生成し、足りない部分は直前値で補完
 - そこから改めて5分足にリサンプリング
・設定値:EMA75
・売買ルール:EMA75を終値で上抜けたらロング・EMA75を終値で下抜けたらショート
・決済:反対シグナルで決済
・資金管理:固定ロット
出力内容:
①総トレード数
②勝率
③平均リスクリワード比
④トータル損益 
⑤プロフィットファクター(PF)

結果

    ① 総トレード数
24,496
    ② 勝率
17.08%
    ③ 平均リスクリワード比(実現RR)
4.754
    ④ トータル損益
-1,450.8 pips
    ⑤ プロフィットファクター(PF)
0.984

勝率は低い一方で、勝ちトレードの平均幅が負けより大きく、実現RRは高め。

ただしトータル損益とPFがわずかにマイナスで、スプレッド・手数料を考慮すると実運用は不利。

EMA1本で勝てない理由

方向とタイミングを同時に判断している

EMAは「流れ」を示す線であって、 「仕掛け」を示す線ではない。

方向とタイミングを1本の線で見ようとすると、どうしてもシグナルが遅れたり早まったりする。

ボラティリティ(値動きの強さ)を無視している

トレンドの質を判別できないため、レンジとトレンドの区別がつかない。
AIはこの状態を「盲目の順張り」と表現した。

再検証:EMA25 × EMA75

短期と中期のクロスでトレンド発生を狙う黄金ペアをAIで再検証。

ロジックの流れ
EMA25(短期平均)とEMA75(長期平均)を計算
短期EMA(25)が長期EMA(75)より上 → 上昇トレンド優勢
短期EMA(25)が長期EMA(75)より下 → 下降トレンド優勢
エントリー条件
EMA25がEMA75を上抜けたタイミング → ロングエントリー
EMA25がEMA75を下抜けたタイミング → ショートエントリー
決済条件
反対方向のクロスが出現した時点で決済(同時に反対ポジションを新規オープン)
    ① 総トレード数
5,153
    ② 勝率
27.01%
    ③ 平均リスクリワード比(実現RR)
2.894
    ④ トータル損益
+4,063.6 pips(手数料・スプレッド未考慮)
    ⑤ プロフィットファクター(PF)
1.072

→ 単体よりも安定。

EMAの反応スピード差がトレンド初動の定義として機能した。

EMA25 x EMA75手法の特徴

・トレンドフォロー型
EMA25とEMA75の差(スプレッド)をトレンド判定に利用し、短期の勢いが長期トレンドを超えた瞬間を狙う。

・常時ポジション保有型
原則として「クロス→反対クロス」までポジションを維持するため、ドテン(反対売買)スタイルになる。

・ノイズ多め
5分足ベースだとクロス頻度が高く、勝率は低下するがリスクリワード比でバランスを取る形になる。

・EA化が容易
条件がシンプルで、実装も高速。最も基本的な「移動平均クロスEA」。

再再検証:EMA25 × EMA75 x EMA200(パーフェクトオーダー)

ルール
ロング:EMA25 > EMA75 > EMA200
ショート:EMA25 < EMA75 < EMA200
それ以外:シグナルなし → ドテン方針なので直前ポジションを維持
エントリー/決済はシグナルが切り替わった時点(終値ベース)
    ① 総トレード数
1,910
    ② 勝率
29.32%
    ③ 平均リスクリワード比(実現RR)
2.621
    ④ トータル損益
+3,235.6 pips
    ⑤ プロフィットファクター(PF)
1.089

トレード数は大幅に減少(シグナルが厳選されるため)
勝率は3割弱だが、実現RRが2.6と高く、トレンド局面でしっかり利を伸ばせている。

参考TradingViewインジケーター

//@version=5
indicator("Triple EMA Perfect-Order — Flip Signals (Indicator)", overlay=true)

// === 入力(検証同等:追加フィルタOFF) ===
lenFast  = input.int(25,  "短期EMA", minval=1)
lenMid   = input.int(75,  "中期EMA", minval=1)
lenSlow  = input.int(200, "長期EMA", minval=1)
priceOutsideMid = input.bool(false, "サイン時に終値がEMA75の外側を要求(検証同等=OFF)")
confirmBars     = input.int(1, "PO連続バー数(検証同等=1)", minval=1)

// === EMA ===
emaFast = ta.ema(close, lenFast)
emaMid  = ta.ema(close, lenMid)
emaSlow = ta.ema(close, lenSlow)

// === PO判定 ===
poUp   = (emaFast > emaMid) and (emaMid > emaSlow)
poDown = (emaFast < emaMid) and (emaMid < emaSlow)

// 追加条件(任意)
priceOKLong  = not priceOutsideMid or (close > emaMid)
priceOKShort = not priceOutsideMid or (close < emaMid)

// 連続バー確認(POがN本連続で成立)
poUpOK   = poUp   and ta.barssince(not poUp)   >= confirmBars - 1
poDownOK = poDown and ta.barssince(not poDown) >= confirmBars - 1

// === 常時ポジの方向(非PO中は前方向維持) ===
var int dir = 0  // 1=LONG, -1=SHORT, 0=未確定
dir := poUpOK   and priceOKLong  ? 1 :
       poDownOK and priceOKShort ? -1 : nz(dir[1], 0)

// === “反転した足”だけ一度サイン ===
longFlip  = (dir == 1)  and (nz(dir[1]) != 1)
shortFlip = (dir == -1) and (nz(dir[1]) != -1)

// === プロット ===
plot(emaFast, color=color.new(color.teal,   0), linewidth=2, title="EMA 25")
plot(emaMid,  color=color.new(color.orange, 0), linewidth=2, title="EMA 75")
plot(emaSlow, color=color.new(color.purple, 0), linewidth=2, title="EMA 200")

barcolor(dir==1 ? color.new(color.teal, 80) : dir==-1 ? color.new(color.purple, 80) : na)

plotshape(longFlip,  title="Flip LONG",  style=shape.triangleup,   location=location.belowbar, color=color.new(color.teal, 0),   size=size.tiny, text="PO↑")
plotshape(shortFlip, title="Flip SHORT", style=shape.triangledown, location=location.abovebar, color=color.new(color.purple, 0), size=size.tiny, text="PO↓")

// === アラート(足確定で1回だけ) ===
alertcondition(longFlip,  title="PO Flip LONG",  message="Perfect-Order LONG")
alertcondition(shortFlip, title="PO Flip SHORT", message="Perfect-Order SHORT")

まとめ

・EMA25単体検証ではPF0.984

・EMA25 × 75の組み合わせではPF1.072
・EMA25 x 75 × 200の組み合わせではPF1.089

EMA単体では市場に勝てない。

だが、EMA同士を組み合わせれば、市場の流れには勝てる。
 
つまり、EMAは値動きではなく秩序に勝つための道具なのだ。

    特典&ご案内

    今回の検証は Axioryのヒストリカルデータを使用しました。
    AXIORY口座を利用しない場合、同じ結果は再現できません)

    詳細データや手法はPDFにまとめ、
    
今だけ【メルマガ登録者限定】で無償配布しています。
    さらに、FX手法をAIで作る方法、EA化する方法を公開しています。

    ▶︎ 無料で今すぐ手に入れる(次回より有償化予定)
    ※この条件での配布は今回限り。
再配布は一切行いません。