移動平均線クロスEAの作り方|MQL4コード付きで開発元が完全解説

※免責事項
本記事は情報提供を目的としており、特定の金融商品の購入・売却を推奨するものではありません。FX取引にはリスクが伴い、投資元本を失う可能性があります。投資判断はご自身の責任において行ってください。

移動平均線クロスEAの作り方をMQL4コード付きで、当社 EA CreatorsLAB が開発元として総合解説します。MA (Moving Average) クロスは「短期MA × 長期MA のゴールデンクロス / デッドクロスで売買する」EA開発の入門ロジック。ルールが単純で、コードに落とし込みやすく、トレンドフォロー戦略の基本を理解できます。ただし、レンジ相場でのダマシ連敗という弱点もあるため、改良の4手法 (ADX / 時間 / ATR / トレーリング) と適合通貨ペア・時間足、当社EAでのMA系ロジック実装例まで一気に解説。本記事は教育コンテンツで、投資判断は自己責任です。

▦ この記事の結論
  • MAクロスはトレンドフォロー型 (順張り) の代表ロジック。RSI 逆張りの対極にある。
  • シグナルは「前足はクロス未成立、現在足でクロス成立」 の境界で取る。
  • 最大の弱点はレンジ相場でのダマシ連敗。ADX か時間フィルター必須。
  • SMA/EMA/WMA の3種類はそれぞれ反応速度が違う。EMA は反応が速い、SMA は遅いが安定
  • 適合通貨ペアはEURUSD / GBPUSD など長期トレンドが発生しやすい主要通貨
  • 当社の CatchGBPJPY / Twin Engine GBP は時間帯特化型の MA フィルター系で、レンジダマシを構造的に回避する設計。
  • 勝率は30-40%程度でも、PF 1.5+ なら長期プラスを狙える戦略。
  • 過去実績は将来を保証しません。
目次

MAクロスEAはなぜ入門に最適か (大問い)

MAクロスEAが入門に最適なのは「ルールが言語化しやすい・コード行数が短い・チャート上で結果を可視化しやすい」の3条件を満たすからです。EA開発を学ぶ最初の1本目として、過去30年以上にわたって世界中の教材で取り上げられ続けてきました。

判定は「短期MA と 長期MA の前足での位置関係 と 現在足での位置関係が逆転している瞬間」を捉えるだけ。ゴールデンクロス (短期MA が長期MA を下から上に抜く) で買い、デッドクロス (上から下に抜く) で売り。RSI逆張りEA がレンジ相場狙いなのに対し、MAクロスはトレンド相場狙いの対極ロジック。両者を組み合わせれば全相場をカバーできます。

ただし、MAクロスはレンジ相場でのダマシが致命的に多い弱点があります。本記事では実用レベルにするための改良4手法と、当社EAが実装している「MAクロスの考え方を時間帯特化型で活かす設計」も解説します。戦略タイプの全体像は 戦略タイプ別EAガイド を参照。

MAクロスが「最初の一本」に向く理由

EA開発を学ぶ最初の題材にMAクロスが選ばれるのは、ロジックが直感的で、コードに落とし込みやすいからです。「短期線が長期線を上抜けたら買い、下抜けたら売り」という単純明快なルールは、プログラミング初心者でも条件分岐として素直に書けます。EA開発の基本骨格(エントリー・決済・ポジション管理)を学ぶ教材として理想的です。

もちろん、シンプルゆえにそのままでは実戦で勝ちにくいという側面もあります。しかし、まずは動くものを完成させて「EAが自分の書いたとおりに売買する」感覚をつかむことが、上達の第一歩です。本記事では基本実装から、実用レベルに近づける改良手法までを順に解説します。

ゴールデンクロス / デッドクロスの基本

MAクロスの判定は「2本のMAの相対位置」のみ。シンプルですが、MAの種類と期間設定で性能が大きく変わります。

📈
ゴールデンクロス

短期MA が 長期MA を下から上に交差 → 買い

📉
デッドクロス

短期MA が 長期MA を上から下に交差 → 売り

MA 種類計算方法反応速度ダマシ
SMA単純平均遅い少ない
EMA指数平滑速い多い
WMA線形加重
SMMA平滑化平均遅い少ない

定番設定は「短期20 / 長期50 (SMA, 15分足以上)」。短期5 / 長期25 はスキャル向け (シグナル多くダマシも多い)、短期50 / 長期200 は中長期向け (シグナル少なく安定)。EA開発環境構築ガイド でストラテジーテスターをセットアップし、自分の相場観に合う組み合わせを実測してから本番投入してください。

GCとDCは「線の上下」だけでなく「交差の瞬間」を捉える

