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

ファイル拡張子とは、ファイル名の後ろにピリオドで区切られた部分で、ファイルの種類や形式を識別するために使用されます。
例えば画像ファイルでは「.jpg」や「.png」などの拡張子が用いられ、MT4においては、『.ex4』と『.mq4』の拡張子が使われています。
拡張子が見えない時は・・

Window10以降の場合、初期設定だと拡張子が表示されない場合があります。
その場合はエクスプローラー上部メニューの【表示】をクリックして、右側の【ファイル名拡張子】にチェックを入れれば、各ファイル名に拡張子が表示されるようになります。
MT4で使用される拡張子:mq4とex4の概要
MT4では、インジケーターやEAを作成・使用する際に、『.mq4』と『.ex4』という二つのファイル拡張子で明確に役割を分けています。
それぞれの特徴を次から解説していきます。
mq4ファイル:プログラムが書かれたオープンフォーマット
拡張子mq4ファイルだとこのようにコードを見ることができます
mq4ファイルは、インジケーターやEAのソースコードが書かれているファイルです。
これらのファイルはテキストエディターや専用のプログラミングソフトで編集・閲覧が可能であり、開発者が自由にコードを修正したり他の開発者と共有したりできます。
MT4の海外フォーラムなどを覗くと、このmq4ファイルでソースコードを公開することで、バグやロジックの修正を有志が行い、短い時間と少ないコストでコードがより良く改変されたりします。
また、インジケーター制作業者にツールの改造や修正をお願いする場合などには、このmq4ファイルが必須になります。
ex4ファイル:保護されたMT4専用フォーマット
ex4ファイルは、mq4ファイルがコンパイルされた後の形式で、MT4プラットフォーム専用の実行ファイルです。
コンパイルされたex4ファイルはプログラムのコードが保護されており、通常は中身を閲覧・編集することができません。
これにより開発者は自分のプログラムを他人に公開する際に、コードの不正使用やコピーや改ざんを防ぐことができます。
一般で有料配布されているサインツールは、ほぼ100%このex4ファイルです。
コンパイルとデコンパイル
コンパイルとは、プログラムのソースコード(mq4ファイル)を実行可能な形式(ex4ファイル)に変換するプロセスで、ほとんどのプログラミング言語でコンパイルの行為は採用されています。
MT4の場合はプラットフォームを起動する際に、自動的にmq4ファイルがコンパイルされてex4ファイルが生成され、インジケーターやEAとして動作させています。
次にデコンパイルですが、これはコンパイルとは逆に、実行可能な形式(ex4ファイル)からソースコード(mq4ファイル)へと戻すプロセスのことを指します。
デコンパイル自体は一般的ではなく、古いバージョン(Build 600以前)のMT4で作成されたEX4ファイルはある程度デコンパイルすることができますが、完全な再現となると難しく、一部コードが欠損した状態での再現となります。
新しいバージョン(Build 600以降)のMT4で作成されたex4ファイルにいたってはデコンパイルが困難であり、専門的な知識や技術を使っても完全には再現不可能です。
なお、デコンパイルはプログラムの著作権を侵害する可能性があるため、正当な理由がない限り他人のex4ファイルをデコンパイルすることは避けるべきです。
ex4ファイルとmq4ファイルの違い まとめ

