Практика торговли
Почему ордера торгового робота отклоняются: порядок диагностики

Обновлено 22 октября 2026: схема диагностики, практикум по спецификации и разбор неизвестного результата.
Подключённый торговый робот не обязательно может исполнить подготовленную заявку. Авторизация работает, котировки меняются, но следующий запрос нарушает правило цены, объёма, маржи или торговой сессии. Если сразу менять стратегию, можно скрыть настоящую причину.
Полезная диагностика начинается с ответа на один конкретный запрос. В качестве документированного примера здесь используется MetaTrader 5. Названия сообщений в другой программе могут отличаться. Все числовые примеры учебные и не предлагают увеличить объём или изменить допустимый риск.
Для отклонённой заявки нужна конкретная причина. При неопределённом ответе сначала выясняют состояние исходного ордера.
«Нет сигнала» и «ордер отклонён» — разные ситуации
Фраза «робот не торгует» описывает наблюдение. Она может означать отсутствие условия входа, паузу стратегии, отсутствие отправленного запроса, отказ сервера или исполнение, которое не видно на открытом пользователем экране.
Выберите небольшой интервал времени и событие, которое можно найти в журнале. Запишите намерение программы, факт отправки и полученный ответ. Скриншот пустого списка позиций сам по себе этого не показывает.
Для запросов MT5 MetaQuotes публикует коды торгового сервера: например, неверный объём 10014, цена 10015, стопы 10016, закрытый рынок 10018, нехватка средств 10019 и слишком частые запросы 10024. Код сужает круг поиска, но не объясняет необходимость менять посторонние настройки.
Минимальный набор данных для проверки
Поле | Что сохранить |
|---|---|
Время | Точный момент и часовой пояс |
Среда | Версия программы, сервер, демо или реальный счёт, режим учёта |
Инструмент | Полный символ с суффиксом |
Запрос | Направление, объём, тип ордера, цена, SL и TP |
Ответ | Код, полный текст, идентификатор заявки или ордера |
Состояние счёта | Позиции, отложенные заявки, относящиеся к событию сведения о марже |
Оригинал сохраните у себя, а для поддержки подготовьте копию без паролей, API-ключей и других секретов. Не заменяйте точное сообщение пересказом «ошибка подключения». Разница между отказом и отсутствием ответа определяет дальнейшие действия.
MT5 разделяет журнал экспертов и журнал платформы; старые записи доступны в файлах. Расположение и смысл временных отметок разобраны в официальном руководстве по журналам. Если робот работает отдельной программой, понадобится и её журнал.
Пример invalid volume: минимум соблюдён, шаг — нет
Пусть для условного инструмента минимальный объём равен 0,10 лота, а допустимый шаг — тоже 0,10. Заявка 0,15 больше минимума, но не попадает в допустимую сетку. Проверка «достаточно большой объём» — только одно из условий.
Объём | Минимум | Шаг | Результат проверки |
|---|---|---|---|
0,05 | Не соблюдён | Не соблюдён | Ниже условного минимума |
0,15 | Соблюдён | Не соблюдён | Не соответствует шагу 0,10 |
0,20 | Соблюдён | Соблюдён | Пройдены только эти две проверки |
Из таблицы не следует рекомендация торговать 0,20. Увеличение объёма ради исчезновения ошибки меняет экспозицию. Правильным решением может быть пропуск сделки либо подбор подходящего инструмента и конфигурации после проверки. Даже корректный шаг не отменяет максимальный объём, суммарные ограничения и требования к марже.
В свойствах символа MQL5 отдельно описаны минимум, максимум и шаг объёма, ценовые параметры и ограничения стопов. Берите значения из спецификации именно вашего инструмента, а не копируйте условия другого брокера.
Пример invalid stops: проверка расстояния
Рассмотрим упрощённый учебный случай: нужная текущая опорная цена равна 1,10000, один пункт равен 0,00001, минимальная дистанция — 30 пунктов. Предложенный защитный уровень 1,09980 находится всего в 20 пунктах. В этой модели условие расстояния не выполнено.
Это демонстрация способа проверки, а не универсальная формула для любого ордера. Нужно определить правильную сторону котировки, тип поручения, допустимое направление уровня и текущие ограничения. Сравнение со старой ценой на скриншоте может оказаться неверным, если котировка изменилась до проверки запроса сервером.
Не устраняйте ошибку простым удалением защиты или расширением стопа без оценки последствий. Сохраните запрос, установите нарушенное условие и выясните, может ли нужная конфигурация ему соответствовать. Неверная единица измерения или неожиданная опорная цена — повод разбирать интеграцию.
Как выбрать следующее действие по ответу
Неверная цена или стопы: сопоставьте отправленные значения, актуальную котировку и спецификацию; проверьте единицы и символ.
Неверный объём: отдельно проверьте минимум, максимум, шаг и ограничения суммарной позиции.
Недостаточно средств: изучите требования к марже и уже существующие обязательства; одного показателя баланса недостаточно.
Рынок закрыт: проверьте сессию инструмента, время сервера и праздники.
Торговля запрещена: различайте разрешения счёта, настройки автоматизации платформы и состояние программы.
Слишком много запросов: сначала найдите источник повторений, а не увеличивайте их количество.
При подключении к криптобирже подход аналогичен, но названия правил другие. Материал о tick size, step size и минимальном номинале объясняет, почему количество и стоимость заявки проверяются отдельно.
Тайм-аут не разрешает отправлять ордер повторно
Однозначный отказ и неопределённый результат — разные случаи. Если приложение не дождалось ответа, состояние счёта всё равно могло измениться. Слепое повторение инструкции способно создать лишнюю сделку.
По идентификатору запроса или ордера проверьте историю и открытые заявки на стороне брокера. Установите, существует ли исходное поручение и что с ним произошло. Порядок восстановления должен соответствовать конкретному подключению и программе. Не заменяйте его многократным нажатием торговой кнопки.
В чек-листе восстановления порядок такой: подключиться, сверить состояние, проверить конфигурацию, затем продолжать. Аудит исполнения помогает разделить отправку, подтверждение и фактическую сделку.
Схема диагностики: отказ, неизвестный результат или принятие?
До изменения параметров определите ветку: явный отказ требует конкретной проверки; отсутствующий или неопределённый ответ — сверки состояния счёта; принятая заявка — контроля исполнения. В MT5 возврат true из OrderSend не доказывает исполнение. Проверяйте ответ и последующее состояние ордера и сделок.