ゴールデンクロス(GC)とデッドクロス(DC)を実装するうえで重要なのは、「短期線が長期線の上にある状態」と「上抜けた瞬間」を区別することです。単に上下関係だけで判定すると、すでにクロス済みの状態で毎回エントリーしてしまい、ポジションが重複します。

正しくは、「1本前は下、現在は上」という変化のあった瞬間だけをエントリー条件にする(クロス境界検出)のが基本です。この一点を押さえるだけで、無駄な重複エントリーを防げます。コードでは前の足と現在の足の2点を比較する書き方になり、これがMAクロスEA実装の核心部分になります。

MQL4 完全実装コード (クロス境界検出方式)

MQL4 での MAクロス実装は「前足 (シフト2) と現在足 (シフト1) の比較で境界を検出」するのが定石。連続シグナルを抑制し、不要なエントリーを防ぎます。

// 移動平均線クロスEA
extern int FastMA = 20;
extern int SlowMA = 50;
extern double Lots = 0.1;
extern int SL = 100;
extern int TP = 200;
extern int Magic = 20240101;
extern double ADX_Min = 25;

void OnTick() {
  if(OrdersTotal() > 0) return;

  double fast1 = iMA(NULL,0,FastMA,0,MODE_SMA,PRICE_CLOSE,1);
  double fast2 = iMA(NULL,0,FastMA,0,MODE_SMA,PRICE_CLOSE,2);
  double slow1 = iMA(NULL,0,SlowMA,0,MODE_SMA,PRICE_CLOSE,1);
  double slow2 = iMA(NULL,0,SlowMA,0,MODE_SMA,PRICE_CLOSE,2);
  double adx = iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,1);

  // トレンド強度フィルター
  if(adx < ADX_Min) return;

  // ゴールデンクロス
  if(fast2 < slow2 && fast1 > slow1)
    OrderSend(Symbol(),OP_BUY,Lots,Ask,3,
      Ask-SL*Point, Ask+TP*Point,
      “MA Cross”,Magic,0,clrBlue);

  // デッドクロス
  if(fast2 > slow2 && fast1 < slow1)
    OrderSend(Symbol(),OP_SELL,Lots,Bid,3,
      Bid+SL*Point, Bid-TP*Point,
      “MA Cross”,Magic,0,clrRed);
}
  • 特徴①: クロス境界検出 (fast2 と slow2 の前足位置で逆判定)
  • 特徴②: ADX フィルターでトレンド強度を確認 (25未満はレンジで見送り)
  • 特徴③: SL/TP 比率 1:2 (リスクリワード優先)
  • 改善余地: 時間フィルター・ATR ベースのSL/TP・トレーリングストップ・新バー検出を本番投入前に追加

このコードはあくまで雛形です。実運用にはスプレッド上限チェック・スリッページ制御・MagicNumber 管理・複数ポジション制御が必須。バックテスト完全ガイド でストラテジーテスター実行 → EA最適化ガイド で過剰最適化を避けながらパラメータ調整。自作が難しい場合は 制作サービス で当社が代行可能です。

MAクロスの最大の弱点 (レンジ相場でのダマシ連敗)

MAクロスの最大の弱点は「レンジ相場での連続ダマシ」です。MAの上下に値段が往復するレンジでは、ゴールデンクロスとデッドクロスが交互に発生し、毎回損切りに引っかかって資金がじりじり減っていきます。

相場局面MAクロス挙動MAクロス適合対処
強いトレンドクロス少・順張りに乗れる通常エントリー
緩やかなトレンドクロス頻度中SL を広めに
レンジ相場クロス頻発・ダマシ連敗×ADX フィルターでエントリー停止
パニック急変遅れエントリーで踏み上げ×ボラ上限/時間帯停止

対策は「トレンド相場のみエントリー」。サンプルコードに組み込んだ ADX フィルター (ADX < 25 でエントリー停止) は最小限の防御策。これだけでレンジダマシを 6-8 割削減できます。詳細な改良手法は次節へ。

なぜMAクロスは「レンジ相場」で連敗するのか

MAクロスの最大の弱点は、方向感のないレンジ相場でのダマシ連敗です。横ばいの相場では、短期線と長期線が何度も交差し、そのたびにエントリーしては小さく損切りする、という「往復ビンタ」を食らいます。トレンドが出ていない局面では、クロスのシグナルがほとんどノイズになってしまうのです。

これはMAクロスの構造的な性質であり、ロジックを少しいじった程度では消えません。だからこそ、「トレンドが出ている時だけ使う」「レンジを避けるフィルターを足す」といった改良が必要になります。弱点を理解したうえで対策を打つことが、入門ロジックを実戦で使えるレベルに引き上げる鍵です。

