MQL4とMQL5の違い|MT4/MT5開発依頼前に確認すること
MQL4とMQL5は、どちらもMetaTrader系のEA・インジケーター開発に使われる言語ですが、対象環境、ファイル形式、注文処理、ポジション管理、インジケーター構造などに違いがあります。
MQL4は主にMT4向け、MQL5は主にMT5向けです。名前が似ているため、MQL4のEAやインジケーターをMQL5へ簡単に変換できると思われることがありますが、実際には単純変換では済まない場合があります。
この記事では、MQL4とMQL5の違いを、MT4/MT5開発依頼、既存EA・インジケーター改修、MT4からMT5への移行相談の前に確認する項目として整理します。
なお、この記事はEA・インジケーターの開発、改修、移行、動作確認、不具合調査を目的とした技術記事です。投資助言、売買指示、利益保証、勝率保証、損失回避保証を目的としたものではありません。
この記事で確認すること
- MQL4とMQL5の基本的な違い
- mq4/ex4、mq5/ex5などのファイル形式
- EA開発での発注・決済・ポジション管理の違い
- インジケーター開発での表示・バッファ・通知の違い
- 変換・移植・作り直しの判断
- 移行相談前に整理する資料
- 相談時に送る情報と送らない方がよい情報
MQL4とMQL5は何が違うのか
MT4向けとMT5向けの違い
MQL4は、主にMT4向けのEA、インジケーター、スクリプトを作るための開発言語です。
MQL5は、主にMT5向けのEA、インジケーター、スクリプトを作るための開発言語です。
どちらもMetaTrader系の言語ですが、対象となるプラットフォームが異なるため、ファイル形式やプログラム構造、注文処理、ポジション管理の考え方が異なります。
| 項目 | MQL4 | MQL5 |
|---|---|---|
| 主な対象 | MT4 | MT5 |
| ソースファイル | mq4 | mq5 |
| 実行ファイル | ex4 | ex5 |
| 主な用途 | MT4用EA・インジ・スクリプト | MT5用EA・インジ・スクリプト |
| 移行時の注意 | MT5ではそのまま使えない場合がある | MT4とは別設計になる場合がある |
同じMetaTrader系でも別物として確認する
MQL4とMQL5は、文法や考え方に似ている部分があります。しかし、EAやインジケーターを実際に移行・改修する場合は、別物として確認する方が安全です。
特に、注文や決済を行うEA、複数ポジションを管理するEA、アラートや外部通知を持つインジケーター、サブウィンドウや複数バッファを使うインジケーターでは、確認範囲が広くなります。
開発依頼前に混同しない
開発依頼前には、MT4用なのか、MT5用なのか、MQL4なのか、MQL5なのかを整理してください。
「MT4で使っていたEAをMT5でも使いたい」という相談では、既存ファイルの形式、ソースコードの有無、残したい機能、不要な機能、現在の動作画面、ログを確認する必要があります。
ファイル形式の違い
mq4/ex4
mq4 は、MQL4のソースファイルです。既存EAやインジケーターの改修、仕様確認、MT5化相談では、mq4があるかどうかが重要です。
ex4 は、MT4で実行するコンパイル済みファイルです。ex4だけでは内部ロジックを直接確認して改修することは基本的に難しくなります。
mq5/ex5
mq5 は、MQL5のソースファイルです。MT5向けEAやインジケーターの改修では、mq5があるかどうかを確認します。
ex5 は、MT5で実行するコンパイル済みファイルです。ex5のみの場合も、内部ロジックを確認して改修することは基本的に難しくなります。
setファイル
setファイルは、EAやインジケーターのInputs設定を保存したファイルです。
MQL4/MQL5そのもののソースではありませんが、現在の設定値を確認するために重要です。移行相談では、現在使っているsetファイルと、MT5側で再現したい設定を整理してください。
テンプレートやライブラリ
EAやインジケーターによっては、テンプレート、ライブラリ、画像、外部ファイル、共通ヘッダーなどを使っている場合があります。
本体ファイルだけを移しても、必要な付属ファイルが不足していると表示や動作が変わることがあります。
| ファイル・資料 | 対象環境 | 意味 | 相談時の重要度 |
|---|---|---|---|
| mq4 | MT4 | MQL4ソースファイル | 高:改修・移行判断に重要 |
| ex4 | MT4 | MT4用実行ファイル | 中:実行確認は可能だが内部改修は難しい |
| mq5 | MT5 | MQL5ソースファイル | 高:MT5側の改修判断に重要 |
| ex5 | MT5 | MT5用実行ファイル | 中:実行確認は可能だが内部改修は難しい |
| set | MT4/MT5 | Inputs設定ファイル | 高:現在設定の確認に使用 |
| スクリーンショット | MT4/MT5 | 表示や設定画面 | 高:見た目や症状確認に有効 |
EA開発での違い
発注処理
EA開発では、注文を出す処理、注文結果を確認する処理、エラー時にログを出す処理が重要です。
MQL4とMQL5では、発注処理の書き方や管理方法が異なるため、MQL4の発注処理をそのままMQL5へ移すだけでは対応できない場合があります。
ポジション管理
EAでは、どのポジションを管理対象にするかが重要です。
MT4用EAをMT5用に作り直す場合、注文、ポジション、履歴、チケット、マジックナンバーの扱いを確認する必要があります。ナンピンEA、コピーEA、複数ロジックEAでは、特に慎重な確認が必要です。
マジックナンバー
マジックナンバーは、EAが注文やポジションを識別するための番号です。
MQL4/MQL5の移行相談では、既存EAがどのマジックナンバーを使っているか、ロジックごとに分かれているか、手動注文を含めるか、他EAと重複していないかを整理してください。
エラー処理
EAが注文できない、決済できない、設定が反映されない場合は、エラー処理とログ出力が重要です。
移行時にエラー処理が不足すると、MT5側で動かない理由が確認しづらくなる場合があります。開発依頼時には、どの段階でログを出したいかも確認対象になります。
ログ
ログは、EAが何を判断したかを確認するための重要な情報です。
移行・改修後に、初期化ログ、設定値ログ、注文前ログ、注文結果ログ、決済ログ、エラーログが確認できると、不具合調査や設定確認が進めやすくなります。
| EA開発項目 | 確認する内容 | 移行時の注意点 |
|---|---|---|
| 発注処理 | 注文条件、注文方法、注文結果 | そのまま流用できない場合がある |
| 決済処理 | 決済条件、対象ポジション、エラー | 対象管理を再確認する |
| ポジション管理 | チケット、履歴、マジック、銘柄 | MT5側の管理方式に合わせる |
| マジックナンバー | EA・ロジック・手動注文の区別 | 重複や対象外管理に注意する |
| ログ | 設定値、判定、注文結果、エラー | 移行後の確認用に整理する |
インジケーター開発での違い
表示バッファ
インジケーターでは、計算結果をチャートへ表示するためにバッファを使うことがあります。
MQL4とMQL5では、バッファや描画設定の扱いが異なるため、MT4インジケーターをMT5へ移行する場合は、表示部分を確認する必要があります。
チャート描画
ライン、矢印、ラベル、パネル、サブウィンドウなどの描画方法も確認対象です。
MT4側で見えていた表示をMT5側で再現したい場合、表示位置、色、太さ、矢印コード、サブウィンドウ、更新タイミングを整理してください。
アラート
アラート付きインジケーターでは、どの条件で通知するか、どのタイミングで通知するか、重複通知をどう防ぐかを確認します。
移行時に表示条件と通知条件がずれると、表示は出るが通知されない、通知は出るが表示がないといった問題が起きることがあります。
サブウィンドウ
RSIや独自オシレーターのように、サブウィンドウへ表示するインジケーターでは、表示範囲、最小値、最大値、バッファ数、ライン種類を確認します。
MT5側で見た目が変わる場合は、サブウィンドウ設定や描画方式を確認してください。
通知
メール通知、プッシュ通知、Webhook通知、Discord通知などがある場合は、通知処理も移行対象になります。
Webhook URL、APIキー、GAS URL、認証トークンなどの実値は、公開ページや通常問い合わせ文面へそのまま貼らないよう注意してください。
| インジ開発項目 | 確認する内容 | 移行時の注意点 |
|---|---|---|
| 表示バッファ | ライン、矢印、ヒストグラム | MQL5向けに見直しが必要な場合がある |
| チャート描画 | 色、太さ、位置、ラベル | スクリーンショットで確認する |
| サブウィンドウ | 表示範囲、最小値、最大値 | 表示形式が変わる場合がある |
| アラート | 通知条件、タイミング、重複防止 | 表示条件と通知条件を分ける |
| 外部通知 | Webhook、WebRequest、送信ログ | URLや認証情報の扱いに注意する |
変換・移植・作り直しの判断
そのまま動かないケース
MQL4で作られたEAやインジケーターを、MT5へそのまま入れても動かない場合があります。
MT4用のex4ファイルをMT5へ入れても、MT5用EAやインジケーターとしては扱えません。ファイル形式が違うだけでなく、内部構造も異なるためです。
一部流用できるケース
mq4ソースがある場合、条件式や計算ロジックの一部を参考にできる場合があります。
ただし、発注・決済、ポジション管理、バッファ、描画、外部連携などは、MQL5向けに書き直しや再設計が必要になることがあります。
仕様を見直すべきケース
古いEAやインジケーターを移行する場合、単に同じものを作り直すのではなく、不要な機能を整理した方がよい場合があります。
たとえば、使っていない通知、不要な表示、古い外部連携、確認しづらいログ、重すぎる描画処理などは、移行時に見直す候補になります。
ソースなしの制約
ex4やex5などのコンパイル済みファイルしかない場合、内部ロジックを直接確認して変換することは基本的に難しくなります。
この場合は、現在の表示、動作、Inputs、スクリーンショット、ログ、希望仕様をもとに、同等機能の再作成を検討する形になります。
| 状況 | 判断の目安 | 必要な資料 |
|---|---|---|
| mq4がある | 既存仕様を確認しやすい | mq4、set、ログ、表示画面 |
| ex4のみ | 再作成前提になる可能性がある | 画面、Inputs、希望仕様、ログ |
| 表示だけのインジ | 移行範囲を比較的整理しやすい | 表示条件、色、時間足、画像 |
| EAの発注・決済あり | 再設計が必要になる場合がある | 注文条件、決済条件、マジック、ログ |
| 外部連携あり | 慎重な確認が必要 | 通知条件、送信仕様、ログ、マスク済み設定 |
移行相談前に確認するもの
ソースコード
移行相談では、まずソースコードの有無を確認します。
MT4側であればmq4、MT5側であればmq5があるかを確認してください。ソースコードがある場合、内部ロジックを確認しながら移行や改修を検討しやすくなります。
コンパイル済みファイル
ex4やex5は、MT4/MT5で実行するためのファイルです。
動作確認には役立ちますが、内部ロジックの確認や改修には制約があります。ex4/ex5のみの場合は、再作成前提で確認する必要がある場合があります。
set
setファイルは、Inputs設定を保存したファイルです。
現在の設定値、表示ON/OFF、通知条件、ロット、マジックナンバー、対象時間、ログ設定などを確認するために使います。
スクリーンショット
スクリーンショットは、現在の表示、チャート状態、Inputs、エラー、ログ画面を確認するために役立ちます。
ただし、口座番号、Webhook URL、APIキー、GAS URL、認証トークンなどが映り込まないよう注意してください。
ログ
ExpertsログやJournalログは、動作確認や不具合調査に必要です。
移行後に再現したい動作や、現在起きている不具合を確認するため、発生時刻前後のログを整理してください。
希望動作
移行相談では、「今と同じにしたい」だけでは確認が難しい場合があります。
残したい機能、不要な機能、MT5側で追加したい機能、表示を変えたい部分、通知を変えたい部分を分けて整理してください。
| 準備する情報 | 確認できること | 注意点 |
|---|---|---|
| mq4 / mq5 | 内部ロジックや改修範囲 | ソース有無が判断材料になる |
| ex4 / ex5 | 現在の実行ファイル | 内部確認には制約がある |
| setファイル | 現在の設定値 | 認証情報やURLの実値に注意する |
| スクリーンショット | 表示や症状 | 口座番号や認証情報の映り込みに注意 |
| ログ | エラーや動作状態 | 発生時刻前後を整理する |
| 希望動作 | 移行後の仕様 | 残す機能と削る機能を分ける |
相談時に送らない方がよい情報
口座番号の実値
スクリーンショットやログには、口座番号が映り込む場合があります。
相談時には、必要に応じて一部を伏せるなど、実値をそのまま送らないよう注意してください。
認証トークン
EAやインジケーターによっては、認証トークンやライセンスキーがInputsやログに含まれる場合があります。
これらは利用権限に関係する情報のため、そのまま共有しないようにしてください。
Webhook URL
Discord通知や外部通知を使うツールでは、Webhook URLが設定されている場合があります。
Webhook URLは通知先へ接続できる情報のため、公開ページや通常の問い合わせ文面にそのまま貼らないよう注意してください。
個人情報
氏名、メールアドレス、口座情報、認証情報、外部サービスのキーなど、確認に不要な個人情報は送らないようにしてください。
| そのまま送らない方がよい情報 | 理由 |
|---|---|
| 口座番号 | 個別口座情報に該当するため |
| 認証トークン | 利用権限に関係するため |
| Webhook URL | 通知先へ接続できる情報のため |
| GAS URL | 外部シート連携先に関係するため |
| APIキー | 外部サービス認証に関係するため |
| 個人情報 | 確認に不要な情報を含む可能性があるため |
よくあるトラブルと確認順
MQL4/MQL5の違いが関係する相談では、ファイル形式、ソース有無、対象環境、表示条件、発注処理、ログを順番に確認することが重要です。
| 症状 | 主な原因候補 | 確認順 |
|---|---|---|
| MT4用EAがMT5で動かない | ファイル形式と開発言語が違う | mq4/ex4か、mq5/ex5か確認する |
| MT4インジがMT5で表示されない | 描画方式やバッファ構造が違う | ソース有無、表示条件、スクリーンショットを確認 |
| 変換したが注文しない | 発注・ポジション管理が合っていない | 注文条件、マジック、ログを確認 |
| 通知が動かない | 通知設定や外部連携が未整理 | 通知条件、WebRequest、送信ログを確認 |
| 改修できるか分からない | ソースコードがない | mq4/mq5の有無と再作成可否を確認 |
よくある質問
MQL4とMQL5は互換性がありますか?
完全な互換性があるとは限りません。EAやインジケーターの構造によって、移植や作り直しが必要になる場合があります。
MQL4のEAをMQL5へ自動変換できますか?
単純変換だけで動くとは限りません。発注処理、ポジション管理、ログ、エラー処理などの違いを確認する必要があります。
ex4しかない場合でもMT5化できますか?
仕様の再確認や作り直しになる可能性があります。ソースコードであるmq4の有無が重要な判断材料になります。
MQL4とMQL5のどちらで新規開発すべきですか?
利用環境、既存資産、必要機能、検証方法によって判断します。MT4で使うならMQL4、MT5で使うならMQL5を前提に整理するのが基本です。
MT4インジケーターをMT5へ移行できますか?
ソースコードの有無、表示方式、通知条件、バッファ、描画方式によって判断します。単純変換ではなく、MT5用に作り直しが必要になる場合があります。
移行で売買成績は保証されますか?
いいえ。移行や作り直しはソフトウェア上の対応であり、利益、勝率、損失回避を保証するものではありません。
相談前に何を送ればよいですか?
mq4/mq5などのソース、ex4/ex5、setファイル、スクリーンショット、Expertsログ、Journalログ、残したい機能、不要な機能、希望動作を整理してください。
関連ページ
- MQL4とは?MT4のEA・インジケーター開発でできること
- MQL5とは?MT5のEA・インジケーター開発でできることを初心者向けに解説
- MT4とMT5の違いとは?EA・インジケーター開発前に確認すること
- MT4 EAとは?入れ方・設定・動かない時の確認ポイント
- MT4インジケーターとは?入れ方・表示されない時の確認ポイント
- MT5 EAとは?入れ方・設定・動かない時の確認ポイント
- MT5インジケーターとは?入れ方・表示されない時の確認・開発依頼まで解説
- 既存EA・インジケーター改修相談
- 開発・改修の相談ページ
- 不具合報告・調査依頼について
- 免責事項
MQL4からMQL5への移行、MT4 EA・インジケーターのMT5用作り直し、既存ツールの改修でお困りの場合は、mq4/mq5の有無、ex4/ex5、setファイル、スクリーンショット、ログ、残したい機能と不要な機能を整理したうえでご相談ください。

