MT4のお悩み

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

ex4ファイルとmq4ファイルの違い
yuki
yuki
メタトレーダー4(MT4)には、ex4ファイルとmq4ファイルが使用されます。
カオチャイ
カオチャイ
これら二つのファイルは何が違うのでしょうか?この記事ではそれらの違いと特徴について解説します。

ファイル拡張子とは何か?

拡張子

ファイル拡張子とは、ファイル名の後ろにピリオドで区切られた部分で、ファイルの種類や形式を識別するために使用されます。

例えば画像ファイルでは「.jpg」や「.png」などの拡張子が用いられ、MT4においては、『.ex4』と『.mq4』の拡張子が使われています。

 

拡張子が見えない時は・・

拡張子の表示

Window10以降の場合、初期設定だと拡張子が表示されない場合があります。

その場合はエクスプローラー上部メニューの【表示】をクリックして、右側の【ファイル名拡張子】にチェックを入れれば、各ファイル名に拡張子が表示されるようになります。

 

MT4で使用される拡張子:mq4とex4の概要

MT4では、インジケーターやEAを作成・使用する際に、『.mq4』と『.ex4』という二つのファイル拡張子で明確に役割を分けています。

それぞれの特徴を次から解説していきます。

mq4ファイル:プログラムが書かれたオープンフォーマット

mq4ファイル拡張子mq4ファイルだとこのようにコードを見ることができます

 

mq4ファイルは、インジケーターやEAのソースコードが書かれているファイルです。

これらのファイルはテキストエディターや専用のプログラミングソフトで編集・閲覧が可能であり、開発者が自由にコードを修正したり他の開発者と共有したりできます。

MT4の海外フォーラムなどを覗くと、このmq4ファイルでソースコードを公開することで、バグやロジックの修正を有志が行い、短い時間と少ないコストでコードがより良く改変されたりします。

また、インジケーター制作業者にツールの改造や修正をお願いする場合などには、このmq4ファイルが必須になります。

カオチャイ
カオチャイ
MT4上で使うにはmq4ファイルのままでは動かせませんので、コンパイルというファイル変換作業を行ってex4ファイルに変換して利用します
yuki
yuki
MT4の場合、Indicatorsフォルダにmq4ファイルをいれると自動でコンパイルしてくれるので、実はex4ファイルに変換されている事自体に気づかない人も多いかと思います

 

ex4ファイル:保護されたMT4専用フォーマット

ex4ファイルMT4のチャート上で動かすことができるex4ファイル

 

ex4ファイルは、mq4ファイルがコンパイルされた後の形式で、MT4プラットフォーム専用の実行ファイルです。

コンパイルされたex4ファイルはプログラムのコードが保護されており、通常は中身を閲覧・編集することができません。

これにより開発者は自分のプログラムを他人に公開する際に、コードの不正使用やコピーや改ざんを防ぐことができます。

一般で有料配布されているサインツールは、ほぼ100%このex4ファイルです。

yuki
yuki
インジケーターのロジック=トレード手法ですから、それを公開すると真似をされて手法自体の優位性がどんどん失われていってしまうので、中身を隠すことは重要なんです

 

コンパイルとデコンパイル

コンパイルとは、プログラムのソースコード(mq4ファイル)を実行可能な形式(ex4ファイル)に変換するプロセスで、ほとんどのプログラミング言語でコンパイルの行為は採用されています。

MT4の場合はプラットフォームを起動する際に、自動的にmq4ファイルがコンパイルされてex4ファイルが生成され、インジケーターやEAとして動作させています。

次にデコンパイルですが、これはコンパイルとは逆に、実行可能な形式(ex4ファイル)からソースコード(mq4ファイル)へと戻すプロセスのことを指します。

デコンパイル自体は一般的ではなく、古いバージョン(Build 600以前)のMT4で作成されたEX4ファイルはある程度デコンパイルすることができますが、完全な再現となると難しく、一部コードが欠損した状態での再現となります。

カオチャイ
カオチャイ
欠損の仕方には特徴があるので、コードをみればデコンパイルされたものかどうかは、ある程度経験のあるプログラマさんだとわかりますね

 

新しいバージョン(Build 600以降)のMT4で作成されたex4ファイルにいたってはデコンパイルが困難であり、専門的な知識や技術を使っても完全には再現不可能です。

なお、デコンパイルはプログラムの著作権を侵害する可能性があるため、正当な理由がない限り他人のex4ファイルをデコンパイルすることは避けるべきです。

yuki
yuki
ちなみに、インジケーターの制作依頼をする場合、ほとんどの業者がex4ファイルでの納品となります。これは、ソースコードにその業者独自のコードを使っていたりするので公開を避けたいということなんですね
カオチャイ
カオチャイ
逆に、格安制作業者さんなどですと、独自の技術を使わずに基本となるテンプレートを使いまわして制作しているので、「mq4ファイルで納品が可能」なんていうところも多いですね

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

yuki
yuki
以上が、MT4で使用されるex4ファイルとmq4ファイルの違いでした!
カオチャイ
カオチャイ
mq4ファイルをたくさんMT4に入れて立ち上げますと、立ち上がりに少し時間がかかったりするのですが、あればコンパイルでex4ファイルに変換作業をしていたりするんですね
yuki
yuki
トレードだけならex4ファイルでOKだけど、改造するならmq4ファイルが必要です。重要な違いなので覚えておいてくださいね!
EAにできる事できない事
【その水平線は引けません】サインツールやEAを作るときの注意 FX-EAラボがお客様のMT4オリジナルインジを開発します EAやサインツール製作には制約があります EAやサインツールは、...
MT4のEA
インジケーターとEAの違い🔰 FX-EAラボがお客様のMT4オリジナルインジを開発します EA(FX)とインジケーター(バイナリー)の違い 世界は自動化に...
ABOUT ME
YUKI
MT4をこよなく愛する開発者です。FX-EAラボの他に、サヤ取りを追求した株ラボ、MT4、MT5のツール制作に特化したシストレファクトリー、EAやインジケーターに認証やペイパル決済機能が付けられるMQLAuthシステムなどの開発にも関わっています。 YUKIプロフィール