MQL4 入門:MQL4 とは?初心者が MT4 で EA 自動売買プログラムを書く方法

外国為替や差金決済取引(CFD)の取引において、執行効率と戦略の安定性をどう高めるかは、多くのトレーダーが向き合うテーマです。MQL4 はその答えの一つで、MetaTrader 4(MT4)プラットフォーム上で EA(Expert Advisor)を開発し、自動発注・リスク管理・資金管理を実現できます。
本記事は MQL4 入門ガイド をゼロから初学者向けに体系化したものです。環境設定から始め、MetaTrader 4(MT4) の基本的な仕組みまでを順に押さえます。基礎構文とイベント関数を解説したうえで、Titan FX が提供する無料リソースとフォワードテストデータを組み合わせ、自分専用の自動売買システムを段階的に構築する道筋を示します。
- MQL4 がMT4 に取引ルールを伝えるプログラミング言語としての役割
- MetaEditor を使った EA 開発の操作フロー(.mq4 → コンパイル → .ex4)
- 必須の構文:データ型、
OnTick()イベント関数、Ask/Bid/Close[0] 等の相場変数 - EA 開発でよく出るエラー(構文・130/134 番)と安定化のコツ
- Titan FX が提供する 70 本以上の無料 EA とフォワードテストランキングの活用法
1. MQL4 とは?MT4 から自動売買までの全体像
MQL4 は、MetaQuotes が MetaTrader 4(MT4)のために設計したプログラミング言語で、いわば「MT4 の取引指令マニュアル」です。トレード戦略をコンピュータが自動で実行できるプログラムへと変換し、人手による画面監視に依存しない取引を可能にします。
MT4 で作成できる 3 種類のプログラム
MQL4 を使って MT4 で作成できる、最も一般的なプログラムは次の 3 種類です。
- EA(Expert Advisor、自動売買プログラム): 売買執行・損切り益出し・資金管理などを自動で行う、自動売買のコアツール(本記事の主題)
- カスタムインジケーター(Custom Indicator): チャート上にテクニカル指標やライン、図形を描画する
- スクリプト(Script): 一回限りのタスク(一括決済、ライン描画、注文修正など)を実行し、終わったら停止する
このうち EA が最も強力な自動売買ツール であり、本記事の中心テーマです。
MT4 の基本的な動作ロジック(EA を例に)
MT4 は Tick(相場の更新) を基本単位として動きます。市場価格に変化があるたびに 1 つの Tick が発生します。
EA をチャートにアタッチすると:
- MT4 が最新の Tick データを EA に送り続けます
- EA は
OnTick()関数でそれを受け取り、書き込まれた戦略に従って発注・注文管理・損切り/利確の調整などを判断します
ポイント:
自動売買の判断ロジックは、基本的に OnTick() の中に書きます。EA の「心拍」のようなもので、1 回の鼓動ごとに取引ロジックが 1 回実行されます。
MQL5 と比べると MQL4 は構文がシンプル で、初学者の入口として適しています。EA エコシステムも成熟しており、参考や改造の素材となるコードが豊富に流通しています。
2. MQL4 で EA を書く:MetaEditor の操作フロー
MT4 の MetaEditor を起動し、次の手順で開発を進めます。
- ① MT4 にログイン → ナビゲーションバーの黄色いアイコンをクリックして MetaEditor を起動
- ② 「New」→「Expert Advisor (template)」を選択。「Expert\」配下に名称と作者情報を入力して進む
- ③ 必要に応じて EA の取引時間処理ハンドラを選択(チェックなしで次へ進んでも構いません)
- ④ エディタ領域でコードを書く(拡張子は .mq4)。完成したら「Compile」をクリックしてコンパイルを実行。成功すると .ex4 実行ファイルが生成される
- ⑤ MT4 に戻り、「Navigator」→「Expert Advisors」からファイルを選んでチャートにドラッグ&ドロップしてアタッチ完了

※ 初学者が最もよく直面するのは「EA をアタッチしても右上にスマイルマークが出ない」現象です。たいていは「自動売買を許可」設定が無効です。「Tools」→「Options」→「Expert Advisors」を開き、「Allow automated trading」にチェックを入れます。