MAクロスEAを実用レベルにする改良4手法

MAクロスEA を実用レベルに引き上げる改良手法は4種類。組み合わせて使うのが効果的です。

改良目的実装の難易度効果
ADX フィルターレンジ相場のエントリー除外
時間フィルター流動性低い時間帯を除外
ATR ベース SL/TPボラに応じた動的損益管理
トレーリングストップ利益を伸ばす追従決済

特に時間フィルターは効果絶大。例えば「東京時間 (9:00-15:00 JST) のみエントリー」「ロンドンオープン後30分は様子見」など、流動性とトレンド発生確率の高い時間帯に限定することで、ダマシを構造的に減らせます。当社の Twin Engine GBP はこの時間帯特化型を核に据えた設計で、東京仲値 + ロンドン押し目という2つの時間帯でMA系の発想を活用しています。

改良は「フィルターの足しすぎ」に注意

レンジでのダマシを減らそうとフィルターを足すのは有効ですが、足しすぎるとエントリーがほとんど発生しなくなる点に注意が必要です。トレンドフィルター、ボラティリティフィルター、時間帯フィルターを全部盛りにすれば、たしかにダマシは減りますが、本物のトレンドまで見送ってしまいます。

改良の基本は、効果の大きいフィルターを1〜2個に絞り、バックテストとフォワードで効果を確認しながら足していくことです。シンプルなMAクロスの良さを殺さない範囲で、弱点だけをピンポイントに補う。この引き算的な発想が、過剰最適化を避けつつ実用性を高めるコツになります。

改良の効果は「フォワードで裏取りする」

MAクロスに改良を加えるとき、バックテストで成績が上がっただけで満足してはいけません。過去データに対してフィルターを最適化すれば、数字はいくらでも綺麗になりますが、それは過去に都合よく合わせ込んだだけかもしれないからです。改良の真価は、未来のデータで動かすフォワードテストで判断します。

バックテストとフォワードの成績が大きく食い違うなら、その改良は過剰最適化の疑いがあります。改良を1つ加えるたびに、未知の期間でも効果が保たれるかを検証する習慣をつけてください。入門ロジックだからこそ、検証の作法を正しく身につける格好の練習台になります。

MAクロスに適した通貨ペアと時間足

MAクロスは「長期トレンドが発生しやすい主要通貨ペア × 1時間足以上」で最大効果。

通貨ペアトレンド発生MAクロス適合度推奨時間足
EURUSD頻繁1時間/4時間
GBPUSD頻繁1時間/4時間
USDJPY4時間/日足
GBPJPY中 (高ボラ)時間帯次第
AUDNZD少 (レンジ中心)×非推奨

AUDNZD など中央銀行金利が近い通貨ペアはレンジ傾向が強く、MAクロスとは相性最悪。これらは RSI 逆張り (前記事) のほうが向いています。通貨ペア別EAガイド も併読してください。

通貨ペアと時間足で「クロスの質」が変わる

MAクロスEAは、トレンドが素直に伸びる通貨ペア・時間足ほど力を発揮します。方向感が出やすい相場ではクロス後にトレンドが続き、利益を伸ばせます。逆に、細かく上下を繰り返すレンジ気味の通貨ペアでは、クロスがダマシばかりになり成績が安定しません。

また、時間足が短すぎるとノイズによる偽のクロスが増え、長すぎると機会が減ります。トレンドが出やすい市場時間と、ノイズを抑えられる時間足の組み合わせを選ぶことが、MAクロスを活かす前提です。ロジック単体ではなく、どの土俵で戦わせるかまで含めて設計だと考えてください。

当社EAでのMA系ロジック使用例

当社 EA CreatorsLAB の販売3 EA のうち、CatchGBPJPY と Twin Engine GBP の2 EA が時間帯特化型のMAフィルター系設計で、MAクロスの考え方を実装しています。純粋なMAクロスをそのまま使うのではなく、時間帯フィルターを核に置きつつ、MA の方向性 (トレンド方向) を補助シグナルとして使う構造です。

EAMA系ロジックの使用フォワード
CatchGBPJPY時間トリガー単一・MA は方向性確認のみ計測停止中明記
Twin Engine GBP東京仲値ショート + ロンドン押し目ロング (時間帯×MA方向)勝率54.05%/PF1.28
Multi-AUD Core逆張りナンピン系 (MA はトレンドフィルターとして補助)PF/勝率は非公開

