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


コメント