MQL4とMQL5の違い|EA・インジケーター制作では何が変わる?
MQL4とMQL5は、どちらもMetaTrader用のEA・インジケーターを作るためのプログラミング言語です。
名前は似ていますが、MT4用のMQL4と、MT5用のMQL5では、発注処理、ポジション管理、インジケーターの作り方、ファイル形式などに大きな違いがあります。
そのため、MT4で使っていたEAやインジケーターを、そのままMT5へコピーして動かすことはできません。
特に、MT4からMT5への移植を依頼する場合、この違いを知らないまま相談すると、「思ったより見積もりが高い」「移植したのに動きが違う」「古い仕様書を渡したら追加確認が増えた」といったトラブルにつながることがあります。
この記事では、プログラミングをしない依頼者向けに、MQL4とMQL5で何が変わるのか、EA・インジケーター制作ではどこに費用や納期の差が出やすいのかを解説します。

MT4のEAをMT5用にするだけなら、少し直せば終わるものだと思っていました。

単純なインジケーターなら比較的スムーズなこともありますが、EAは発注やポジション管理の仕組みが変わります。内容によっては、移植というよりMT5用に作り直す感覚に近くなります。

MQL4とMQL5は似た名前ですが、MT4用とMT5用でファイル形式や作り方が異なります。
- MQL4とMQL5の基本的な違い
- MT4用EA・インジケーターをMT5でそのまま使えない理由
- MT4からMT5へ移植すると費用や納期が変わる理由
- ネッティング口座でナンピンEA・両建てEAに注意が必要な理由
- インジケーター移植でサイン位置がずれる原因
- 移植依頼時に伝えるべき情報
MQL4とMQL5の基本的な違い
MQL4はMT4用、MQL5はMT5用の開発言語です。
EAやインジケーターを作るという目的は同じですが、内部の仕組みは大きく異なります。
| 項目 | MQL4 | MQL5 |
|---|---|---|
| 対応プラットフォーム | MT4 | MT5 |
| ソースファイル | mq4 | mq5 |
| コンパイル後ファイル | ex4 | ex5 |
| 主な用途 | MT4用EA・インジケーター制作 | MT5用EA・インジケーター制作 |
| EA制作で変わる部分 | 注文とポジションを比較的シンプルに扱うことが多い | 注文・約定・ポジションを分けて考える必要がある |
| インジケーター制作で変わる部分 | 値の取得や表示処理が比較的シンプルなことが多い | 値の受け渡しや配列の向きに注意が必要 |
| 互換性 | MT5ではそのまま動かない | MT4ではそのまま動かない |
特に注意したいのは、mq4ファイルをMT5に入れても、そのままMT5用として動くわけではないことです。
同じように、MT4用のex4ファイルをMT5で動かすこともできません。MT5で使うには、mq5として作り直し、ex5としてコンパイルする必要があります。
ファイル形式はmq4・ex4とmq5・ex5で分かれる
EAやインジケーターを依頼するときは、ファイル形式の違いも理解しておくとやり取りがスムーズです。
- mq4:MT4用のソースコード
- ex4:MT4用の実行ファイル
- mq5:MT5用のソースコード
- ex5:MT5用の実行ファイル
修正や移植を依頼する場合、ソースコードであるmq4やmq5があるかどうかが重要です。
ex4やex5だけしかない場合、元のロジックを直接編集できないため、同じ仕様を確認しながら作り直す形になることがあります。

