Частые ошибки MetaTrader: коды MT4 и MT5, причины и исправления на стороне сервера
Практический справочник по кодам ошибок MT4 и кодам возврата торгового сервера MT5, которые клиенты видят чаще всего, с разделением на то, что может исправить трейдер, и то, что брокер должен исправить на сервере.
Частые ошибки MetaTrader: коды возврата торгового сервера MT4 и MT5, «No connection», invalid stops, off quotes и что брокеру проверить на сервере.
Как MetaTrader сообщает об ошибках
MetaTrader сообщает об ошибках в виде нумерованных кодов с фиксированными названиями, которые документирует MetaQuotes, а номер показывает, на каком звене цепочки запрос завершился неудачей. MT4 и MT5 используют разную нумерацию, поэтому одна и та же проблема имеет два разных кода в зависимости от платформы.
В MetaTrader 5 каждый торговый запрос получает ответ от торгового сервера. MetaQuotes описывает этот механизм так:
"All requests to execute trade operations are sent as a structure of a trade request MqlTradeRequest using function OrderSend(). The function execution result is placed to structure MqlTradeResult, whose retcode field contains the trade server return code."
(Перевод: «Все запросы на совершение торговых операций отправляются в виде структуры торгового запроса MqlTradeRequest с помощью функции OrderSend(). Результат выполнения функции помещается в структуру MqlTradeResult, поле retcode которой содержит код возврата торгового сервера».)— MQL5 Reference, Trade Server Return Codes, MetaQuotes (дата обращения: октябрь 2026)
Коды возврата торгового сервера MT5 находятся в диапазоне от 10004 (TRADE_RETCODE_REQUOTE) до 10046 (TRADE_RETCODE_HEDGE_PROHIBITED). В MetaTrader 4 аналогичную информацию дает GetLastError(). Коды, связанные с торговлей, находятся в нижнем диапазоне (0–150, например 130 ERR_INVALID_STOPS). Ошибки выполнения программ начинаются с 4000 (например, 4109 ERR_TRADE_NOT_ALLOWED).
Код успеха не означает исполненный ордер. Справочник MQL5 по OrderSend() предупреждает, что «успешный результат функции OrderSend() не означает, что ордер был исполнен». Он означает лишь, что запрос принят к дальнейшей обработке. Когда клиент говорит «написало OK, но ничего не произошло», проверьте журнал сервера.
Реальный код можно найти в трех местах:
- Вкладка «Журнал» (события платформы: подключение, вход, запросы ордеров).
- Вкладка «Эксперты» (сообщения, выводимые советниками и скриптами, включая результаты
GetLastError()). - Файлы журналов на диске. В справке MT5 от MetaQuotes указано: «Файлы журналов платформы хранятся в каталоге Logs, а файлы журналов экспертов сохраняются в MQL5\Logs. Имена файлов соответствуют дате формирования журнала — YYYYMMDD.LOG».
Встроенный просмотрщик журналов позволяет фильтровать записи по вариантам «Full, No connection, Errors only».
Сторона клиента или сторона сервера: кто должен исправлять
Самый быстрый вопрос для первичной сортировки — видит ли ошибку один трейдер или многие. Один клиент с одной ошибкой — обычно проблема на стороне клиента. Одна и та же ошибка на многих счетах, по одному символу или в одной группе почти всегда указывает на сервер, конфигурацию символа или сторону ликвидности.
| Симптом или код | Обычно на стороне клиента, когда… | Обычно на стороне сервера, когда… |
|---|---|---|
| «No connection» / 6 ERR_NO_CONNECTION / 10031 TRADE_RETCODE_CONNECTION | Один пользователь, локальный интернет, файрвол, прокси или неверное имя сервера | Много пользователей одновременно, недоступна точка доступа, изменен IP или DNS, сервер перезапущен |
| «Invalid account» / 65 ERR_INVALID_ACCOUNT | Неверный логин, пароль или выбран не тот сервер | Счет перенесен, отключен, архивирован или создан на другом сервере |
| 130 ERR_INVALID_STOPS / 10016 TRADE_RETCODE_INVALID_STOPS | Советник ставит SL/TP слишком близко к цене | На символе изменен уровень стопов или уровень заморозки, расширился спред |
| 136 ERR_OFF_QUOTES / 10021 TRADE_RETCODE_PRICE_OFF | Редко, в основном очень старые цены в запросе | Котировки остановились: проблема с LP, бриджем или потоком данных, торговая сессия по символу закрыта |
| 133 ERR_TRADE_DISABLED / 10017 TRADE_RETCODE_TRADE_DISABLED | Использован инвесторский пароль (только чтение) | Торговля отключена для символа, группы или счета |
| 10026 TRADE_RETCODE_SERVER_DISABLES_AT | Никогда; сам код указывает на сервер | Торговля советниками отключена в настройках группы или счета |
| 10027 TRADE_RETCODE_CLIENT_DISABLES_AT / 4109 | Выключена кнопка Algo Trading или «Allow live trading» | Не на стороне сервера |
| 134 ERR_NOT_ENOUGH_MONEY / 10019 TRADE_RETCODE_NO_MONEY | Лот слишком велик для свободной маржи | В группе неверно заданы кредитное плечо, настройки маржи или курсы валют |
| 132 ERR_MARKET_CLOSED / 10018 TRADE_RETCODE_MARKET_CLOSED | Торговля вне часов сессии | Неверно настроены расписание сессий, переход на летнее время (DST) или календарь праздников |
Распределяйте обращения так же: проблемы на стороне клиента получают ответ из справочного центра, а проблемы на стороне сервера передаются администратору платформы или аутсорсинговой команде, например поддержке MetaTrader от FXSUPPORT.
Ошибки подключения: «No connection» и «Invalid account»
«No connection» означает, что терминал не может связаться с заданным адресом торгового сервера, а «Invalid account» — что он связался с сервером, который отклонил логин. Для каждой ошибки нужны свои проверки, и брокер видит то, чего не видит трейдер.
Что может проверить трейдер
- Убедитесь, что интернет-соединение работает в браузере.
- Повторно введите логин, пароль и точное имя сервера. В справке MT5 отмечено, что адрес также можно ввести вручную в виде «[номер сервера]:[номер порта], например 192.168.0.1:443».
- Проверьте, что используется мастер-пароль. MetaQuotes поясняет, что «инвесторская авторизация позволяет видеть состояние счета, анализировать цены и работать с собственными советниками, но не торговать».
- Проверьте прокси и файрвол. В MT5 вкладка Сервер в меню Сервис > Настройки содержит «настройку подключения к серверу, конфигурацию прокси-сервера».
- Откройте просмотрщик журналов, отфильтруйте записи по «No connection» и отправьте файл YYYYMMDD.LOG брокеру.
Что брокеру следует проверить на стороне сервера
- Доступность каждой точки доступа. Проверьте каждый адрес и порт, опубликованные в списке серверов, извне вашей собственной сети и из нескольких регионов.
- Недавние изменения инфраструктуры. Новые IP-адреса, DNS-записи, переезд дата-центра или правила защиты от DDoS часто вызывают волны «No connection».
- Состояние сервера. CPU, память и диск на торговом сервере и серверах доступа. Перегрузка проявляется в виде тайм-аутов (128 ERR_TRADE_TIMEOUT, 10012 TRADE_RETCODE_TIMEOUT) еще до полных разрывов соединения.
- Состояние счета. Включен ли счет? В правильной ли он группе? Был ли он перенесен в ходе миграции? Включена ли принудительная смена пароля? Справка MT5 подтверждает, что «принудительная смена пароля может быть включена администратором торгового сервера».
- Старые сборки клиентского терминала. 5 ERR_OLD_VERSION («Old version of the client terminal») означает, что терминал необходимо обновить.
Более глубокие проблемы с сетью и хостами рассмотрены в материалах диагностика неполадок форекс-серверов и хостинг серверов MetaTrader.
Коды возврата торгового сервера MT5, которые брокеры видят чаще всего
Приведенные ниже коды MT5 чаще всего доходят до службы поддержки брокера, и некоторые из них прямо называют причиной сервер. Названия и описания взяты из справочника MQL5. В правом столбце указано, с чего мы начинаем проверку на сервере.
| Код | Константа | Описание MetaQuotes | Первая проверка на стороне сервера |
|---|---|---|---|
| 10004 | TRADE_RETCODE_REQUOTE | Реквота | Режим исполнения и настройки отклонения цены для символа |
| 10006 | TRADE_RETCODE_REJECT | Запрос отклонен | Отклонение дилером, шлюзом или бриджем в журнале сервера |
| 10012 | TRADE_RETCODE_TIMEOUT | Запрос отменен по истечении времени | Время ответа бриджа/LP, нагрузка на сервер |
| 10014 | TRADE_RETCODE_INVALID_VOLUME | Неправильный объем в запросе | Минимальный/максимальный объем и шаг объема символа, лимиты объема группы |
| 10016 | TRADE_RETCODE_INVALID_STOPS | Неправильные стопы в запросе | Уровень стопов и уровень заморозки символа |
| 10017 | TRADE_RETCODE_TRADE_DISABLED | Торговля запрещена | Торговый режим символа, права группы на символы, права счета |
| 10018 | TRADE_RETCODE_MARKET_CLOSED | Рынок закрыт | Торговые сессии, DST, расписание праздников |
| 10019 | TRADE_RETCODE_NO_MONEY | Нет достаточных денежных средств для выполнения запроса | Кредитное плечо и настройки маржи группы |
| 10021 | TRADE_RETCODE_PRICE_OFF | Отсутствуют котировки для обработки запроса | Поток данных, сессия LP/бриджа, источники котировок символа |
| 10024 | TRADE_RETCODE_TOO_MANY_REQUESTS | Слишком частые запросы | Лимиты частоты запросов; часто зациклившийся советник |
| 10026 | TRADE_RETCODE_SERVER_DISABLES_AT | Автотрейдинг запрещен сервером | Разрешения для советников в группе или на счете |
| 10030 | TRADE_RETCODE_INVALID_FILL | Указан неподдерживаемый тип исполнения ордера по остатку | Режимы заполнения, разрешенные для символа, в сравнении с режимом исполнения |
| 10031 | TRADE_RETCODE_CONNECTION | Нет соединения с торговым сервером | Доступность точек доступа, статус сервера |
| 10040 | TRADE_RETCODE_LIMIT_POSITIONS | Количество открытых позиций … может быть ограничено настройками сервера | Лимиты позиций группы |
| 10044 | TRADE_RETCODE_CLOSE_ONLY | Запрос отклонен, так как для символа установлено правило «Разрешено только закрытие существующих позиций» | Торговый режим символа (только закрытие) |
| 10046 | TRADE_RETCODE_HEDGE_PROHIBITED | … для торгового счета установлено правило «Запрещено открывать встречные позиции по одному символу» | Правила хеджирования группы |
Полный список, включая 10009 TRADE_RETCODE_DONE («Заявка выполнена») и 10010 TRADE_RETCODE_DONE_PARTIAL, приведен на странице MQL5 Trade Server Return Codes.
Коды ошибок MT4 и их эквиваленты в MT5
Торговые ошибки MT4 имеют небольшие номера, которые MetaQuotes перечисляет в справочнике MQL4, и у большинства из них есть прямой аналог в MT5. Используйте приведенное ниже соответствие, когда клиенты переходят между платформами или когда вы эксплуатируете оба сервера во время миграции с MT4 на MT5.
| Код MT4 | Константа и описание MT4 | Ближайший код MT5 |
|---|---|---|
| 2 | ERR_COMMON_ERROR — Общая ошибка | 10011 TRADE_RETCODE_ERROR |
| 4 | ERR_SERVER_BUSY — Торговый сервер занят | 10012 TRADE_RETCODE_TIMEOUT (по последствиям) |
| 6 | ERR_NO_CONNECTION — Нет связи с торговым сервером | 10031 TRADE_RETCODE_CONNECTION |
| 65 | ERR_INVALID_ACCOUNT — Неправильный счет | Ошибка при входе, retcode отсутствует |
| 129 | ERR_INVALID_PRICE — Неправильная цена | 10015 TRADE_RETCODE_INVALID_PRICE |
| 130 | ERR_INVALID_STOPS — Неправильные стопы | 10016 TRADE_RETCODE_INVALID_STOPS |
| 131 | ERR_INVALID_TRADE_VOLUME — Неправильный объем | 10014 TRADE_RETCODE_INVALID_VOLUME |
| 132 | ERR_MARKET_CLOSED — Рынок закрыт | 10018 TRADE_RETCODE_MARKET_CLOSED |
| 133 | ERR_TRADE_DISABLED — Торговля запрещена | 10017 TRADE_RETCODE_TRADE_DISABLED |
| 134 | ERR_NOT_ENOUGH_MONEY — Недостаточно денег | 10019 TRADE_RETCODE_NO_MONEY |
| 136 | ERR_OFF_QUOTES — Нет цен | 10021 TRADE_RETCODE_PRICE_OFF |
| 138 | ERR_REQUOTE — Реквота | 10004 TRADE_RETCODE_REQUOTE |
| 146 | ERR_TRADE_CONTEXT_BUSY — Подсистема торговли занята | Прямого эквивалента нет |
| 149 | ERR_TRADE_HEDGE_PROHIBITED | 10046 TRADE_RETCODE_HEDGE_PROHIBITED |
| 150 | ERR_TRADE_PROHIBITED_BY_FIFO | 10045 TRADE_RETCODE_FIFO_CLOSE |
Это соответствие — наше практическое руководство, а не официальная таблица MetaQuotes. Сами описания взяты со страницы MQL4 Trade Server Return Codes.
Trade context busy (146) — ошибка, специфичная для MT4. Функция MQL4 IsTradeContextBusy() «возвращает true, если поток для выполнения торговых операций занят другим советником». Это проблема на стороне клиента. Несколько советников в одном терминале конкурируют за торговый поток, а исправление — логика повторных попыток или меньшее число советников на терминал. Брокер не может исправить это на сервере.
Invalid stops, off quotes и реквоты: ошибки конфигурации
Invalid stops, off quotes и реквоты выглядят как ошибки трейдера, но часто вызваны настройками символа или цепочкой ликвидности. Если они появляются сразу на многих счетах, брокеру следует рассматривать их как инцидент конфигурации.
Неправильные стопы (130 / 10016) и запрет модификации (145)
MetaTrader контролирует две дистанции. Справочник MQL5 определяет SYMBOL_TRADE_STOPS_LEVEL как «минимальный отступ в пунктах от текущей цены закрытия для установки Stop ордеров». SYMBOL_TRADE_FREEZE_LEVEL определяется как «дистанция заморозки торговых операций в пунктах». В учебнике MQL4 добавлено, что «отложенные ордера не могут быть удалены или модифицированы, если заявленная цена открытия нарушает требования параметра FreezeLevel». Ошибка MT4 для этого случая — 145 ERR_TRADE_MODIFY_DENIED: «Модификация запрещена, так как ордер слишком близок к рынку».
Причины на стороне сервера, которые мы проверяем:
- Уровень стопов или уровень заморозки был повышен (на время новостей или для нового LP) без уведомления клиентов.
- Плавающие спреды расширились, и стоп, который секунду назад был допустимым, теперь слишком близок.
- Изменилось количество знаков символа (например, после смены потока котировок), поэтому «пункты» для существующих советников означают уже другое.
Off quotes (136) и отсутствие цен (10021)
MetaQuotes описывает 10021 как «Отсутствуют котировки для обработки запроса». На сервере брокера это почти всегда означает, что поток цен по этому символу остановился или устарел. Типичные причины — разорванная сессия с LP, перезапуск бриджа, ошибка сопоставления потока данных после переименования символа или расписание сессий, досрочно закрывшее котирование. Сначала проверьте состояние потока котировок и журналы бриджа. См. бридж-решения и интеграцию с поставщиками ликвидности.
Реквоты (138 / 10004) и изменение цены (135 / 10020)
Реквоты возникают при мгновенном исполнении или исполнении по запросу, когда сервер отвечает новой ценой вместо исполнения. Частые реквоты обычно означают, что настройки отклонения слишком жесткие для текущей волатильности или источник цен слишком медленный. Отдельно ордер может вернуть 10030 TRADE_RETCODE_INVALID_FILL, если режимы заполнения, разрешенные для символа (SYMBOL_FILLING_MODE, «флаги разрешенных режимов заполнения ордера»), не совпадают с тем, что отправляет клиент или советник.
Ошибки распространяются по счетам?
Пришлите нам коды ошибок и несколько строк из журнала. Мы определим, в чем причина — в клиенте, настройках символа, сервере или цепочке ликвидности, — и поможем ее устранить.
Запросить бесплатный технический аудит WhatsApp TelegramОшибки автотрейдинга и разрешений
Ошибки автотрейдинга четко различаются по названию: 10026 сообщает, что его отключил сервер, а 10027 — что его отключил клиентский терминал. В MT4 эквивалентом на стороне клиента является ошибка выполнения 4109.
10026 — Автотрейдинг запрещен сервером
Брокер отключил торговлю советниками для счета или его группы. Исправьте это в разрешениях группы или счета либо сообщите клиенту, что советники на этом типе счета не допускаются.
10027 — Автотрейдинг запрещен клиентским терминалом
Выключена кнопка Algo Trading или собственная настройка советника. Трейдер включает ее. Ошибка выполнения MQL5 4752 ERR_TRADE_DISABLED («Торговля советниками запрещена») имеет то же значение внутри кода.
4109 — ERR_TRADE_NOT_ALLOWED (MT4)
Описание MetaQuotes говорит об этом прямо: «Торговля не разрешена. Необходимо включить опцию "Allow live trading" в свойствах эксперта». Это сторона клиента.
133 / 10017 — Торговля запрещена
Символ доступен только для просмотра или только для закрытия позиций, у группы нет прав на этот символ, либо клиент вошел с инвесторским паролем.
Плагины также могут блокировать или изменять запросы. Плагин рисков или маршрутизации, отклоняющий ордера, отображается для клиента как общее отклонение (10006) или общая ошибка (2). Если отклонения начались после обновления плагина, сначала проверьте этот плагин. Мы создаем и сопровождаем такие плагины в рамках услуги разработки плагинов MetaTrader.
Чек-лист брокера на стороне сервера для повторяющихся ошибок
Когда одна и та же ошибка возникает снова и снова, проверяйте сервер в фиксированном порядке: масштаб, журналы, недавние изменения, затем конфигурация. Такой порядок позволяет отделить проблему конфигурации от проблемы инфраструктуры уже на первых проверках.
- Масштаб. Затронут один счет, одна группа, один символ или все пользователи? MT4, MT5 или обе платформы? Одна точка доступа или все?
- Получите точный код. Запросите retcode или номер ошибки и время. Не работайте только по скриншотам всплывающих сообщений.
- Прочитайте журнал сервера за то же время. Сопоставьте запрос клиента с записью на стороне сервера (дилер, шлюз, плагин или бридж).
- Составьте список недавних изменений. Обновления платформы, правки символов или групп, новые плагины, изменения LP или бриджа, правила IP/DNS или файрвола, переходы на летнее/зимнее время (DST).
- Проверьте символ. Торговый режим, сессии, уровни стопов и заморозки, лимиты объема, режимы заполнения, режим исполнения, источник котировок.
- Проверьте группу и счет. Кредитное плечо, настройки маржи, разрешения для советников, правила хеджирования/FIFO, лимиты позиций, включен ли счет.
- Проверьте цепочку ликвидности. Статус бриджа, сессии LP, отклоненные ордера и ордера с истекшим тайм-аутом в журналах бриджа.
- Проверьте инфраструктуру. CPU, память, диск, сетевые задержки между серверами, а также резервные копии и целостность базы данных после любого сбоя.
- Исправьте, затем наблюдайте. Отслеживайте частоту ошибки после изменения, а не только отдельное обращение.
Это тот же процесс, который FXSUPPORT применяет для клиентов-брокеров. Он входит в нашу работу по администрированию MetaTrader и операциям по управлению рисками, которая включает проверки сессий, перехода на летнее время (DST) и расписания праздников.
От тушения пожаров к мониторингу
Большинство повторяющихся ошибок MetaTrader можно обнаружить в журналах сервера до того, как клиенты начнут жаловаться. Для этого нужно отслеживать частоту ошибок, а не отдельные обращения. Рост 10021 по одному символу, тайм-ауты в ходе одной сессии или отклонения после перезапуска бриджа видны в журналах уже через несколько минут после начала.
FXSUPPORT оказывает поддержку платформ MT4/MT5 для брокеров и prop-фирм: установка, обновления, резервное копирование, настройка, мониторинг журналов и настройка бриджей. Мы также обслуживаем серверную инфраструктуру в Великобритании и Нидерландах с мониторингом и целевым показателем доступности 99,9%. На практике это означает, что мы:
- отслеживаем журналы платформы и бриджа на предмет закономерностей ошибок, а не только сбоев;
- проверяем настройки символов, сессий и групп после каждого изменения и перед переходами на летнее/зимнее время (DST);
- проверяем работу плагинов после обновлений платформы;
- защищаем серверы от DDoS и поддерживаем резервные копии в восстанавливаемом состоянии.
Если вы управляете брокерской компанией, а ваша служба поддержки целыми днями отвечает на одни и те же обращения об ошибках, это признак того, что причина находится на сервере. Ознакомьтесь с объемом наших услуг на страницах поддержка MT5 и поддержка MT4 или свяжитесь с нами для бесплатного технического аудита.
Часто задаваемые вопросы
Какие ошибки MetaTrader встречаются чаще всего?
Где найти официальный список кодов ошибок MT5?
Используют ли MT4 и MT5 одинаковые номера ошибок?
Что означает «No connection» в MT4 или MT5?
Почему MetaTrader выдает «Invalid account», хотя пароль верный?
Что такое TRADE_RETCODE_PRICE_OFF (10021)?
Как исправить неправильные стопы (130 или 10016)?
В чем разница между 10026 и 10027?
Почему ордер возвращает «done», но позиция не открывается?
Что означает «Trade context is busy» (146)?
Где хранятся файлы журналов MetaTrader?
Когда брокеру стоит передать обработку ошибок MetaTrader на аутсорсинг?
Является ли FXSUPPORT частью MetaQuotes?
Источники
- Trade Server Return Codes — MQL5 Reference, MetaQuotes (дата обращения: 8 октября 2026)
- Runtime Errors — MQL5 Reference, MetaQuotes (дата обращения: 8 октября 2026)
- Trade Server Return Codes — MQL4 Reference, MetaQuotes (дата обращения: 8 октября 2026)
- Runtime Errors — MQL4 Reference, MetaQuotes (дата обращения: 8 октября 2026)
- IsTradeContextBusy — MQL4 Reference, MetaQuotes (дата обращения: 8 октября 2026)
- OrderSend — MQL5 Reference, MetaQuotes (дата обращения: 8 октября 2026)
- Symbol Properties — MQL5 Reference, MetaQuotes (дата обращения: 8 октября 2026)
- Requirements and Limitations in Making Trades — MQL4 Book, MetaQuotes (дата обращения: 8 октября 2026)
- Connect to an Account — MetaTrader 5 Help, MetaQuotes (дата обращения: 8 октября 2026)
- Platform Logs — MetaTrader 5 Help, MetaQuotes (дата обращения: 8 октября 2026)
- Platform Settings — MetaTrader 5 Help, MetaQuotes (дата обращения: 8 октября 2026)
FXSUPPORT не аффилирована с MetaQuotes Ltd. и поставщиками, упомянутыми на этой странице. Общая информация, не являющаяся юридической или инвестиционной консультацией.
Одни и те же ошибки на многих счетах?
Пришлите нам коды и несколько строк из журналов. Мы проверим конфигурацию вашего сервера MT4/MT5 и укажем, откуда берутся ошибки.