特に Twin Engine GBP勝率 54.05% / PF 1.28 / 取引数 74 / 推奨証拠金 $20,000のフォワード成績を sys-tre 商品ページで公開中。純粋な MAクロスEA より、時間帯特化型 × MA 方向確認のほうが安定する一例として参考にしてください。MT4専用。

MAクロスEAを破綻させる5つの失敗

自作 MAクロスEA を破綻させる典型的な失敗は5パターン。これらを事前に把握すれば回避できます。

  • トレンドフィルター無しでレンジ相場に突っ込みダマシ連敗
  • 短期 5 / 長期 25 など過剰に短周期でノイズに踊らされる
  • 損切り設定無しで含み損を抱え続け破綻
  • AUDNZD などレンジ通貨で運用し往復ビンタ
  • EMA + 高ボラ通貨で「ヒゲ」を拾ってクロス連発

これら5失敗を回避する設計は、本記事サンプルコードに既に組み込んであります (ADX フィルター + SL/TP 設定 + クロス境界検出)。市販EA を評価する際にも、これらの基準を満たしていない MA 系EA は避けるのが安全。EA選びの3基準は EA選び方3基準、大損8パターンは 大損8パターン も併読してください。

失敗の多くは「ダマシ連敗への動揺」から

MAクロスEAを破綻させる失敗を見渡すと、多くが「レンジでのダマシ連敗に動揺して、ルールを崩すこと」に行き着きます。連敗が続くと、つい損切りを広げたり、フィルターを過剰に足したり、手動で止めたりしてしまい、肝心のトレンド局面に乗れなくなります。

MAクロスは「勝率は高くないが、トレンドに乗れば伸びる」性質の戦略です。レンジでの小さな負けは想定内と割り切り、トレンド相場での一伸びを待つ姿勢が欠かせません。連敗にうろたえてルールを変えることが最大の負け筋だと理解しておけば、入門ロジックでも長く付き合えます。

MAクロスEAについてよくある質問

MAの最適な期間設定は?
定番は短期20 / 長期50 (15分足以上)。短期5/長期25 はスキャル向け (ダマシ多)、短期50/長期200 は中長期向け。時間足とセットで決めてください。
SMA と EMA はどっちがいい?
用途次第。EMA は反応速くシグナル多いがダマシも多い、SMA は反応遅いがダマシ少ない。トレンドフォロー型なら SMA、急変期にも追従させたいなら EMA。
MAクロスEAの勝率は?
30-40% (フィルター付き)。トレンドフォロー型は1勝の利幅が大きく勝率低めでも PF 1.5+ で長期プラスを狙えます。勝率 70% 超を謳う MA 系EAは過剰最適化を疑ってください (詳細は EA最適化ガイド)。
レンジ相場でも使える設計は?
原則使えない。MAクロスはトレンドフォロー型なのでレンジ相場では構造的にダマシが連発します。レンジ相場狙いなら RSI逆張りEA を併用してください。
ADX フィルターの閾値は?
25 が標準。25 未満はレンジ、25-40 が緩やかなトレンド、40 超は強トレンド。短期足 (15分以下) なら 30 まで上げてレンジ除外を厳しめにするのも有効。
3本のMAを使った戦略は?
短期/中期/長期の3本MAパーフェクトオーダーが有名。3本が同方向に並ぶときのみエントリーすると、ダマシをさらに削減できます。ただしシグナル頻度は激減します。
MQL5 でも同じコードで動きますか?
動きません。MQL5 はCopyBuffer 系に書き換えが必要、iMA() のシグネチャも違います。基本ロジックは同じなので、MQL5 EA開発入門 を参照して移植してください。
SL/TP の比率はどう決める?
トレンドフォロー型はSL 100 / TP 200 (1:2) など TP を大きく取るのが定石。1勝で複数の小負けを覆う設計。ATR ベースで動的にする場合は SL = ATR × 1.5、TP = ATR × 3 が目安。
スプレッドはどれくらいまで許容?
1時間足以上ならTP の 5% 以下が目安。TP 200pips なら 10pips 以下の業者を選択。長時間保有が前提なので、スワップポイントも EA 選定基準に含めると有利。
RSI 逆張りとどう使い分ける?
相場局面で分ける。MAクロスはトレンド相場、RSI 逆張りはレンジ相場。両者を1つのEAに統合するのではなく、別EAとして並行運用するほうが過剰最適化を避けられます。詳細は 戦略タイプ別EAガイド
自作が難しいのですが、外注できますか?
可能です。当社の制作サービス (ココナラ¥20,000〜) でロジック仕様を伝えていただければ、本記事サンプル相当のMAクロスEAを MQL4/MQL5 両対応で実装します。詳細は EA制作の外注フロー
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次