MT4からMT5への移植費用と納期は、内容で大きく変わる
MT4からMT5への移植で、依頼者が最も気になるのは「どれくらいの費用と期間がかかるのか」だと思います。
目安として、単純な移動平均線のサインツールや、表示条件が少ないインジケーターであれば、新規制作の6〜7割程度の費用で移植できるケースもあります。納期も1週間前後で進められることがあります。
一方で、複雑なナンピンEA、両建てEA、複数ポジション管理を行うEA、外部インジケーターと連携するEAでは、ロジックをMT5向けに設計し直す必要があり、新規制作とほぼ変わらない費用と期間になることがあります。内容によっては、納期が3週間以上になるケースもあります。
また、開発歴の浅い方が書いた大きなコードや、仕様が整理されていないEAの場合は、不具合になりそうな箇所を修正しながら、全体への影響をテストして進める必要があります。
そのため、場合によっては移植の方が新規制作よりも納期や費用が大きくなることもあります。
| 移植内容 | 費用・納期の目安 | 注意点 |
|---|---|---|
| シンプルなサインツール | 新規制作の6〜7割程度で済むケースあり。納期1週間前後のこともある | 条件が明確で、表示内容が少ない場合 |
| 一般的なEA | 新規制作に近い費用になることがある | 発注・決済・ポジション管理の見直しが必要 |
| ナンピン・両建て・複数ポジションEA | 新規制作と同等、またはそれ以上になることがある。納期3週間以上のケースもある | MT5口座タイプに合わせた再設計が必要 |
| 大きく複雑な既存コード | 調査・修正・テストに時間がかかりやすい | 修正による影響範囲を確認しながら進める必要がある |

EA制作で大きく変わるのは発注とポジション管理
MQL4とMQL5の違いで、EA制作に最も影響しやすいのが発注処理とポジション管理です。
MT4では、注文やポジションを比較的シンプルに扱うEAが多く作られてきました。
一方、MT5では「注文」「約定」「ポジション」を分けて考える必要があります。
| 考え方 | 内容 | 依頼者が気にするポイント |
|---|---|---|
| 注文 | 買い・売りなど、取引を出す指示 | EAがどのタイミングで発注するか |
| 約定 | 注文が実際に成立した結果 | 滑りや部分約定をどう扱うか |
| ポジション | 現在保有している建玉 | 保有中のポジションをどう管理するか |
この違いにより、MT4のEAでよく使われる注文ループや決済処理を、MT5向けにそのまま置き換えるだけでは動かないことがあります。
特に、ナンピン、両建て、複数ポジション管理、部分決済、マジックナンバー管理を行うEAでは、MT5側の仕様に合わせた設計が必要です。
ネッティング口座では、MT4のナンピンEAをそのまま考えない方がよい
MT5では、口座タイプによってポジションの扱いが変わることがあります。
代表的なのが、ネッティング口座とヘッジ口座です。
| 口座タイプ | 特徴 | EA制作での注意点 |
|---|---|---|
| ネッティング口座 | 同一銘柄のポジションが1つにまとめられる | ナンピンや両建てをMT4と同じ感覚では扱えない |
| ヘッジ口座 | 同一銘柄で複数ポジションを持てる | MT4に近い感覚で複数ポジションを扱いやすい |
ネッティング口座でMT4のナンピンEAをそのまま動かそうとすると、1個目のポジション、2個目のポジションという形で分かれず、同じ銘柄のポジションが1つに合算されることがあります。
その結果、平均取得単価が変わり、EAが「今いくら含み損があるのか」「どのポジションを決済するのか」をMT4時代と同じ考え方で処理できなくなる場合があります。
こうした状態で無理に移植すると、意図しないロットで保有したり、決済条件がずれたり、最悪の場合は想定以上の損失につながる可能性があります。
そのため、ネッティング口座対応のEAでは、単にコードを書き換えるのではなく、内部の計算ロジックをMT5用に設計し直す必要があります。

