yuki
yuki
MT4のEAやインジケーターを配布するとき、よく確認されるのが「ex4とmq4は何が違うのか」という点です。簡単に分けると、mq4は編集できるソースファイル、ex4はMT4で実行するためのファイルです。
カオチャイ
カオチャイ
ツールを使うだけならex4、コードを確認したり改造したりするならmq4が必要になるのですね。
この記事でわかること
  • ex4ファイルとmq4ファイルの違い
  • mq4からex4へコンパイルする仕組み
  • ex4だけでは改造できない理由
  • デコンパイルを依頼する際の注意点
  • 配布・購入時にどちらの形式を選ぶべきか

ex4ファイルとmq4ファイルの違い

ex4ファイルとmq4ファイルの拡張子同じファイル名でも、末尾の拡張子によって役割が変わります。

ex4とmq4は、どちらもMT4のEAやインジケーターで使われるファイルです。

違いは、ソースコードを編集できる状態か、MT4で実行するためにコンパイルされた状態かにあります。

比較項目 mq4 ex4
主な役割 ソースコードの編集・保存 MT4上での実行
コードの閲覧 可能 通常は不可
コードの修正 可能 不可
MT4での利用 コンパイルが必要 そのまま実行できる
配布時の用途 改造や共同開発を許可する場合 ロジックを公開せず配布する場合

ファイル拡張子とは?

ファイル拡張子とは、ファイル名の末尾に付く「.jpg」「.png」「.mq4」などの文字列です。

Windowsやソフトウェアは、拡張子を見てファイルの種類を判別します。

MT4では、主に次の拡張子を目にします。

.mq4:MQL4で書かれたソースファイル

.ex4:mq4をコンパイルして作られた実行ファイル

拡張子が表示されていない場合は、Windowsのエクスプローラーで「ファイル名拡張子」を表示する設定に変更してください。

ex4とmq4を取り違えると、編集できないファイルを制作会社へ渡したり、配布する予定のないソースコードを公開したりする原因になります。

mq4ファイルは編集できるソースファイル

MetaEditorで開いたmq4ファイルmq4ファイルはMetaEditorでソースコードを確認・編集できます。

mq4ファイルには、EAやインジケーターを動かすためのMQL4コードが保存されています。

MetaEditorやテキストエディターで開けるため、ロジックの確認、パラメーターの追加、バグ修正などが可能です。

mq4ファイルが必要になる場面

  • EAやインジケーターの動作を修正したい
  • アラートやメール通知などの機能を追加したい
  • 別の開発者へ改造を依頼したい
  • コードを共有して共同開発したい

一方で、mq4を第三者へ渡すと、ソースコードを自由に確認・変更できる状態になります。

販売用ツールや独自ロジックを含むツールでは、mq4を配布せず、コンパイル後のex4だけを渡すケースがあります。

EAそのものの役割やインジケーターとの違いについては、次の記事で解説しています。

EAとは?FX自動売買の仕組みとできること

ex4ファイルはMT4で実行するためのファイル

MT4で使用するex4ファイルex4はMT4上でEAやインジケーターを動かすためのファイルです。

ex4ファイルは、mq4ファイルをMetaEditorでコンパイルしたときに生成されます。

ソースコードがそのまま記録されているmq4とは異なり、通常の方法でコードを開いて編集することはできません。

そのため、利用者へロジックを直接見せずにEAやインジケーターを配布できます。

ただし、ex4にすればコピーや無断配布を完全に防げるわけではありません。ファイル自体を第三者へ渡される可能性はあるため、有料ツールでは口座認証や利用期限などを組み合わせることがあります。

MQL4・MQL5で口座縛りを実装する方法

EAとインジケーターでは、ex4ファイルを保存するフォルダが異なります。

EA:MQL4/Experts

インジケーター:MQL4/Indicators

ファイルを正しいフォルダへ入れたあと、MT4を再起動するか、ナビゲーターを更新して読み込ませます。

mq4からex4へ変換するコンパイルとは?

コンパイルとは、人が読み書きできるmq4のソースコードを、MT4で実行できるex4へ変換する処理です。

コンパイル

mq4ファイル → ex4ファイル

基本的な手順は次のとおりです。

  1. mq4ファイルをMetaEditorで開く
  2. 画面上部の「コンパイル」を実行する
  3. エラーがなければex4ファイルが生成される
  4. MT4からEAまたはインジケーターを読み込む

