Коды ошибок MT5: 10027, 10030, 10016 и другие
Содержание (7)
Содержание
Коды ошибок MT5 / MQL5: коды возврата 10004–10031 и ошибки времени выполнения
MT5 сообщает об ошибках двух видов: пятизначные коды возврата торгового сервера (например, 10027 — автоторговля отключена, 10030 — неподдерживаемый режим исполнения, 10016 — неверные стопы, 10019 — недостаточно средств) и четырёхзначные ошибки времени выполнения из GetLastError() (например, 4401, 4756) — в таблице ниже для каждого кода указано решение.
Быстрый поиск: код → значение → решение
Номера и имена констант приведены по официальному справочнику MQL5 (коды возврата торгового сервера и ошибки времени выполнения).
Коды возврата торгового сервера (MqlTradeResult.retcode)
| Код | Константа | Значение | Решение | Подробнее |
|---|---|---|---|---|
| 10004 | TRADE_RETCODE_REQUOTE | Реквота — цена изменилась до исполнения | Увеличьте допустимое отклонение или отправьте запрос повторно по новой цене | Нет котировок и реквоты |
| 10006 | TRADE_RETCODE_REJECT | Запрос отклонён | Обычно причина — широкий спред или быстрый рынок; дайте EA повторить попытку на одном из следующих тиков | — |
| 10013 | TRADE_RETCODE_INVALID | Неправильный запрос | Одно из полей запроса (действие, тип ордера, символ) задано неверно; перед отправкой проверьте запрос через OrderCheck() | — |
| 10014 | TRADE_RETCODE_INVALID_VOLUME | Неправильный объём в запросе | Округлите лот с учётом минимума, максимума и шага объёма символа (SYMBOL_VOLUME_MIN / MAX / STEP) | — |
| 10015 | TRADE_RETCODE_INVALID_PRICE | Неправильная цена в запросе | Нормализуйте цену по числу знаков и размеру тика символа; убедитесь, что отложенный ордер стоит с правильной стороны от рынка | — |
| 10016 | TRADE_RETCODE_INVALID_STOPS | Неправильные стопы в запросе | Ставьте SL/TP дальше уровня стопов брокера и с правильной стороны от цены | Неверные стопы |
| 10017 | TRADE_RETCODE_TRADE_DISABLED | Торговля запрещена | Проверьте режим торговли символа в «Спецификации» и убедитесь, что вы вошли с торговым (а не инвесторским) паролем; в остальных случаях обратитесь к брокеру | — |
| 10018 | TRADE_RETCODE_MARKET_CLOSED | Рынок закрыт | Дождитесь открытия торговой сессии по символу | Рынок закрыт |
| 10019 | TRADE_RETCODE_NO_MONEY | Недостаточно средств для выполнения запроса | Уменьшите лот, закройте позиции или пополните счёт | Недостаточно средств |
| 10021 | TRADE_RETCODE_PRICE_OFF | Нет котировок для обработки запроса | Проверьте соединение и котируется ли символ в данный момент, затем повторите попытку | Нет котировок и реквоты |
| 10026 | TRADE_RETCODE_SERVER_DISABLES_AT | Автоторговля запрещена сервером | Брокер блокирует алгоритмическую торговлю на этом счёте; обратитесь к брокеру | Автоторговля отключена |
| 10027 | TRADE_RETCODE_CLIENT_DISABLES_AT | Автоторговля запрещена клиентским терминалом | Включите кнопку Алготрейдинг и разрешите алготрейдинг в настройках и в свойствах EA | Автоторговля отключена |
| 10030 | TRADE_RETCODE_INVALID_FILL | Неправильный тип исполнения ордера | Задайте в type_filling режим, который поддерживает символ (FOK / IOC / Return) | Неподдерживаемый режим исполнения |
| 10031 | TRADE_RETCODE_CONNECTION | Нет соединения с торговым сервером | Проверьте строку состояния соединения, сеть VPS и состояние сервера брокера | — |
Ошибки времени выполнения (GetLastError())
| Код | Константа | Значение | Решение | Подробнее |
|---|---|---|---|---|
| 4001 | ERR_INTERNAL_ERROR | Неожиданная внутренняя ошибка | Не указывает на одну конкретную причину: вызовите ResetLastError() перед проверяемой функцией, а если ошибка не исчезает — перезапустите или обновите терминал | — |
| 4401 | ERR_HISTORY_NOT_FOUND | Запрошенная история не найдена | Перед чтением вызовите HistorySelect() за период, в который входит нужная сделка или ордер | — |
| 4752 | ERR_TRADE_DISABLED | Торговля для советников запрещена | Включите Алготрейдинг и отметьте «Разрешить алготрейдинг» в свойствах EA | Автоторговля отключена |
| 4756 | ERR_TRADE_SEND_FAILED | Не удалось отправить торговый запрос | OrderSend() вернула false; настоящую причину смотрите в MqlTradeResult.retcode (часто это 10027, 10030 или 10016) | — |
Переходите с MT4? В MT4 для тех же ситуаций используются другие, в основном трёхзначные номера (134, 130, 132, 136, 4109 …). В каждом разделе ниже указан аналог в MT4 по официальному справочнику MQL4. Учтите, что в MT5 номер 4109 означает ERR_CHART_WRONG_PROPERTY (ошибка графика), а не торговую ошибку.
Наши 3 основных советника (опубликованы все цифры долгосрочного бэктеста и открытого форварда)
📧 Бесплатный email-курс (8 писем) + пакет из 13 индикаторов MT5 только для подписчиков
* Конфиденциальность строго защищена. Отписаться можно в любое время.
Как открыть вкладку Experts
Нажмите на вкладку Experts в нижней части MT5, чтобы просмотреть хронологический журнал работы всех EA.
Формат записи:
2026.05.18 10:00:01.234 GOLD VIPER XAUUSD,M30: [ERROR] 10016
Дата/Время Имя EA Символ Таймфрейм Сообщение
Если появилась ошибка, найдите её причину по номеру кода в таблице выше.
Распространённые коды ошибок и способы устранения
10019 — Недостаточно средств (TRADE_RETCODE_NO_MONEY)
Аналог в MT4: 134 ERR_NOT_ENOUGH_MONEY. ERR_NO_MONEY — широко используемое сокращённое обозначение той же ситуации.
Примеры сообщений: "Order failed: not enough money"
"No money"
Причина: Недостаточно маржи — EA не может открыть новую позицию.
Способы устранения:
- Проверьте текущий уровень маржи на вкладке «Торговля» в MT5
- Если уровень маржи близок к 100% или ниже, рассмотрите пополнение счёта
- Уменьшите параметр
RiskPercentв настройках EA, чтобы снизить размер позиции - Закройте вручную часть открытых позиций, чтобы высвободить маржу
📖 Почему ошибка появляется, даже когда баланс выглядит достаточным, и какой код MQL5 её предотвращает — в статье Недостаточно средств в MT5 — причины и решения.
10027 — Автоторговля отключена клиентом (TRADE_RETCODE_CLIENT_DISABLES_AT)
Связанная ошибка времени выполнения MT5: 4752 ERR_TRADE_DISABLED. Аналог в MT4: 4109 ERR_TRADE_NOT_ALLOWED.
Примеры сообщений: "AutoTrading disabled by client"
"Trade is not allowed"
Причина: Автоматическая торговля в MT5 отключена.
Способы устранения:
- Нажмите кнопку Алготрейдинг на панели инструментов MT5, чтобы включить её (она должна стать зелёной)
- Перейдите в Сервис → Настройки → Советники → включите «Разрешить алготрейдинг» и перезапустите MT5
Эта ошибка часто возникает при автоматическом запуске MT5 после перезагрузки VPS.
📖 Вся цепочка разрешений (параметры в настройках, «Разрешить алготрейдинг» для каждого графика, инвесторский пароль и разница между 10027 и 10026) разобрана в статье Автоторговля отключена в MT5 — полное решение.
10018 — Рынок закрыт (TRADE_RETCODE_MARKET_CLOSED)
Аналог в MT4: 132 ERR_MARKET_CLOSED.
Пример сообщения: "Market closed"
Причина: EA попытался открыть сделку в нерабочее время рынка (выходные или праздники).
Способ устранения: Действий не требуется. В выходные рынок закрыт, и любая попытка входа в этот период вызывает эту ошибку; когда рынок откроется, EA возобновит работу автоматически.
📖 Ошибка появляется в будни? Торговые сессии символа, серверное время и режим «только закрытие» описаны в статье Рынок закрыт (10018/132) — причины и решения.
10016 — Неверные стопы (TRADE_RETCODE_INVALID_STOPS)
Аналог в MT4: 130 ERR_INVALID_STOPS.
Пример сообщения: "Invalid stops"
Причина: Значение SL (стоп-лосс) или TP (тейк-профит) нарушает требование брокера к минимальному уровню стопов.
Способы устранения:
- Проверьте уровень стопов брокера (минимальное расстояние SL): в MT5 щёлкните правой кнопкой мыши по символу → «Спецификация» → поле «Уровень стопов»
- Убедитесь, что расстояние SL в EA больше уровня стопов
- Ошибка чаще всего возникает в периоды низкой волатильности, когда значения ATR очень малы
📖 Как на самом деле работают уровни стопов, чем 10016 отличается от 130 и какой код MQL5 устраняет ошибку навсегда — в статье Неверные стопы (10016/130) — полное решение.
10021 — Нет котировок (TRADE_RETCODE_PRICE_OFF)
Аналог в MT4: 136 ERR_OFF_QUOTES.
Пример сообщения: "Off quotes"
Причина: Котировки с сервера брокера не поступают — проблема с подключением.
Способы устранения:
- Проверьте статус соединения в строке состояния в нижней части окна MT5
- Если соединение разорвано, перезапустите MT5
- Проверьте страницу состояния серверов брокера на предмет сбоев
- Проверьте сетевое подключение на VPS
📖 Отличие от реквот (10004/138), настройка отклонения и реализация повторных попыток — в статье Нет котировок и реквоты (10021/10004) — полное решение.
📖 Сразу после смены брокера появляется Unsupported filling mode (10030)? Это другая проблема — см. Неподдерживаемый режим исполнения (10030) — как исправить.
10012 — Запрос отменён по тайм-ауту (TRADE_RETCODE_TIMEOUT)
Аналог в MT4: 128 ERR_TRADE_TIMEOUT.
Пример сообщения: "Request canceled by timeout"
Причина: Время ожидания ордера истекло из-за перегрузки сервера или задержки в сети.
Способы устранения:
- Чаще всего это происходит сразу после выхода важных новостей, когда нагрузка на сервер высока
- Как правило, EA повторит попытку на следующем тике — действий не требуется
- Если это случается часто, проверьте сетевую среду VPS или рассмотрите другого брокера
10006 — Запрос отклонён (TRADE_RETCODE_REJECT)
Пример сообщения: "Request rejected"
Причина: Брокер отклонил ордер — обычно из-за спреда, превышающего лимит, или слишком быстрого движения цены.
Способы устранения:
- Проверьте параметр
MaxSpreadPoints; эта ошибка часто возникает при значительном расширении спреда - Во время выхода новостей и сразу после него это ожидаемое поведение — ошибку можно игнорировать
- Если она возникает часто, немного увеличьте значение
MaxSpreadPoints
"Margin level too low"
Пример сообщения: "Margin level too low. Skip signal."
Причина: Параметр EA UseMarginCheck = true обнаружил, что уровень маржи опустился ниже MinMarginLevel (например, 200%), поэтому новые входы автоматически блокируются.
Способы устранения:
- Это штатное защитное поведение — не ошибка
- Входы возобновятся автоматически, когда уровень маржи восстановится
- Кардинальное решение: пополните счёт или уменьшите
RiskPercent
"No signal on this bar" или "Wait for next bar"
Это не ошибки, а отладочные записи журнала.
"No signal. ATR=1245, EMA(50)=1998.23"
EA оценивает график на каждом баре и записывает в журнал, когда условия входа не выполнены. Это штатная работа.
Классификация ошибок по приоритету
| Приоритет | Ошибка | Действие |
|---|---|---|
| Критично | 10019 Недостаточно средств (MT4: 134) | Немедленно пополнить счёт или уменьшить лот |
| Критично | 10027 Автоторговля отключена / 4752 (MT4: 4109) | Включить алготрейдинг |
| Внимание | 10016 Неверные стопы (MT4: 130) | Пересмотреть настройки SL |
| Внимание | 10030 Неправильный тип исполнения | Задать режим исполнения, который поддерживает символ |
| Внимание | 10021 Нет котировок (MT4: 136) — повторяется | Проверить подключение |
| Норма | 10018 Рынок закрыт (MT4: 132) — только в выходные | Действий не требуется |
| Норма | 10012 Тайм-аут (MT4: 128) — изредка | Действий не требуется |
| Норма | Margin level too low | Штатная защита при низкой марже |
Как эффективно читать вкладку Experts
Фильтрация записей журнала
Щёлкните правой кнопкой мыши внутри вкладки Experts и выберите «Фильтр», чтобы показать записи только для конкретного EA или типа ошибки.
Расположение файлов журнала
Файлы журнала MT5 сохраняются здесь:
C:\Users\[Имя_пользователя]\AppData\Roaming\MetaQuotes\Terminal\[ID]\MQL5\Logs\
Файлы создаются автоматически по датам. Открывайте эту папку при разборе ошибок.
Итог
Большинство ошибок EA делятся на четыре категории:
- Недостаточно маржи (10019) — пополните счёт или уменьшите лот
- Автоторговля выключена (10027 / 4752) — нажмите кнопку «Алготрейдинг», чтобы включить её
- Проблемы с подключением (10021 / 10031) — перезапустите MT5 или проверьте сеть VPS
- Штатное поведение — действий не требуется (закрытие рынка в выходные, пропуск сделки из-за спреда и т.д.)
Возьмите за привычку ежедневно проверять вкладку Experts, чтобы быстро замечать критические ошибки (10019 и 10027) до того, как они приведут к проблемам.
Часто задаваемые вопросы
В: Где можно найти список кодов ошибок?
Все коды перечислены в официальном справочнике MQL5: коды возврата торгового сервера для диапазона 10004–10046 и ошибки времени выполнения для диапазона 4xxx. Также можно воспользоваться встроенной справкой MT5 (клавиша F1).
В: В чём разница между кодом возврата и GetLastError()?
Код возврата (10004–10046) — это ответ торгового сервера на ордер, он хранится в MqlTradeResult.retcode. GetLastError() возвращает ошибку времени выполнения самой программы MQL5 (4xxx и 5xxx). Когда OrderSend() завершается неудачей, вы часто получаете оба: 4756 из GetLastError() и код возврата, который сообщает настоящую причину.
В: Нужно ли останавливать EA, если ошибки появляются часто?
Если 10018 (рынок закрыт) или 10012 (тайм-аут) появляются изредка, останавливать EA не нужно. Однако если 10019 (недостаточно средств) повторяется, приостановите EA, проверьте состояние маржи и запустите его снова после устранения проблемы.
В: Появляется ошибка "Invalid account".
Возможно, данные для входа в MT5 (название сервера, логин или пароль) указаны неверно. Перейдите в Файл → Открыть счёт и войдите заново.
В: Ошибок нет, но EA не открывает сделки.
Если нет ни ошибок, ни входов, EA просто ждёт выполнения условий входа — это совершенно нормально. EA не входит на каждой свече; он входит только тогда, когда совпадают все условия. Подождите некоторое время. Для EA на H1 один–три входа в день — нормальная работа.
По теме
📧 Бесплатный email-курс (8 писем) + пакет из 13 индикаторов MT5 только для подписчиков
* Конфиденциальность строго защищена. Отписаться можно в любое время.
Есть вопрос о советниках или Forex?
Задайте его на трейдерском форуме Nattzy (бесплатная регистрация). Можно спрашивать не только по этой статье — о настройке советников, выборе брокера и многом другом.
Спросить на Nattzy ↗