インジケーター移植では、サイン位置のズレが起きやすい
インジケーター制作でも、MQL4とMQL5では作り方が変わります。
依頼者が細かいコードの書き方を覚える必要はありません。大切なのは、移植時にサインの位置や通知タイミングがずれることがあると理解しておくことです。
MT5では、インジケーターの値を別の方法で受け取ったり、過去のローソク足をどの向きに数えるかを合わせたりする必要があります。
この調整を誤ると、MT4では1つ前のローソク足に出ていた矢印が、MT5では別の場所に表示される、通知が1本遅れる、過去のサイン位置がずれるといった問題が起こります。
ローソク足の数え方が違うと、矢印サインの位置がずれる
MT4とMT5では、ローソク足の数え方やデータの向きを意識する必要があります。
例えるなら、「右から左に読む本」を、無理やり「左から右に読む国」へ持っていくようなものです。
本の内容は同じでも、読む向きが違えば、何ページ目を見ているのかがずれてしまいます。
インジケーターでも同じで、この向きの変換処理を忘れると、1つ前のローソク足に出るはずの矢印サインが、全く関係のない過去の場所に表示されるようなバグが起きることがあります。
依頼時には、「MT4版と同じ場所に矢印が出るか」「通知タイミングが同じか」「過去チャートで表示位置を比較できるか」を確認するとよいです。
OnCalculateやCopyBufferは、依頼者は詳しく覚えなくてよい
MQL5インジケーターの解説では、OnCalculate、CopyBuffer、ハンドル、array out of rangeといった用語が出てくることがあります。
これらは開発者が意識する technical な部分です。制作を依頼する人が、コードの意味まで覚える必要はありません。
依頼者目線で重要なのは、これらの処理に問題があると、次のようなトラブルが起こる可能性があるという点です。
| 開発側の問題 | 依頼者側で見えるトラブル | 確認したいこと |
|---|---|---|
| 値の取得方法が合っていない | インジケーターの数値や矢印がMT4版と違う | MT4版とMT5版の表示比較ができるか |
| ローソク足の向きがずれている | サインが別の足に表示される | 同じチャートで矢印位置を比較できるか |
| 計算開始位置がずれている | 過去サインが消える、表示が不安定になる | 再起動後も同じ表示になるか |
| 配列エラーが残っている | インジケーターが止まる、チャートに表示されない | Experts・Journalにエラーが出ていないか |
つまり、依頼者が見るべきなのはコードの書き方ではなく、移植後にMT4版と同じ表示・同じ通知タイミングになっているかです。


古い仕様書をそのまま渡すだけでは足りないことがある
MT4のEAをMT5へ移植する際、よくある失敗が「MT4を作ってもらった時の古い仕様書をそのまま渡すだけで依頼すること」です。
もちろん、古い仕様書は大切な資料です。しかし、MT4時代の仕様書には、MT5の口座タイプや発注方式を前提にした説明が入っていないことがあります。
たとえば、仕様書に「両建てする」と書いてあっても、MT5のネッティング口座では、MT4と同じ感覚で両建てできない場合があります。
そのため、依頼時は古い仕様書を渡すだけでなく、どのFX業者の、どの口座タイプで使いたいかもセットで伝えてください。
- MT5で使いたいFX業者名
- 口座タイプがヘッジ口座か、ネッティング口座か
- MT4版と同じ動きにしたいのか、MT5向けに仕様を変えてよいのか
- 両建て、ナンピン、複数ポジション管理を使うか
- MT4版で問題になっていた挙動があるか
- 移植後に追加したい機能があるか
古い仕様書は「過去の設計図」です。MT5移植では、それに加えて「どの環境で、どう動かしたいか」を伝える必要があります。
MT4のEA・インジケーターをMT5へ移植するときの注意点
MT4からMT5への移植では、単純な文字置換だけでは対応できないことが多くあります。
EAでは、発注、決済、ポジション管理、注文履歴、エラー処理の見直しが必要になります。
インジケーターでは、サイン位置、表示タイミング、通知タイミング、再起動後の表示、過去チャートとの一致などを確認する必要があります。
- mq4ソースコードがあるか
- 元のEA・インジケーターの仕様が分かるか
- MT5で使いたい口座タイプはネッティングかヘッジか
- ナンピン、両建て、複数ポジション管理を使っているか
- 外部インジケーターを参照しているか
- MT4版と同じサイン位置・通知タイミングを再現したいか
- 販売用にする予定があるか
- 移植後に挙動を変えたい部分があるか
MT4で動いていたものを完全に同じ挙動で再現したい場合は、元の動作確認用のチャート画像、バックテスト結果、パラメーター設定、売買履歴があると確認しやすくなります。

MQL5は販売用EA・インジケーターとの相性もよい
これから新しくEAやインジケーターを作るなら、MT5向けにMQL5で制作するケースが増えています。
MT5は、複数銘柄への対応、テスター機能、チャート表示、外部連携などを前提に、販売用ツールを作りやすい環境として使われることがあります。
また、EAやインジケーターを販売・配布する場合は、口座認証、利用期限、アップデート通知などもあわせて検討できます。

