ex4ファイルとmq4ファイルの違い【デコンパイルは構造上できません】


- ex4ファイルとmq4ファイルの違い
- mq4からex4へコンパイルする仕組み
- ex4だけでは改造できない理由
- デコンパイルを依頼する際の注意点
- 配布・購入時にどちらの形式を選ぶべきか
ex4ファイルとmq4ファイルの違い
ex4とmq4は、どちらもMT4のEAやインジケーターで使われるファイルです。
違いは、ソースコードを編集できる状態か、MT4で実行するためにコンパイルされた状態かにあります。
| 比較項目 | mq4 | ex4 |
|---|---|---|
| 主な役割 | ソースコードの編集・保存 | MT4上での実行 |
| コードの閲覧 | 可能 | 通常は不可 |
| コードの修正 | 可能 | 不可 |
| MT4での利用 | コンパイルが必要 | そのまま実行できる |
| 配布時の用途 | 改造や共同開発を許可する場合 | ロジックを公開せず配布する場合 |
ファイル拡張子とは?
ファイル拡張子とは、ファイル名の末尾に付く「.jpg」「.png」「.mq4」などの文字列です。
Windowsやソフトウェアは、拡張子を見てファイルの種類を判別します。
MT4では、主に次の拡張子を目にします。
.mq4:MQL4で書かれたソースファイル
.ex4:mq4をコンパイルして作られた実行ファイル
拡張子が表示されていない場合は、Windowsのエクスプローラーで「ファイル名拡張子」を表示する設定に変更してください。
ex4とmq4を取り違えると、編集できないファイルを制作会社へ渡したり、配布する予定のないソースコードを公開したりする原因になります。
mq4ファイルは編集できるソースファイル
mq4ファイルはMetaEditorでソースコードを確認・編集できます。
mq4ファイルには、EAやインジケーターを動かすためのMQL4コードが保存されています。
MetaEditorやテキストエディターで開けるため、ロジックの確認、パラメーターの追加、バグ修正などが可能です。
mq4ファイルが必要になる場面
- EAやインジケーターの動作を修正したい
- アラートやメール通知などの機能を追加したい
- 別の開発者へ改造を依頼したい
- コードを共有して共同開発したい
一方で、mq4を第三者へ渡すと、ソースコードを自由に確認・変更できる状態になります。
販売用ツールや独自ロジックを含むツールでは、mq4を配布せず、コンパイル後のex4だけを渡すケースがあります。
EAそのものの役割やインジケーターとの違いについては、次の記事で解説しています。
ex4ファイルはMT4で実行するためのファイル
ex4はMT4上でEAやインジケーターを動かすためのファイルです。
ex4ファイルは、mq4ファイルをMetaEditorでコンパイルしたときに生成されます。
ソースコードがそのまま記録されているmq4とは異なり、通常の方法でコードを開いて編集することはできません。
そのため、利用者へロジックを直接見せずにEAやインジケーターを配布できます。
ただし、ex4にすればコピーや無断配布を完全に防げるわけではありません。ファイル自体を第三者へ渡される可能性はあるため、有料ツールでは口座認証や利用期限などを組み合わせることがあります。
EAとインジケーターでは、ex4ファイルを保存するフォルダが異なります。
EA:MQL4/Experts
インジケーター:MQL4/Indicators
ファイルを正しいフォルダへ入れたあと、MT4を再起動するか、ナビゲーターを更新して読み込ませます。
mq4からex4へ変換するコンパイルとは?
コンパイルとは、人が読み書きできるmq4のソースコードを、MT4で実行できるex4へ変換する処理です。
mq4ファイル → ex4ファイル
基本的な手順は次のとおりです。
- mq4ファイルをMetaEditorで開く
- 画面上部の「コンパイル」を実行する
- エラーがなければex4ファイルが生成される
- MT4からEAまたはインジケーターを読み込む
コンパイル時にエラーが残っていると、ex4が生成されないか、正常に動作しない場合があります。
画面下部のエラー一覧を確認し、エラーが0件になっていることを確認してから配布してください。

ex4ファイルをmq4ファイルに変換できる?
ex4ファイルをmq4ファイルへ変換する処理は、一般にデコンパイルと呼ばれます。
ただし、MetaEditorにはex4をmq4へ戻す変換機能はありません。ex4を解析するツールは存在しますが、元の変数名やコメントなどが失われるため、開発者が作成したmq4と同じ状態へ完全に戻すことは難しいです。
デコンパイルで元どおりにならない主な部分
- 変数や関数につけられていた名前
- コード内のコメントや説明文
- 改行や処理をまとめた書き方
- 開発時に使われていた一部の情報
MT4は2014年のBuild 600以降、MQL4のコンパイラーやex4ファイルの仕組みが大きく変更されました。
現在の環境で作られたex4は、MetaEditorで開いてソースコードを確認したり、そのままmq4へ変換したりすることはできません。

