最終更新: 2026年6月
MQL4とMQL5、どちらから始めるべきか。EA開発の入門として必ずぶつかる問いだ。筆者がこの疑問を解決するまでに相当な時間を無駄にしたので、同じ轍を踏む人を減らしたくて書いている。
結論から言う。**2026年時点では、目的によってどちらを選ぶかが変わる。**国内ブローカー・既存EA改造が目的なら今でもMQL4が現実的な選択肢だが、バックテスト精度や将来性を重視するならMQL5一択だ。両者の違いを正確に理解してから開発環境を選んでほしい。
MQL言語とは何か
MQL(MetaQuotes Language)は、MetaTrader専用のプログラミング言語だ。FXのEA(Expert Advisor:自動売買プログラム)やカスタムインジケーターを開発するために設計されており、構文はC言語(MQL4)およびC++(MQL5)に近い。
プログラミング経験がある人なら「C系の構文をFX用にカスタマイズしたもの」と理解すれば馴染みやすい。経験がなくても、実は覚えることはそれほど多くない。変数・条件分岐・ループ・関数という基本要素は他の言語と共通しており、FX固有の注文関数を覚えれば動くEAが作れる。
MQL4とMQL5の根本的な違い
言語設計の思想
MQL4はシンプルさを重視した設計だ。変数宣言・注文・決済がそれぞれ1〜3行で書けるため、初心者がコードの「意味」を追いやすい。
MQL5はオブジェクト指向(C++ベース)を採用しており、再利用しやすいコード構造が書けるが、習得コストが上がる。特にトレード関連の処理が複雑で、MQL4の OrderSend() 一発で完結する注文が、MQL5では準備→送信→確認という複数ステップになる。
バックテスト性能の差
MetaQuotes社の公式情報によれば、MT5のバックテストエンジンはMT4比で最大20倍高速に動作する。マルチコアCPUへの対応と複数通貨ペアの同時テストが可能になったことが主な要因だ。
検証の精度という点でもMT5が優れており、特に全ティックデータを使ったバックテストでは結果の信頼性に差が出る。「バックテストで有意な結果を出したい」という目的には、今からMQL5で始めることを推奨する。
日本語リソースの現実
2026年時点でも、日本語でのMQL開発情報はMQL4が主流だ。ブログ・書籍・フォーラムともにMQL4の解説が圧倒的に多く、MQL5でつまずいたときの情報収集が難しい。英語に抵抗がなければMQL5のMQL5.com公式ドキュメント(英語・ロシア語中心)が充実しているが、日本語に限定するとMQL4優位の状況は続いている。
MQL4とMQL5の主要な構文比較
現在価格の取得
// MQL4
double price = Ask; // 1行で取得できる
// MQL5
MqlTick tick;
SymbolInfoTick(_Symbol, tick);
double price = tick.ask; // 構造体経由が必要
MQL4は Ask 変数に直接アクセスできるが、MQL5では SymbolInfoTick() 関数を経由する。処理の安全性は上がるが、コード量が増える。
注文の送信
// MQL4 — OrderSend一発
int ticket = OrderSend(_Symbol, OP_BUY, 0.1, Ask, 3, 0, 0, "", 0, 0, clrBlue);
// MQL5 — MqlTradeRequest構造体を使う
MqlTradeRequest request = {};
MqlTradeResult result = {};
request.action = TRADE_ACTION_DEAL;
request.symbol = _Symbol;
request.volume = 0.1;
request.type = ORDER_TYPE_BUY;
request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
OrderSend(request, result);
この差は「複雑で面倒」に見えるが、逆に言えばMQL5の方がエラー処理を細かく制御できる。本格的なEAを作るならMQL5の構造体方式の方が後から役に立つ。
初心者が始めるべき順序
筆者の見解を率直に述べる。
ケース1: 国内MT4ブローカーで既存EAを改造したい → MQL4から始める
日本の主要ブローカー(GMOクリック証券・外為どっとコム等)のMT4環境を使うなら、MQL4で十分だ。既存の無料EAのコードを読みながら改造するアプローチが、最も実践的な学習ルートになる。
ケース2: これからEAをゼロから作りたい → MQL5を選ぶ
MT5は今後のスタンダードだ。MetaQuotes社はMT4の新規口座受付を徐々に縮小しており、長期で自動売買を続けるなら遅かれ早かれMQL5に移行することになる。学習コストは高いが、今から始めるならMQL5で基礎を作る方が合理的だ。
ケース3: C++経験あり → MQL5一択
C++の経験者なら、MQL5の学習コストは低い。即座にMQL5に入ることを推奨する。
開発環境のセットアップ
MQL4・MQL5ともに、開発にはMetaEditorを使う。MT4/MT5に内蔵されている無料のIDEで、コード補完・エラー検出・デバッガーが使える。
起動方法はMT4/MT5のメニュー「ツール → MetaEditor」または F4 キーだ。
MetaEditor内で「新規作成」からEAテンプレートを選ぶと、基本構造(OnInit()・OnDeinit()・OnTick() 関数)が自動生成される。この3つの関数の役割を最初に覚えることが、MQL開発の出発点になる。
| 関数 | タイミング | 用途 |
|---|---|---|
| OnInit() | EA起動時に1回 | 変数初期化・パラメーター確認 |
| OnDeinit() | EA終了時に1回 | リソース解放 |
| OnTick() | ティックごと(価格変動ごと) | 売買ロジックの実行 |
最初のEAを書いてみる(MQL4版シンプルな例)
理解の確認として、「移動平均線がゴールデンクロスしたら買い、デッドクロスしたら売り」という最もシンプルなロジックの骨格を示す。
// シンプルな移動平均クロスEA(MQL4・骨格)
void OnTick() {
double ma_fast = iMA(_Symbol, 0, 5, 0, MODE_SMA, PRICE_CLOSE, 0);
double ma_slow = iMA(_Symbol, 0, 20, 0, MODE_SMA, PRICE_CLOSE, 0);
double ma_fast_prev = iMA(_Symbol, 0, 5, 0, MODE_SMA, PRICE_CLOSE, 1);
double ma_slow_prev = iMA(_Symbol, 0, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
// ゴールデンクロス検出(前のバーではfastがslowの下、今のバーではfastがslowの上)
if (ma_fast_prev < ma_slow_prev && ma_fast > ma_slow) {
// 買いエントリー
OrderSend(_Symbol, OP_BUY, 0.1, Ask, 3, 0, 0, "MA Cross", 0, 0, clrBlue);
}
// デッドクロス検出
if (ma_fast_prev > ma_slow_prev && ma_fast < ma_slow) {
// 売りエントリー
OrderSend(_Symbol, OP_SELL, 0.1, Bid, 3, 0, 0, "MA Cross", 0, 0, clrRed);
}
}
このコードはロスカット・利確・既存ポジション確認の処理が省略されているため、実運用には使えない。しかし「どうやってインジケーター値を取得し、条件を判定して注文するか」という基本フローを理解するには十分だ。
Claudeと会話しながらインジケータが作れるhedgrow-fxでは、こうした基本コードをAIとの対話で補完・拡張する開発フローを実現している。プログラミングに慣れていない段階での手助けとして活用価値がある。
学習リソースの選び方
日本語で学ぶ場合(MQL4):
- ゴゴジャングルLaboの質問スレッドが初心者の疑問を網羅している
- 個人ブログの「入門者のEA自作のための作り方講座」系の記事が実践的
英語・多言語(MQL5):
- MQL5.comの公式リファレンスは関数の仕様が正確に記載されている
- MQL5コミュニティフォーラムは英語だが検索性が高い
学習の進め方としては、「コードを写経する → 少し変えてみる → 動作を確認する」のサイクルが最も定着率が高い。概念を読むだけでは動くEAは作れない。
よくある質問(FAQ)
Q: プログラミング経験ゼロでもMQL4は覚えられますか? A: 覚えられます。ただし「覚えられる」と「動くEAが作れる」の間には相当な実践量の差があります。最初の3か月は「動くことを喜ぶ」期間と割り切ってください。
Q: MQL4で作ったEAをMQL5に移植できますか? A: 自動変換ツールが存在しますが、完全変換は難しく手直しが必要になるケースがほとんどです。注文関数・インジケーター取得関数の書き直しが主な作業です。
Q: ChatGPTやClaudeにMQLコードを書いてもらえますか? A: 骨格となるコードは生成できます。ただし、AIが生成したコードはそのままでは動かないことも多く、デバッグには自身のMQL理解が必要です。完全な「プログラミング不要」は現時点では難しいです。
Q: MetaEditorは無料ですか? A: はい、MT4/MT5に付属する無料ツールです。別途購入する必要はありません。
Q: バックテストで良い結果のコードが実際の口座では動かないのはなぜですか? A: 主にスプレッドの設定差・スリッページ・使用データの品質の問題です。バックテストはあくまで「過去への仮説検証」であり、将来の利益を保証しません。フォワードテストでの検証を必ず行ってください。
免責事項: 本記事のコード例は学習目的のものであり、実際の取引に使用した際の損失について筆者は責任を負いません。FX取引には元本割れリスクがあります。余剰資金での取引を前提とし、十分なデモ口座での検証を経てから実口座で使用してください。
著者情報: 金融工学専攻・アルゴリズム取引研究者(EA開発歴8年)
