MENU

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

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

移動平均線クロスは、EA開発を学ぶ上で最初に作るべき定番のロジックです。短期MAと長期MAの交差(ゴールデンクロス・デッドクロス)で売買する明確なルールは、コードに落とし込みやすく、トレンドフォロー戦略の基本を理解するのに最適です。この記事では完全なMQL4コードと実用的な改良ポイントを解説します。

目次

移動平均線クロスとは

移動平均線クロスは、短期MAと長期MAの交差を売買シグナルとする最も基本的なトレード戦略です。ゴールデンクロス(GC)で買い、デッドクロス(DC)で売りという明確なルールでEA化に最適です。

📈
ゴールデンクロス

短期MA > 長期MA に交差 → 買い

📉
デッドクロス

短期MA < 長期MA に交差 → 売り

MQL4コード全文

// 移動平均線クロス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;

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);

  // ゴールデンクロス
  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);
}

改良ポイント

🔧 実用レベルにするための改良

  • 🎯 ADXフィルター:トレンドの強さを確認し、レンジ相場を回避
  • 時間フィルター:流動性の低い時間帯のエントリーを除外
  • 📏 ATRベースのSL/TP:ボラティリティに応じた動的な利確/損切り
  • 🔄 トレーリングストップ:利益を伸ばすための追従決済

移動平均線クロスEAは最もシンプルなEAですが、フィルターを追加することで実用的なEAに成長させることができます。まずはこの基本形を作って、改良を重ねていきましょう。

まとめ

移動平均線クロスEAは最もシンプルなEAですが、ADXフィルターやATRベースのSL/TPを追加することで実用的なEAに成長させることができます。別のアプローチとしてRSI逆張りEAブレイクアウトEAも試してみましょう。完成したEAのテスト方法はバックテスト完全ガイドを参照してください。

EA開発でお困りですか?

ロジックの構想はあるけどコーディングが難しい…そんな方はプロに相談しましょう。
EA CreatorsLABでは、あなたのアイデアをMQL4/MQL5で形にします。

EA制作を依頼する →
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次