ex4をデコンパイルするやり方はある?
ex4のデコンパイル方法を探している場合でも、MetaEditorでファイルを開くだけでmq4へ変換できるわけではありません。
自分で作成したex4の元データを失った場合は、まずパソコンやクラウドのバックアップ、古いVPS、開発時のフォルダにmq4が残っていないか確認します。
第三者が作成したex4を改造したい場合は、販売者へmq4の提供や機能追加を相談するのが先です。無断での解析や改変は、著作権や利用規約に抵触する可能性があります。
また、解析を依頼してコードらしきものが作られたとしても、次の点は確認が必要です。
- 元のmq4を復元したものか
- 外部から動作を調べて作り直したものか
- 一部の処理だけを再現したものか
- 正常にコンパイル・実行できる状態か
「ex4から必ず元のmq4を完全復元できる」という説明は、そのまま信用しない方がよいでしょう。
一方で、「ex4は絶対に解析されない」とも言い切れません。重要なロジックを配布する場合は、ex4へコンパイルするだけでなく、口座認証やサーバー認証などを組み合わせて対策します。
他人のex4をデコンパイルする際の注意点
第三者が作成したex4を無断で解析・改変すると、著作権や利用規約の問題が生じる可能性があります。
購入したEAやインジケーターであっても、プログラムそのものの著作権まで購入者へ移るとは限りません。
改造が必要な場合の確認順
- 開発者や販売者へmq4の提供が可能か確認する
- 公式に改造や機能追加を依頼できないか相談する
- 利用規約で解析や改変が禁止されていないか確認する
- 元のロジックを使わず、新しく作り直す方法を検討する
開発者本人から許可を得ている場合や、自分で作成したex4を調査する場合を除き、無断でのデコンパイルは避けた方が安全です。
ex4だけでEAやインジケーターは使える?
MT4でEAやインジケーターを動かすだけなら、基本的にはex4ファイルがあれば利用できます。
mq4はソースコードを修正するときに必要なファイルであり、通常のトレードで毎回開くものではありません。
ex4だけでできること
- EAやインジケーターをMT4へ導入する
- ツール側で公開されている入力パラメーターを変更する
- チャート上でツールを動かす
- 提供されている機能をそのまま使用する
ただし、次のような変更にはmq4が必要です。
- 売買条件やサイン条件を変更する
- 新しいパラメーターを追加する
- アラートや通知機能を追加する
- エラーや不具合をコードから修正する
ex4しか持っていない状態で改造を依頼しても、制作会社が対応できない場合があります。
将来的に機能追加を予定している場合は、制作を依頼する段階でmq4の納品条件や追加料金を確認しておきましょう。
ex4とmq4はどちらを配布すべき?
配布形式は、利用者へどこまでの権限を渡すかで決めます。
| 配布する状況 | 適した形式 |
|---|---|
| 利用者にそのまま使ってもらう | ex4 |
| 独自ロジックを公開したくない | ex4 |
| 購入者による改造を許可する | mq4 |
| 複数の開発者で共同編集する | mq4 |
| 別の開発者へ修正を引き継ぐ | mq4 |
有料ツールをex4で配布する場合でも、ファイルのコピーそのものを防げるわけではありません。
指定口座だけで動かしたい場合は、ex4へのコンパイルに加えて、口座番号を照合する認証を実装します。
一方、mq4を納品してもらう場合は、ソースコードの権利や再配布の可否も確認しておく必要があります。
mq4が手元にあることと、そのコードを自由に販売・公開できることは同じではありません。
ex4・mq4ファイルを受け取ったときの確認項目
- ファイルの拡張子がex4かmq4か
- EAとインジケーターのどちらなのか
- 保存先のフォルダが正しいか
- ex4が現在のMT4で正常に読み込めるか
- mq4をコンパイルしたときにエラーが出ないか
- 改造・再配布・商用利用が許可されているか
古いex4の多くは現在のMT4でも利用できますが、旧形式のデータ構造やDLLへ依存するツールでは正常に動作しない場合があります。
mq4が付属していれば、現在のMetaEditorで再コンパイルできる可能性がありますが、古いコードでは関数や記述方法の修正が必要になる場合もあります。
ex4ファイルとmq4ファイルの違いまとめ


- mq4はソースコードを確認・編集できるファイル
- ex4はmq4をコンパイルして作られるMT4の実行ファイル
- ex4から元のmq4を完全に復元できるとは限らない
- ツールを使うだけならex4、改造するならmq4が必要
- ex4の配布だけでコピーや無断配布を完全に防げるわけではない