3. 基本構文:データ型と OnTick 関数
MQL4 EA の開発に、何千行ものコードを暗記する必要はありません。コアとなる「データ型」と「動作の心臓部」を押さえておけば、論理的に成立した自動化戦略を組み立てられます。
基本となるデータ型
| データ型 | 説明 | 使い方の例 |
|---|---|---|
| int | 整数(小数なし) | インジケーター期間、MagicNumber、注文番号 |
| double | 小数を含む高精度数値 | Ask/Bid 価格、ロットサイズ、ポイント数 |
| bool | true / false | エントリー可否、シグナル成立判定 |
EA の心臓部:OnTick() 関数
OnTick() は MQL4 EA で最も重要なイベント関数です。
- 実行タイミング: 市場で新しい気配(Tick)が更新されるたびに、システムは OnTick() の中身を 1 回実行します
- 開発上の重点: すべての取引判断ロジック(例:短期線が長期線をクロスしたら買う)はここに書きます
よく使う相場変数
- Ask / Bid: 現在の買気配と売気配(建玉時の価格判断)
- Close[0]: 現在進行中の未確定 1 本目のローソク足の価格
- High[0] / Low[0]: 現在進行中のローソク足の高値・安値
これらを押さえたうえで、シンプルな if(例:if(Close[0] > High[1]))と組み合わせれば、最初の自動売買ルールを構築できます。
4. つまずきやすい点の回避:EA 開発でよくあるエラーと安定化のコツ
MQL4 EA を書くときに、構文エラーは比較的見つけやすい一方、ロジックエラーや実行時の問題は初学者がはまりやすいポイントです。よくあるエラーと回避テクをまとめます。
よくある開発エラー早見表
| エラータイプ | よくある原因 | 解決方法 |
|---|---|---|
| 構文エラー | ; の付け忘れ、波括弧の対応ずれ | MetaEditor のエラー文をダブルクリックして該当行へジャンプ |
| 発注失敗 (130) | 損切り/利確の距離が狭すぎる | MarketInfo() で最小距離を確認し、バッファを加える |
| 資金不足 (134) | 必要証拠金が足りない | ロット数を動的計算するか、口座残高を事前チェック |
安定度を上げるテクニック
| 実用ツール | 主な機能 | 推奨タイミング |
|---|---|---|
| Print() | 変数値やメッセージを「Experts」ログに記録 | プログラム内部のロジックを追跡したいとき |
| Comment() | チャート左上にリアルタイム表示 | キー変数をその場で観察したいとき |
| ストラテジーテスター | ビジュアルモード(Visual Mode)で EA の動きを可視化 | 開発初期のエントリー/エグジットロジック検証 |
| デモ口座テスト | 実際の市場環境でバーチャル資金を使って運用 | リアル口座投入前の最終確認 |
重要: 過去データへの過剰最適化は避け、まずはシンプルな戦略から始めましょう。デモ口座で長期運用し、リスク管理が機能することを確認してからリアル口座に移すのが王道です。
5. 無料 EA リソース:Titan FX のフォワードテストを開発に活かす
ゼロから開発するのが負担に感じる場合は、ブローカーが提供する成熟したリソースを活用するのが賢い選択です。Titan FX は MT4 / MT5 の双方に対応した、70 本以上の無料 EA を公開しています。

これらのリソースの価値は「透明性」にあります:
- Titan FX 研究所では、実際の市場環境でのフォワードテスト結果を確認できます(純粋なヒストリカルバックテストよりも信頼性が高い)
- EA ランキングページでは、収益率・最大ドローダウン・勝率・プロフィットファクターが一覧で見られます
初学者は、ランキング上位かつドローダウンが自分のスタイルに合う EA を選び、まずデモ口座で挙動を観察してみてください。自動売買の習得を加速できるだけでなく、プロフェッショナル EA の構造を学ぶ最適な教材にもなります。
6. FAQ:MQL4 と EA 開発の疑問解消
Q1:1 つのチャートに複数の EA を載せられますか?
できません。1 つのチャートには 1 つの EA しか実行できません。複数戦略を回したい場合は、同じ通貨ペアでチャートウィンドウを複数開いてください。
Q2:MT4 の EA はそのまま MT5 で使えますか?
使えません。MQL4 と MQL5 は取引ロジックの構造が大きく異なるため、コードはそのまま流用できません。MQL5 のオブジェクト指向アーキテクチャに合わせてロジックを書き直す必要があります。
Q3:.mq4 と .ex4 の違いは?
.mq4 は編集可能なソースファイル、.ex4 はコンパイル後の実行ファイルです。プログラムを修正するときは .mq4 を編集し、プラットフォームに読み込ませるときは .ex4 を使います。
Q4:EA は必ず安定して利益を出せますか?
必ずしも、とは言えません。EA のパフォーマンスは戦略ロジックと市場環境の組み合わせで決まり、あらゆる相場で安定して稼げる戦略は存在しません。リスク管理と継続的な改善が、引き続き重要です。
7. まとめ
本記事を通じて、MT4 の環境設定、MQL4 の基本構文、EA 開発フロー、デバッグと最適化、そして Titan FX が提供する無料リソースの活かし方が見えてきたはずです。
EA を自分で書くには練習が必要ですが、シンプルなロジックから始め、バックテストとデモ口座で検証する流れを守れば、着実に安定したシステムを組み上げられます。Titan FX のフォワードテストランキングや成熟した EA を参考にすることで、学習から実運用までの立ち上げ時間を大きく短縮できるでしょう。
関連記事
Titan FX の金融市場リサーチおよび調査チーム。外国為替(FX)、商品(原油・貴金属・農産物)、株価指数、米国株、暗号資産など、幅広い金融商品を対象に投資家向け教育コンテンツを制作しています。
主な出典(カテゴリ別)
- 公式プラットフォーム資料: MetaQuotes、MetaTrader 4、MQL4 Reference の公開ドキュメント。
- EA開発・検証資料: MQL4 Community、MetaEditor、ストラテジーテスター、EA開発に関する公式・技術資料。
- Titan FX関連資料: Titan FX のMT4、EA自動売買、フォワードテスト、EAランキング関連ページ。