Каталог
КаталогБлог › Перенос советника с MT4 на MT5: что реально можно, а что нет

Перенос советника с MT4 на MT5: что реально можно, а что нет

Готовый файл советника для MT4 в MT5 не запускается, и автоматического конвертера для скомпилированного робота не существует. Разбираем, что происходит при переносе на самом деле, сколько работы это требует и какие есть альтернативы.

Перенос советника с MT4 на MT5: что реально можно, а что нет
🛒 Готовые инструменты по теме: Wisdom EA V10.0: робот на MT5 - 902 ₽ · Smart Owl FX — ночной мультивалютный алгоритм - 803 ₽ · Euro Stable v3.3 MT4 — только EUR/USD - 605 ₽ · как проходит оплата

Короткий ответ на главный вопрос: скомпилированный советник для MetaTrader 4 в MetaTrader 5 не работает, и наоборот. Это не настройка и не совместимость версий, а разные платформы с разными языками и разным форматом исполняемого файла. Перенос возможен только на уровне исходного кода, то есть это работа программиста, а не операция в терминале. Ниже разбираем, из чего эта работа состоит, чтобы вы понимали, за что платите, если решите её заказывать, и какие есть варианты вообще её не делать.

Почему файл просто не запускается

У MT4 и MT5 разные расширения программных файлов: исходник советника для четвёрки имеет расширение mq4, скомпилированный файл ex4, у пятёрки это mq5 и ex5. Терминал MT5 не умеет ни открывать, ни компилировать, ни исполнять файлы четвёрки. Положить ex4 в папку Experts пятого терминала можно, но в списке советников он не появится, а в журнале не будет даже сообщения об ошибке, потому что терминал такие файлы не рассматривает вовсе.

Причина глубже расширения. MQL4 и MQL5 близки синтаксически, но по-разному описывают саму торговлю. В четвёрке торговая операция это ордер, у него один идентификатор и одна функция отправки. В пятёрке разделены три сущности: ордер как поручение, сделка как факт исполнения и позиция как текущее состояние по инструменту. Функция отправки принимает структуру запроса и возвращает результат отдельной структурой. Сравните описание OrderSend в справочнике MQL4 и OrderSend в документации MQL5: это функции с одним именем и совершенно разной моделью работы.

Про конвертеры: чего ждать не стоит

Периодически встречаются предложения «конвертировать ex4 в ex5 автоматически». Здесь важно понимать простую вещь: скомпилированный файл это не текст программы, из него исходный код не восстанавливается штатными средствами, а всё, что предлагается под видом такого восстановления, находится в серой зоне и обычно приводит либо к нерабочему результату, либо к файлу неизвестного происхождения на вашем торговом счёте. Мы такие пути не рекомендуем и не поддерживаем.

Есть и легальный смежный случай: если у вас на руках исходник mq4, существуют инструменты и библиотеки совместимости, которые упрощают перенос, подменяя привычные функции четвёрки их аналогами на пятёрке. Они экономят время, но не отменяют ручную работу: любую нетривиальную логику всё равно придётся править и перепроверять. Автоматический перевод без последующей отладки на исходном коде тоже не даёт готового продукта.

Что меняется в коде при переносе

Что делает советникКак это устроено в MQL4Что нужно в MQL5
Открыть сделкуOrderSend с набором параметровЗаполнить структуру запроса и передать её в OrderSend, разобрать структуру результата
Изменить или закрытьOrderModify, OrderCloseТе же операции через типы торгового запроса, отдельно для отложенных ордеров и позиций
Перебрать свои сделкиOrderSelect по индексу в пуле ордеровОтдельные наборы функций для позиций, ордеров, истории сделок
Узнать параметры инструментаMarketInfoSymbolInfoDouble, SymbolInfoInteger, SymbolInfoString
Получить значение индикатораВызов функции индикатора напрямую в циклеСоздать хендл индикатора один раз и копировать буфер в массив
Работа с барами и таймсериямиОбращение к массивам Close, High, Low напрямуюКопирование нужного участка через функции доступа к таймсериям
Учёт позицийКаждая сделка живёт отдельноЗависит от типа счёта: при неттинге по инструменту одна общая позиция

Полный список функций и их поведение описаны в документации MQL5, там же есть раздел про свойства символов и торговые запросы. Отдельно стоит смотреть работу с индикаторами: это место, где механический перевод строк чаще всего даёт код, который компилируется, но считает не то.

Неттинг и хедж: где ломается логика сеточных роботов

Самое неприятное при переносе не синтаксис, а модель учёта позиций. Счёт MT5 может быть неттинговым или хеджевым. На неттинговом по одному инструменту существует только одна позиция: встречная сделка не открывает вторую позицию, а уменьшает или разворачивает имеющуюся. На хеджевом позиции живут параллельно, как привычно пользователю четвёрки.

