Как открыть файл .EX4?

Файлы этого типа, также как и файлы MQ4, содержат программный код экспертов, индикаторов или скриптов, выполняемых в среде MetaTrader. Различие между файлами с расширениями EX4 и MQ4 заключаются в формате хранимого кода. В первом случае это двоичный исполняемый код, часто зашифрованный. Во втором случае это исходный код на языке MQL4.

Торговые советники, индикаторы и скрипты для терминала MetaTrader 4 создаются в приложении MetaEditor. Каждый раз, когда программист создаёт новый программный продукт, его исходный код сохраняется в файле MQ4. Когда программист выполняет компиляцию файла (нажимает F7), MetaEditor создаёт для этого программного продукта двоичный код и сохраняет его в файле с расширением EX4.

Чтобы наглядно увидеть различия между двумя рассматриваемыми типами файлов, можно попробовать открыть их при помощи проложения Блокнот. Вот что мы увидим в файле MQ4:

MQ4 file

А вот содержимое файла EX4:

EX4 file

Очевидно, что во втором случае перед нами абсолютно нечитаемый код (если не принимать во внимание заголовок).

Почему так происходит?

Язык, понимаемый человеком (в том числе язык программирования) сильно отличается от языка, который понимает компьютер. Не вдаваясь в подробности, следует лишь отметить, что в английском языке человеку доступно 28 букв и 10 цифр. Из них можно составить великое множество слов разной длины. Компьютер различает всего два символа — 0 и 1. Из них он может составлять "слова" фиксированной ширины — 8 символов. Эти слова называются байтами.

Набор команд, которые может выполнять процессор современного компьютера, также весьма ограничен. Там нет классов, свойств и методов. Нет функций и даже циклов. Есть только арифметические операции, команды пересылки данных, а также условные и безусловные переходы.

Для того, чтобы сделать программу, написанную человеком, понятной компьютеру, требуется выполнить преобразование с языка программирования высокого уровня (коим является MQL4) в язык низкого уровня (машинный код). Это преобразование называется компиляцией. При компиляции изменяется не только синтаксис, но и логика. Точнее сказать, логика сохраняется, но она выражается абсолютно по другому из-за различия доступного набора команд, о котором было сказано выше.

По этой причине, глядя на машинный код, человек никогда не может понять, что это. Файлы EX4 содержат именно машинный (двоичный) код и не могут быть прочитаны человеком непосредственно.

Как же открыть файл с расширением EX4?

Есть две новости — плохая и хорошая. Плохая новость в том, что открыть файл типа EX4 в приложении MetaEditor невозможно. Это приложение может открывать только файлы типа MQ4. Хорошая новость в том, что исходный код в большинстве случаев можно восстановить, сохранить его под тем же именем в формате MQ4 и после этого открыть в MetaEditor!

Этот процесс называется декомпиляцией. Ещё совсем недавно (в 2013 году и ранее) такое преобразование можно было сделать автоматически. Для этого использовались специальные программы, называемые декомиляторами EX4. Это было возможно потому, что MetaEditor в то время не выполнял преобразование напрямую в двоичный код. Вместо этого создавался так называемый байт-код, компиляция которого осуществлялась «‎на лету» во время исполнения.

Однако в феврале 2014 года всё изменилось. Начиная со сборки 600 MetaTrader 4 работает непосредственно с машинным кодом, который создаётся в MetaEditor при компиляции. После публикации этой сборки тело декомпилятора EX4 был предано земле. Он оказался бесполезен.

Долгое время эта проблема оставалась неразрешимой. В наши дни решение найдено. Декомпиляция файлов EX4 выполняется онлайн при помощи специального сервиса. Здесь работают квалифицированные специалисты, которые выполняют необходимые преобразования вручную, выполняя код эксперта шаг за шагом и по крупицам восстанавливая логику работы советника.

Итак, что необходимо для открытия файла EX4 в MetaEditor? Вот пошаговая инструкция:

  1. Открыть форму запроса
  2. Загрузить файл EX4
  3. Дождаться ответа специалиста
  4. Ознакомиться с предложением и принять его
  5. Получить готовый файл MQ4 и сохранить его в каталоге данных MetaTrader
  6. Открыть сохранённый файл в приложении MetaEditor

Если у вас остались вопросы касательно файлов EX4, вы можете задать их экспертам.