コンパイル時にエラーが残っていると、ex4が生成されないか、正常に動作しない場合があります。

画面下部のエラー一覧を確認し、エラーが0件になっていることを確認してから配布してください。

yuki
yuki
私は納品前に、コンパイルエラーだけでなく警告の内容も確認しています。ex4が生成されたからといって、コードが意図どおり動くとは限らないためです。

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やインジケーターであっても、プログラムそのものの著作権まで購入者へ移るとは限りません。

改造が必要な場合の確認順

  1. 開発者や販売者へmq4の提供が可能か確認する
  2. 公式に改造や機能追加を依頼できないか相談する
  3. 利用規約で解析や改変が禁止されていないか確認する
  4. 元のロジックを使わず、新しく作り直す方法を検討する

開発者本人から許可を得ている場合や、自分で作成したex4を調査する場合を除き、無断でのデコンパイルは避けた方が安全です。

ex4だけでEAやインジケーターは使える?

MT4でEAやインジケーターを動かすだけなら、基本的にはex4ファイルがあれば利用できます。

mq4はソースコードを修正するときに必要なファイルであり、通常のトレードで毎回開くものではありません。

ex4だけでできること

  • EAやインジケーターをMT4へ導入する
  • ツール側で公開されている入力パラメーターを変更する
  • チャート上でツールを動かす
  • 提供されている機能をそのまま使用する

ただし、次のような変更にはmq4が必要です。

  • 売買条件やサイン条件を変更する
  • 新しいパラメーターを追加する
  • アラートや通知機能を追加する
  • エラーや不具合をコードから修正する

ex4しか持っていない状態で改造を依頼しても、制作会社が対応できない場合があります。

将来的に機能追加を予定している場合は、制作を依頼する段階でmq4の納品条件や追加料金を確認しておきましょう。

ex4とmq4はどちらを配布すべき?

配布形式は、利用者へどこまでの権限を渡すかで決めます。

配布する状況 適した形式
利用者にそのまま使ってもらう ex4
独自ロジックを公開したくない ex4
購入者による改造を許可する mq4
複数の開発者で共同編集する mq4
別の開発者へ修正を引き継ぐ mq4

有料ツールをex4で配布する場合でも、ファイルのコピーそのものを防げるわけではありません。

指定口座だけで動かしたい場合は、ex4へのコンパイルに加えて、口座番号を照合する認証を実装します。

MQL4・MQL5で口座縛りを実装する方法

一方、mq4を納品してもらう場合は、ソースコードの権利や再配布の可否も確認しておく必要があります。

mq4が手元にあることと、そのコードを自由に販売・公開できることは同じではありません。

ex4・mq4ファイルを受け取ったときの確認項目

  • ファイルの拡張子がex4かmq4か
  • EAとインジケーターのどちらなのか
  • 保存先のフォルダが正しいか
  • ex4が現在のMT4で正常に読み込めるか
  • mq4をコンパイルしたときにエラーが出ないか
  • 改造・再配布・商用利用が許可されているか

古いex4の多くは現在のMT4でも利用できますが、旧形式のデータ構造やDLLへ依存するツールでは正常に動作しない場合があります。

mq4が付属していれば、現在のMetaEditorで再コンパイルできる可能性がありますが、古いコードでは関数や記述方法の修正が必要になる場合もあります。

ex4ファイルとmq4ファイルの違いまとめ

yuki
yuki
MT4で使うだけならex4で十分ですが、あとから機能を追加したり不具合を直したりするならmq4が必要です。制作を依頼するときは、納品形式を最初に確認しています。
カオチャイ
カオチャイ
ex4は実行用、mq4は編集用と覚えておけば、ファイルを受け取ったときにも迷いにくいですね。
今回の要点

  • mq4はソースコードを確認・編集できるファイル
  • ex4はmq4をコンパイルして作られるMT4の実行ファイル
  • ex4から元のmq4を完全に復元できるとは限らない
  • ツールを使うだけならex4、改造するならmq4が必要
  • ex4の配布だけでコピーや無断配布を完全に防げるわけではない
ABOUT ME
YUKI
執筆・検証担当:YUKI FX自動売買(EA)・バイナリーオプション自動売買ツールの 開発および検証を担当。 MQL(MT4 / MT5)やC#によるプログラミングを専門とし、 ロジック設計から実装・検証まで一貫して行っています。 ▶ 執筆者・検証方針はこちら