Для алгоритмов, которые строят сетку ордеров, усредняют цену входа или держат встречные сделки, это принципиально. Дословно перенесённый на неттинговый счёт код будет не наращивать сетку, а сокращать одну позицию, и поведение робота изменится полностью, при этом ошибок компиляции не будет. Если стратегия сеточная или мартингейл, к переносу добавляется отдельная задача: описать, что именно алгоритм должен делать в неттинговой модели. Как считать риск такой логики до запуска, разобрано в материале про сеточные советники и мартингейл.

Сколько это стоит по времени

Оценка зависит от того, что перед вами. Простой советник на одном индикаторе, одна сделка за раз, без сетки и без сложного управления позицией переносится быстро, и большая часть времени уходит не на перевод, а на сверку поведения. Робот с несколькими индикаторами, фильтрами по времени и собственным управлением объёмом это уже полноценная задача разработки. Сеточные и портфельные системы переносятся дольше всего, потому что там переписывается не код, а модель работы с позициями.

Прежде чем заказывать перенос, стоит честно ответить на один вопрос: у вас есть исходный код и право его изменять? Если робот куплен как готовый файл, легального исходника у вас нет, и разговор о переносе беспредметен, каким бы простым он ни казался. В этом случае правильный путь другой: спросить у автора версию под нужную платформу.

Альтернативы, которые обычно дешевле

Что спросить у разработчика до начала работы

Если перенос всё-таки заказывается, разговор стоит начать не с цены, а с четырёх вопросов. Первый: на каком типе счёта будет работать результат, неттинговом или хеджевом. Ответ «на любом» означает, что в коде появится отдельная ветка под каждую модель, а это дополнительное время и дополнительная проверка. Второй: сохраняются ли имена входных параметров. Если да, ваши прежние наборы настроек хотя бы частично применимы, если нет, их придётся собирать заново.

Третий вопрос про индикаторы: если советник использует нестандартный индикатор, его тоже нужно переносить, и это отдельная задача, которую иногда забывают включить в оценку. Четвёртый про приёмку: как вы будете проверять, что работа сделана. Разумная формулировка звучит так: обе версии на одном периоде и инструменте дают совпадающую последовательность входов, а список расхождений объяснён. Без такого критерия приёмка превращается в спор о впечатлениях, и обе стороны теряют время.

Ещё одна деталь, которую стоит проговорить заранее: что считается завершением. Компиляция без ошибок это не результат, результат это протестированная версия, которая ведёт себя предсказуемо на демо-счёте вашего брокера. Разница между этими двумя состояниями обычно и есть основная часть работы.

Как проверить перенесённую версию

Допустим, перенос сделан. Дальше нужен не оптимизм, а сверка. Порядок такой: запустить исходную версию на четвёрке и новую на пятёрке в тестере на одном и том же периоде и инструменте, с одинаковыми параметрами, и сравнить не итоговую прибыль, а последовательность сделок: время входа, направление, объём, уровни выхода. Расхождение в паре сделок из-за разной модели исполнения нормально, расхождение в логике входов означает, что перенос не завершён.

Затем стоит прогнать новую версию в режиме реального времени на демо-счёте, желательно на том же брокере, где планируется торговля, и посмотреть журнал: ошибки торговых запросов на пятёрке видны сразу и обычно указывают на неправильно заполненные поля запроса. Что умеет тестер и какие режимы моделирования доступны, описано в справке терминала MetaTrader 5. И только после этого имеет смысл ставить советник на счёт с деньгами, начиная с минимального объёма.

Отдельно проверьте параметры: при переносе имена входных переменных часто меняются, и старые сет-файлы к новой версии не подходят. Почему параметры применяются не так, как ожидалось, и как это диагностировать, разобрано в статье про сет-файлы. Если советник ставится на новую платформу впервые, порядок установки описан в пошаговой инструкции.

Частые вопросы

Существуют ли программы, которые конвертируют готовый советник из MT4 в MT5?

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

У меня есть исходный код. Сколько работы в переносе?

Объём зависит не от размера кода, а от того, как робот работает с позициями. Простой советник с одной сделкой переписывается быстро. Сеточный или усредняющий требует переработки всей логики учёта позиций, потому что в MT5 по умолчанию действует неттинг и несколько встречных сделок в одну суммарную позицию сливаются. Именно эта часть обычно и занимает основное время.

Можно ли просто открыть счёт MT5 с хеджированием и не переписывать код?

Хеджевый счёт снимает одну проблему из нескольких, но файл всё равно не запустится: разными остаются язык, формат исполняемого файла и функции работы с ордерами. Хеджевый режим важен позже, когда версия под MT5 уже написана, потому что без него сеточная логика посчитает риск неверно. Сначала версия под платформу, потом правильный тип счёта.

Готовые инструменты из каталога

Wisdom EA V10.0: робот на MT5
902 ₽
Smart Owl FX — ночной мультивалютный алгоритм
803 ₽
Euro Stable v3.3 MT4 — только EUR/USD
605 ₽
Каталог роботов и советников
Готовые инструменты из каталога. Смотреть раздел → · Как проходит оплата