【保存版】MT4・MT5の基礎からわかるFX自動売買EAの作り方 🧠📈
FX自動売買EAを作るにはMT4/MT5の基礎理解が必須。口座開設・環境構築からMQLの文法、EAの設計・サンプルコード、バックテスト・最適化、運用まで詳しく解説します。
本文
イントロ
FX自動売買のEA(Expert Advisor)を作成するには、MetaTrader(MT4/MT5)の基礎知識が欠かせません。この記事では、初心者でも理解できるようにMT4・MT5の違い、必要な操作、MQLの基本構造、EAサンプルコード、バックテスト・運用のポイントまで詳しく解説します。📊
🌟 MT4とMT5の違いを初心者向けに解説
1. 開発された時期と利用者の多さ
👉 例えるなら:
MT4は「昔からある人気スマホ」、MT5は「新しいモデルで性能が良いスマホ」みたいな感じです📱
2. 動作スピードとバックテスト
👉 例えるなら:
MT4は「自転車で通勤」、MT5は「電動アシスト付き自転車」。目的地は同じでも速さが違います🚴⚡
3. 注文方式(ポジション管理)
👉 例えるなら:
MT4は「引き出しを複数使える」、MT5は「一つの大きな引き出しにまとめる」イメージです📦
4. 対応する言語
👉 例えるなら:
MT4は「わかりやすい英語会話」、MT5は「文法もしっかりしたビジネス英語」✍️
5. 使える機能
👉 例えるなら:
MT4は「基本的な機能の車」、MT5は「カーナビや自動運転機能もついた新型車」🚗✨
💡 まとめ
最初はMT4で基本を学び、慣れてきたらMT5にステップアップするのが安心です🙆♂️

h2: EA作成に必要な操作基礎 🖱️
チャート操作(時間足・通貨ペア切替)
注文種別(成行・指値・逆指値)
SL/TPの設定方法
ログ確認(<code>Experts</code> / <code>Journal</code>)
ストラテジーテスターによるバックテスト
24時間稼働のためのVPS利用
MQL4/MQL5の基本構造 🧩
EAは「イベント駆動」で動作します。
:初期化
:終了処理
:価格更新時に実行
初めてのEA – 移動平均クロス 🛠️
h3: MQL4(MT4用サンプル)
<pre><code class="language-mql4"> // MACrossEA.mq4 (教育用サンプル) #property strict input int FastMAPeriod = 12; input int SlowMAPeriod = 26; input double Lots = 0.10; input int SL_points = 200; input int TP_points = 200; void OnTick() { double fast_now = iMA(Symbol(), Period(), FastMAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0); double slow_now = iMA(Symbol(), Period(), SlowMAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0); if(fast_now > slow_now) { OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, "Buy", 12345, 0, clrNONE); } else if(fast_now < slow_now) { OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, "Sell", 12345, 0, clrNONE); } } </code></pre>
MQL5(MT5用サンプル)
<pre><code class="language-mql5"> // MACrossEA.mq5 (教育用サンプル) #property strict #include <Trade/Trade.mqh> CTrade trade; input int FastMAPeriod = 12; input int SlowMAPeriod = 26; input double Lots = 0.10; void OnTick() { double fast[2], slow[2]; if(CopyBuffer(iMA(_Symbol,_Period,FastMAPeriod,0,MODE_EMA,PRICE_CLOSE),0,0,2,fast) < 2) return; if(CopyBuffer(iMA(_Symbol,_Period,SlowMAPeriod,0,MODE_EMA,PRICE_CLOSE),0,0,2,slow) < 2) return; if(fast[0] > slow[0]) trade.Buy(Lots, _Symbol); else if(fast[0] < slow[0]) trade.Sell(Lots, _Symbol); } </code></pre>
バックテストと最適化のコツ 🧪
スプレッドや手数料を実環境に近づける
最適化は「粗→細」の段階で行うアウト・オブ・サンプル
(OOS)期間を用意する
フォワードテストを実施して未来データで検証</li> </ul>
実運用前のチェックリスト ✅
VPSを設定して安定稼働を確保
ブローカーの仕様(ロット、SL距離など)を確認
小ロットから始めてリスクを抑える
エラーログやスリッページを監視
よくあるQ&A ❓
<. MT4とMT5、どちらから始めるべき?
ックテスト → 実運用」の流れが鉄則です。
A. 初心者は情報の多いMT4、将来性を考えるならMT5。
最適化で注意することは?
Aねていきましょう。
🚀. 過剰最適化を避けるためOOSを必ず設定。
h2: まとめ 🏁
EA開発は「基礎理解 → 小さなEA実装 → バ最初はシンプルなロジックでデモ稼働し、徐々に改良を重