Ошибки торговых методов.
Исполнение, отложенные ордера и отказы брокера. Проверьте результат перед следующим запросом.
Пошаговая инструкция
- 0:00
Ошибки торговых методов.
В этом уроке вы узнаете, как читать результаты торговых методов MT5. Мы разберём полное и частичное исполнение, отложенные ордера, отказы брокера и ситуации, когда результат ещё неясен.
- 0:16
Откройте инструкцию к торговому методу.
Откройте эм ти пять точка эм эр пи си точка про. В разделе торговых методов выберите Order Send. Под примером кода разверните инструкцию о том, как проверить результат запроса. Для другого метода откройте его собственную инструкцию.
- 0:38
1. Проверьте код состояния HTTP.
Сначала проверьте код состояния HTTP. Код состояния HTTP двести означает, что API получил запрос и вернул ответ. Затем прочитайте тело ответа в формате JSON. При другом коде сначала прочитайте ошибку HTTP и тело ответа.
- 1:00
2. Проверьте error и код брокера.
Если error не равен null, прочитайте код и сообщение об ошибке. Если указаны mql Error Trade Int Code и описание, прочитайте их тоже. Отказ брокера может находиться в этой структуре. Выбирайте дальнейшее действие по фактическому коду.
- 1:21
3. Прочитайте результат брокера.
Для торгового запроса код состояния HTTP двести без ошибки API означает, что запрос передан брокеру. Это ещё не означает исполнение. Прочитайте returned Code, returned String Code и остальные поля data, предусмотренные этим методом.
- 1:43
Рыночный ордер: полное или частичное исполнение?
Для рыночной покупки или продажи код десять тысяч девять, Done, означает завершение. Десять тысяч десять, Done Partial, означает частичное исполнение. Проверьте исполненный объём, цену и сделку. Открытые позиции и история помогут выяснить, что произошло с остатком.
- 2:09
Размещение не равно исполнению.
Для рыночного ордера код десять тысяч восемь, Placed, означает принятие к исполнению, но ещё не подтверждает сделку. Для отложенного ордера Placed или Done подтверждает размещение. Сохраните data, order и проверьте Opened Orders. Ордер продолжает ждать цены активации.
- 2:35
Рынок закрыт: брокер отказал.
Отказ брокера может находиться в data, даже если error отсутствует. Код десять тысяч восемнадцать означает, что рынок закрыт. Дождитесь торговой сессии этого символа. Наличие data не означает успешную сделку: результат определяет код.
- 2:57
Исправьте конкретную причину.
Если не хватает средств, уменьшите объём или обеспечьте достаточную свободную маржу. При неверных стопах исправьте цены и расстояния. При неверном объёме проверьте минимальный размер и шаг. Если нет котировки, дождитесь актуальной цены. В инструкции рядом с кодом указано дальнейшее действие.
- 3:23
После тайм-аута проверьте состояние.
После торгового тайм-аута или потери связи с брокером результат может быть неизвестен. Перед повтором проверьте открытые ордера, позиции и историю, иначе можно создать лишнюю сделку. Код брокера может находиться в data, returned Code или в error, mql Error Trade Int Code.
- 3:48
У закрытия и изменения свои правила.
Для Order Close прочитайте результат закрытия и проверьте оставшиеся позиции. После частичного закрытия часть объёма остаётся открытой. Для Order Modify код Done означает изменение, а No Changes — что нужные значения уже были установлены. Не применяйте правила Order Send ко всем торговым методам.
- 4:14
Предварительная проверка не создаёт сделку.
Order Check отличается от Order Send. Прочитайте returned Code и comment внутри data, mql Trade Check Result. Нулевой код с Done означает успешную предварительную проверку. Ордер при этом не отправляется. Отправьте торговый запрос отдельно и проверьте результат исполнения.
- 4:40
Три проверки торгового запроса.
Для каждой сделки проверяйте код состояния HTTP, поле error и результат брокера именно для выбранного метода. Сохраняйте нужные идентификаторы ордера, сделки или позиции. После тайм-аута или потери связи проверьте состояние счёта, прежде чем повторять запрос.