Коды отказа ордеров MT5: в каком порядке искать причину
Содержание
- Вывод: сначала выясните, отказ происходит каждый раз или время от времени
- Как это устроено: код возврата — это «ответ сервера»
- Порядок проверки: идите в таком порядке
- 1. 10018: сначала посмотрите на часы
- 2. 10030: согласуйте тип исполнения
- 3. 10013: проверьте содержимое ордера
- 4. 10004: допустимое проскальзывание и время суток
- 5. 10006: иногда остаётся только спросить брокера
- Ограничения и предостережения
- Итоги
Вывод: сначала выясните, отказ происходит каждый раз или время от времени
Когда MT5 отклоняет ордер советника, в журнале появляется число вроде «retcode=10030». К нам тоже часто приходят вопросы об этих кодах возврата.
Сначала — вывод. Первым делом посмотрите, отказы происходят каждый раз или лишь время от времени.
- Отказ каждый раз → подозревайте 10030, 10013, 10018. Это проблема настроек или времени суток, и сколько ни пробуйте, ордер не пройдёт, пока вы не исправите причину или не откажетесь от такой сделки.
- Отказ время от времени → подозревайте 10004, 10006. Они возникают из-за состояния рынка или решения брокера, и через некоторое время ордер иногда проходит.
От того, к какому случаю относится ваша ситуация, зависит и то, где искать причину, и то, насколько это срочно.
Сравнение рекомендованных брокеров →
🎁 Скачать бесплатный EA📧 Бесплатный email-курс (8 писем) + пакет из 13 индикаторов MT5 только для подписчиков
* Конфиденциальность строго защищена. Отписаться можно в любое время.
Как это устроено: код возврата — это «ответ сервера»
Когда советник отправляет ордер, сервер брокера решает, принять его или нет, и возвращает результат в виде числа. При успехе приходит, например, 10009 (сделка исполнена), при отказе — номер, обозначающий причину.
Важно помнить: это номер лишь категории, которую вернул сервер. Настоящую причину отказа он может и не раскрывать. Особенно это касается 10006: по журналу часто невозможно понять, что именно проверил брокер.
| Код | Значение в MT5 | Как проявляется | Что проверять | Пройдёт ли после ожидания |
|---|---|---|---|---|
| 10018 | Рынок закрыт | Каждый раз (зависит от времени) | Торговые часы, выходные | Пройдёт после открытия |
| 10030 | Указанный тип исполнения (filling) не поддерживается | Каждый раз | Настройки EA, спецификация символа | Не пройдёт |
| 10013 | Неверный запрос | Часто каждый раз | Лот, цена, название символа | Не пройдёт |
| 10004 | Реквота (цена изменилась) | Время от времени | Допустимое проскальзывание, время суток | Часто проходит |
| 10006 | Запрос отклонён | От случая к случаю или каждый раз | Обращение к брокеру | Неизвестно |
Порядок проверки: идите в таком порядке
1. 10018: сначала посмотрите на часы
Это проще всего проверить, поэтому начинаем с него. Убедитесь, что вы не попали на выходные, праздники, новогодние каникулы, а также на перерывы по отдельным символам (у многих брокеров по золоту и фондовым индексам есть перерыв в течение дня). Щёлкните символ правой кнопкой в окне «Обзор рынка» и откройте «Спецификацию» — там указаны часы торгов. Учтите и разницу между временем сервера и японским временем. Если причина во времени, ордер пройдёт после открытия рынка без каких-либо ваших действий.
2. 10030: согласуйте тип исполнения
В зависимости от брокера и типа счёта принимаются разные типы исполнения (FOK, IOC, Return). Если советник отправляет ордер неподдерживаемого типа, его будут отклонять каждый раз. Если во входных параметрах EA есть пункт вроде «Filling», выставьте тот тип, который указан в поле исполнения в спецификации символа. Если такого пункта нет, исправлять придётся на стороне самого советника — обратитесь к его распространителю. Чаще всего это случается сразу после перехода к новому брокеру или на другой тип счёта.
3. 10013: проверьте содержимое ордера
Код часто появляется из-за ошибок в самом ордере: лот меньше минимального, не соответствует шагу лота, не совпадает суффикс названия символа («.m», «#» и т. п.). В журнале подробная причина может не указываться. Иногда остаётся только пробовать, понемногу меняя лот и название символа. Проверку параметров мы собрали в статье Как настроить EA.
4. 10004: допустимое проскальзывание и время суток
Этот код чаще появляется, когда цена быстро движется: сразу после выхода статистики, ранним утром. Если у советника есть пункты «Slippage» или «Deviation», небольшое увеличение значения может сократить число отказов. Но если расширить его слишком сильно, вы соглашаетесь на исполнение по невыгодной цене. Если к проблеме добавляется медленное соединение, ситуацию может улучшить VPS.
5. 10006: иногда остаётся только спросить брокера
Это отказ по решению брокера, и причина со стороны пользователя не видна. Возможны ограничения по счёту, временная приостановка торгов по символу, лимит на слишком большое число ордеров, но какая именно причина сработала, мы тоже не можем утверждать. Надёжнее всего записать время из журнала и содержимое ордера и обратиться в поддержку брокера. Если это случается часто, можно рассмотреть смену брокера — ориентиром может служить сравнение брокеров.
Ограничения и предостережения
- На демо-счёте проблема может не воспроизвестись. Исполнение на демо- и реальном счёте не обязательно одинаково, и реквоты с отказами могут возникать с разной вероятностью. Если на демо всё работало, нельзя утверждать, что на реальном счёте ордера пройдут так же.
- Многократные повторы могут навредить. Коды 10030 и 10013 не исчезнут от повторной отправки того же ордера. Если советник пересылает ордер после каждого отказа, заявки скапливаются за короткое время, что может привести к ограничениям со стороны брокера. В наших EA повторно, с заданным числом попыток, отправляются только временные коды вроде 10004.
- Отклонённая сделка в записи не остаётся. В бэктесте такие отказы почти не возникают, поэтому на реальном счёте результат на эту величину расходится. Это одна из причин, почему результат не совпадает с тестером.
- Помимо пяти кодов, разобранных здесь, существуют и другие: неверный лот, неверная цена, недостаточная маржа и т. д. Эта статья — подборка пяти кодов, о которых нас спрашивают чаще всего.
Итоги
- Сначала посмотрите: отказ каждый раз или время от времени
- Если каждый раз — проверяйте по порядку 10018 (время) → 10030 (тип исполнения) → 10013 (содержимое ордера)
- Если время от времени — смотрите 10004 (проскальзывание, время суток), а по 10006 обращайтесь к брокеру
- 10030 и 10013 не пройдут, сколько ни отправляй повторно, — исправляйте настройки
- Настоящая причина 10006 может быть скрыта от пользователя, и мы тоже не можем назвать её наверняка
- Если ордер прошёл на демо-счёте, это не гарантирует, что он так же пройдёт на реальном
По теме
📧 Бесплатный email-курс (8 писем) + пакет из 13 индикаторов MT5 только для подписчиков
* Конфиденциальность строго защищена. Отписаться можно в любое время.
Есть вопрос о советниках или Forex?
Задайте его на трейдерском форуме Nattzy (бесплатная регистрация). Можно спрашивать не только по этой статье — о настройке советников, выборе брокера и многом другом.
Спросить на Nattzy ↗