制作依頼ではMQL4かMQL5かを最初に伝える
EAやインジケーター制作を依頼するときは、最初にMT4用なのか、MT5用なのかを伝えてください。
同じ「移動平均線でエントリーするEA」でも、MQL4で作るのか、MQL5で作るのかによって、発注処理やテスト方法が変わります。
- MT4用か、MT5用か
- EAか、インジケーターか
- 新規制作か、既存ツールの移植・改造か
- mq4・mq5ソースコードがあるか
- 現在使っているex4・ex5ファイルがあるか
- MT5で使う予定のFX業者と口座タイプ
- 販売用か、自分用か
- 通知、認証、パネル、ボタンなど追加したい機能があるか
「MT4で使っていたものをMT5で使いたい」という場合も、まずは元ファイル、古い仕様書、現在の運用環境を整理して相談するとスムーズです。
MT5 EA・インジケーター制作を相談する
シストレファクトリーでは、MT5 EA・MT5インジケーターの制作に対応しています。
MT4からMT5への移植、新規EA制作、矢印サインや通知付きインジケーター制作など、内容に合わせてご相談いただけます。


よくある質問
- MT4用のex4ファイルをMT5へ入れれば動きますか?
-
動きません。ex4はMT4用の実行ファイルで、MT5ではそのまま利用できません。MT5で使うには、MQL5向けに作り直し、ex5ファイルとしてコンパイルする必要があります。
- MT4からMT5への移植費用はどれくらいですか?
-
内容によります。シンプルなサインツールなら新規制作の6〜7割程度で済むケースもありますが、ナンピンEAや複数ポジション管理を行うEAでは、新規制作と同等、またはそれ以上になることもあります。
- ex4やex5だけでも修正できますか?
-
基本的には、修正にはソースコードであるmq4またはmq5が必要です。ex4やex5だけの場合、元のコードを直接編集できないため、仕様を確認しながら作り直す形になることがあります。
- ネッティング口座でもナンピンEAは作れますか?
-
作れる場合はありますが、MT4のナンピンEAをそのまま移植する感覚では難しいことがあります。ネッティング口座では同一銘柄のポジションが1つに合算されるため、平均取得単価や決済条件をMT5用に設計し直す必要があります。
- インジケーター移植では何を確認すればよいですか?
-
MT4版とMT5版で、矢印サインの位置、通知タイミング、再起動後の表示、過去チャートでの見え方が一致しているかを確認してください。コード用語を覚えるより、実際の表示が同じかを見ることが大切です。
- 古い仕様書だけ渡せばMT5へ移植できますか?
-
古い仕様書は重要ですが、それだけでは足りないことがあります。MT5で使うFX業者、口座タイプ、ヘッジ口座かネッティング口座か、MT4版と同じ挙動にしたいかも一緒に伝えてください。
- これから作るならMT4とMT5のどちらがよいですか?
-
既存のMT4環境や利用者が多い場合はMT4用を選ぶ理由があります。一方、これから新しく販売用EA・インジケーターを作る場合は、MT5向けにMQL5で制作する方が将来的な運用を考えやすいケースがあります。
まとめ
MQL4とMQL5は、どちらもMetaTrader用の開発言語ですが、MT4用とMT5用で仕組みが大きく異なります。
- MQL4はMT4用、MQL5はMT5用の開発言語
- mq4・ex4と、mq5・ex5は互換ではない
- 移植費用と納期は、ロジックの複雑さや既存コードの状態で大きく変わる
- EA制作では、発注処理とポジション管理の違いが大きい
- MT5ではネッティング口座・ヘッジ口座の違いも確認する
- インジケーター移植では、矢印位置や通知タイミングのズレに注意する
- 古い仕様書だけでなく、使いたいFX業者と口座タイプも伝える
EA・インジケーター制作を依頼するときは、MT4用かMT5用か、ソースコードがあるか、どの口座タイプで動かしたいかを最初に整理しておくと、見積もりや仕様確認が進めやすくなります。