Если MT4 или MT5 отклонила ордер, сначала сохраните точный ответ и проверьте состояние счета. Причина может касаться цены, объема, дистанции стопа, разрешений или часов торговли. Увеличение позиции, удаление защиты и повторные нажатия не являются диагностикой. До обращения в поддержку отделите техническую поправку от изменения риска. Статья касается платформ MetaQuotes; настройки счета и инструмента определяет поставщик.
Означает ли ошибка, что на счете ничего не произошло?
Разделяйте подтвержденный отказ, исполнение и неизвестный исход. После потери связи или тайм-аута до повтора проверьте позиции, активные ордера и историю: команда могла дойти до сервера. Установите конкретные тикет, символ, объем и время. Отсутствие новой строки в одном окне не доказывает отсутствие операции.
В программе MT5 значение OrderSend=true не доказывает исполнение. Документация OrderSend требует анализа структуры результата и последующих событий. Нужен действительно исполненный объем, не только запрошенный. Для уменьшения риска используйте соответствующую операцию закрытия позиции: встречная продажа на счете hedging может создать новую позицию. Материал о мобильной работе со счетом (на английском) разбирает действия при потерянном ответе.
Какой код читать: MT4 или MT5?
Номера двух платформ не взаимозаменяемы. MQL4 получает ошибку через GetLastError(), а результат заявки MQL5 содержит retcode. Пары в таблице обозначают похожие категории, не одинаковый порядок обработки каждой операции. Основания — официальные списки MQL4 и MQL5.
Прокрутите таблицу вправо, чтобы увидеть все столбцы →
| Проблема | MT4 | MT5 | Первая проверка |
|---|---|---|---|
| Некорректные стопы | 130 | 10016 | Сторона цены, дистанция и сетка. |
| Некорректный объем | 131 | 10014 | Минимум, шаг и максимум. |
| Торговля запрещена | 133 | 10017 | Разрешения и режим символа. |
| Рынок закрыт | 132 | 10018 | Сессия конкретного инструмента. |
| Недостаточно средств | 134 | 10019 | Требуемая маржа и состояние счета. |
| Нет котировок | 136 | 10021 | Свежесть котировок и ответ сервера. |
Сохраните текст ответа и вид команды: новый вход, модификация или закрытие. Новое предложение цены рассматривает статья о реквотах.
Почему правильный вид цены не делает стоп допустимым?
Разделите пункт платформы, минимальное изменение цены и требуемую дистанцию из спецификации. Число десятичных знаков задает формат, но не всю ценовую сетку. Документация MT5 различает Point, Tick size, Stops Level и Freeze Level. Stops Level касается минимальной дистанции; Freeze Level ограничивает операции в зоне заморозки. Одно свойство не заменяет другое.
Полностью условный линейный инструмент. Пункт равен 0,00001, шаг цены — 0,00005, Stops Level — 20 пунктов. Bid 1,10000, Ask 1,10010. Для нового Stop Loss длинной позиции проверяем дистанцию от Bid. Цена 1,09983 удалена на 17 пунктов и не лежит на сетке: 1,09983 / 0,00005 = 21 996,6. Цена 1,09980 лежит на сетке и дает нужные 20 пунктов в этом снимке. Проверка двух условий не гарантирует принятия или цены исполнения.
При входе по указанному Ask расстояние до исправленного стопа равно 0,00030. Для 10 000 единиц базовой валюты модельная ценовая потеря составляет 3 USD вместо 2,70 USD по первоначальному уровню. Валюта оценки USD и точные исполнения заданы только для арифметики; затраты и проскальзывание исключены. Пересчитайте объем либо откажитесь от этого входа. Перенос стопа без пересчета увеличивает бюджет потери.
Документация MT4 предупреждает: нулевой MODE_STOPLEVEL может означать отсутствие минимальной дистанции либо динамическое ограничение сервера. Ноль не обещает принятия любого стопа. Перед новой попыткой прочитайте свежие котировки: рынок не обязан оставаться в прежнем снимке. Статья о SL и TP развивает правила выбора стороны цены.
При отклоненной модификации также прочитайте область заморозки: MODE_FREEZELEVEL в MT4 или SYMBOL_TRADE_FREEZE_LEVEL в MT5. Запишите значение и единицу. Изменение числа знаков в форме не уменьшает это ограничение операции.
Достаточно ли правильного шага объема?
Проверяйте минимум, максимум и шаг отдельно для лота — единицы объема позиции. В условной модели минимум составляет 0,10 лота, шаг — 0,01. Рассчитанные 0,04 кратны шагу, но ниже минимума. Увеличение до 0,10 повышает экспозицию в 2,5 раза и не восстанавливает первоначальный план.
Доступная маржа отвечает на другой вопрос, чем риск до стопа. Не выбирайте более высокое плечо как ответ на недостаток средств. Установите допустимые количество, затраты и резерв счета; неподходящую конфигурацию отклоните. При частичном закрытии проверьте и остаток объема. Материал о расчете размера позиции показывает полный расчет.
Правильный шаг не заменяет минимум объема
Прокрутите схему вправо, чтобы увидеть ее целиком →
Что проверить при запрете торговли или отсутствии цен?
Начните с верных счета, сервера и полного имени символа, включая суффикс. Прочитайте сессию именно этого инструмента: часы другой пары или площадки не решают вопрос. Проверьте время последней котировки, связь и разрешенные операции. Режим close-only не является основанием обойти ограничение новым встречным входом.
Для программы отдельно проверьте разрешение терминала, настройки программы и права сервера. Работающие котировки не доказывают разрешения торговать. Не включайте все права вслепую. Если причина неясна, подготовьте платформу и версию, замаскированный идентификатор счета, символ, время с зоной, вид запроса, параметры и точный ответ. Пароли и коды входа в заявку поддержки не включают.
Технически допустимый ордер может нарушать план риска. После каждой смены цены или количества заново рассчитайте модельную потерю.
Что сделать после прочтения?
- Составьте одну запись инцидента. Отделите исходный запрос, ответ и подтвержденное состояние счета. Отметьте известные факты и пробелы. Ожидание не подтверждает ни отказа, ни исполнения. При неустановленном состоянии обратитесь в официальный канал поставщика.
- Сохраните спецификацию в демо. Запишите пункт, шаг цены, дистанцию стопа, минимальный объем и шаг количества. Рассчитайте один вымышленный уровень без отправки сделки, затем изучите форму. Не создавайте ошибки специально на финансируемом счете.
- Сравните план до и после поправки. Включите новую дистанцию, количество, затраты и маржу. Если поправка выходит за предел, откажитесь от этой конфигурации. Цель — установить причину, а не добиться зеленого подтверждения любой ценой.
Новый снимок цены: вчерашняя поправка больше не подходит
Новый полностью условный пример короткого входа. Линейный инструмент оценивается в USD, контракт — 100 единиц на лот. Пункт 0,01, шаг цены 0,05, Stops Level 15 пунктов; минимум 0,10 лота, шаг объема 0,05, максимум 1 лот. Ценовая сетка отсчитывается от нуля. Условные полные затраты одной сделки — 1 USD, допустимая модельная потеря вместе с ними — 3 USD. Исполнение точно по приведенным ценам, без проскальзывания и других расходов, задано только для расчета.
В первом снимке Bid 100,05 и Ask 100,10. SL короткой позиции 100,23 удален от Ask на 0,13, то есть 13 пунктов, и не лежит на сетке 0,05. Уровень 100,25 дает 15 пунктов и правильный шаг. При продаже по Bid дистанция до него 0,20; для 0,10 лота это 0,20×100×0,10 = 2 USD до затрат, всего 3 USD. Обе проверки цены и бюджет в этом снимке совместимы, но не гарантируют принятия.
Во втором отдельном снимке Bid по-прежнему 100,05, а Ask уже 100,20. Старый исправленный SL 100,25 удален от Ask лишь на 5 пунктов. Для 15 пунктов нужен уровень не ниже 100,35; он находится на сетке. Теперь потеря от цены предполагаемого входа до точного стоп-исполнения составляет 0,30×100×0,10 = 3 USD, а с затратами — 4 USD. Для бюджета 3 USD требовался бы объем не более (3−1)/(0,30×100) = 0,0666… лота, ниже минимума 0,10. Эту конфигурацию отклоняем, не удаляя защиту и не повышая плечо.
Причиной изменения расчета стал новый снимок Ask, а не другое число знаков. Сохраните обе стороны котировки и время каждого снимка, но не выдавайте вымышленные цены за журнал сервера. Если исход прежней заявки неизвестен, эта арифметика не разрешает отправить еще одну: сначала нужно согласовать фактическое состояние счета.