Открыть или скачать схему в полном размере
Учебные проверки, а не готовая заявка. Локальный или сетевой тайм-аут может оставить результат неизвестным; полученный код MT5 10012 означает отмену запроса по тайм-ауту. Применимые правила определяют платформа, счёт и брокер.
Коды MT5: куда направить проверку
Используйте фактический retcode, а не только надпись в интерфейсе. Краткая таблица опирается на официальный справочник кодов.
Код | Следующая проверка |
|---|---|
10014 · INVALID_VOLUME | Минимум, максимум, шаг и совокупный лимит объёма |
10015 · INVALID_PRICE | Переданная цена, котировка и ценовая сетка |
10016 · INVALID_STOPS | Сторона котировки, дистанция и правила стопов |
10019 · NO_MONEY | Маржа и обязательства счёта |
10030 · INVALID_FILL | Допустимая политика заполнения и режим исполнения |
10018 / 10017 / 10026 / 10027 | Сессия / разрешение торговли / разрешение автоторговли на сервере или в терминале |
10024 · TOO_MANY_REQUESTS | Частота запросов; остановить цикл повторов |
10008 — ордер размещён, 10009 — запрос выполнен, 10010 — выполнен частично. Сопоставляйте результат с запрошенной операцией.
Четыре проверки на одном учебном снимке спецификации
Предыдущие примеры объёма и стопов — отдельные упражнения. Здесь другая, намеренно условная спецификация: два знака после точки, point 0.01, шаг цены 0.25, минимум 0.10 лота, шаг объёма 0.05, максимум 2.00 и stops level 50 пунктов. Это независимые проверки, а не единая заявка брокеру. В расчётах десятичный разделитель — точка.
Проверка | Расчёт и вывод |
|---|---|
Цена 100.10 | 100.10 ÷ 0.25 = 400.4: цена вне сетки. 100.00 и 100.25 соответствуют сетке; двух знаков после точки недостаточно. |
Объём 0.37 лота | В пределах 0.10–2.00, но 0.37 ÷ 0.05 = 7.4: шаг нарушен. 0.35 и 0.40 соответствуют этой сетке при соблюдении остальных лимитов. |
SL длинной позиции 99.75; Bid 100.00 | Минимальная дистанция: 50 × 0.01 = 0.50. Фактическая: 100.00 − 99.75 = 0.25 — проверка не пройдена. SL 99.25 даёт 0.75 и соответствует шагу цены, но проходит только эти проверки снимка. |
Оценка маржи 150; свободная маржа 120 | В одной валюте счёта, без открытых позиций и отложенных ордеров: 150 − 120 = 30 дефицита в упрощённой оценке. Одной этой оценки недостаточно для отправки. |
Point и tick size — разные свойства. Форматирование числа не приводит цену к разрешённому шагу. Справочник свойств инструмента также разделяет лимиты объёма, stops level и freeze level. Для защитного стопа длинной позиции пример MetaQuotes использует Bid; для других направлений и типов заявок нужна своя опорная цена. Новая котировка или ограничение freeze level могут изменить результат.
Замена 0.37 на 0.40 или перенос стопа меняет объём либо риск. Пересмотрите замысел сделки: допустимым решением может быть её пропуск. Верная арифметика не гарантирует принятия заявки брокером.
OrderCalcMargin оценивает маржу без учёта имеющихся позиций и отложенных ордеров. Для конкретного запроса изучите результат OrderCheck, включая комментарий и прогноз маржи. Успешная предварительная проверка также не гарантирует исполнения.
Разбор восстановления: ответ не пришёл
В учебном инциденте запрос приложения EDU-042 на покупку 0.35 лота отправлен в 12:00:00 UTC. В 12:00:03 приложение сообщает о локальном тайм-ауте без ответа сервера. Придуманный идентификатор — метка упражнения, а не доказательство защиты от дублей на сервере.
Приостановите повтор этой инструкции; сохраните исходное время и параметры.
После подключения сверьте открытые ордера, позиции и историю ордеров и сделок правильного счёта. Пустого списка активных ордеров недостаточно: исполненный ордер уже мог перейти в историю.
Если совпадающая запись подтверждает исполнение 0.35 лота, не отправляйте ещё 0.35. При частичном исполнении сначала установите состояние оставшейся части ордера.
Если результат не выяснен, оставьте эту инструкцию на паузе и передайте доказательства в поддержку. Новую отправку могут обосновать только проверенное состояние и предусмотренный порядок восстановления.
В MT5 события торговой транзакции могут приходить в несколько этапов. В cTrader Open API ORDER_ACCEPTED и ORDER_FILLED различаются. Событие ошибки ордера содержит диагностические поля; сверка возвращает текущие позиции и отложенные ордера, а история сделок — исполнения. Это примеры платформ: доступные журналы и средства восстановления New Hope PRO зависят от подключения и версии.
Что отправить в поддержку
Одним предложением опишите ожидаемое поведение.
Укажите интервал времени, версию и точный символ.
Приложите запрос и полный ответ, удалив секреты.
Добавьте спецификацию инструмента и режим счёта.
Назовите последнее изменение настроек, если оно было.
Сообщите, воспроизводилось ли событие в подходящей тестовой среде.
Во время диагностики меняйте по одному параметру. Иначе успешная следующая заявка не объяснит, что помогло. Не удаляйте неудачный пример: плавающие ошибки сложнее разбирать, когда журнал уже перезаписан.
Как применять это к New Hope PRO
Сначала проверьте подключение по руководству New Hope PRO. Видео в статье показывает общую настройку продукта. Примеры кодов взяты из документации платформы и не означают, что интерфейс New Hope PRO выводит буквально такие же экраны.
Готовые настройки для брокеров и инструментов, а также помощь менеджера входят в полную комплектацию New Hope PRO. Однократное ознакомление за $500 на один месяц содержит только робот и инструкцию: без списка брокеров, готовых настроек и помощи по настройке торговли. Условия сравнения доступны на странице продукта.
Короткие ответы
Работающий поток котировок подтверждает возможность сделки?
Нет. Рыночные данные и права на торговлю — разные части подключения. Актуальная котировка не отменяет ограничений счёта.
Нужно повторять заявку, пока она не пройдёт?
Нет. Сначала различите отказ и неизвестный результат, затем примените документированную процедуру.
Можно перенести настройки на другой счёт MT5?
Только после проверки сервера, символа и режима хеджинга или неттинга. Общее название платформы не делает счета взаимозаменяемыми.
Видео по теме
Открыть связанное видео на YouTube
Больше статей



