โ† Все видеоинструкции
MT5 API ยท 5:04

Ошибки торговых методов.

Исполнение, отложенные ордера и отказы брокера. Проверьте результат перед следующим запросом.

Пошаговая инструкция

  1. 0:00

    Ошибки торговых методов.

    В этом уроке вы узнаете, как читать результаты торговых методов MT5. Мы разберём полное и частичное исполнение, отложенные ордера, отказы брокера и ситуации, когда результат ещё неясен.

  2. 0:16

    Откройте инструкцию к торговому методу.

    Откройте эм ти пять точка эм эр пи си точка про. В разделе торговых методов выберите Order Send. Под примером кода разверните инструкцию о том, как проверить результат запроса. Для другого метода откройте его собственную инструкцию.

  3. 0:38

    1. Проверьте код состояния HTTP.

    Сначала проверьте код состояния HTTP. Код состояния HTTP двести означает, что API получил запрос и вернул ответ. Затем прочитайте тело ответа в формате JSON. При другом коде сначала прочитайте ошибку HTTP и тело ответа.

  4. 1:00

    2. Проверьте error и код брокера.

    Если error не равен null, прочитайте код и сообщение об ошибке. Если указаны mql Error Trade Int Code и описание, прочитайте их тоже. Отказ брокера может находиться в этой структуре. Выбирайте дальнейшее действие по фактическому коду.

  5. 1:21

    3. Прочитайте результат брокера.

    Для торгового запроса код состояния HTTP двести без ошибки API означает, что запрос передан брокеру. Это ещё не означает исполнение. Прочитайте returned Code, returned String Code и остальные поля data, предусмотренные этим методом.

  6. 1:43

    Рыночный ордер: полное или частичное исполнение?

    Для рыночной покупки или продажи код десять тысяч девять, Done, означает завершение. Десять тысяч десять, Done Partial, означает частичное исполнение. Проверьте исполненный объём, цену и сделку. Открытые позиции и история помогут выяснить, что произошло с остатком.

  7. 2:09

    Размещение не равно исполнению.

    Для рыночного ордера код десять тысяч восемь, Placed, означает принятие к исполнению, но ещё не подтверждает сделку. Для отложенного ордера Placed или Done подтверждает размещение. Сохраните data, order и проверьте Opened Orders. Ордер продолжает ждать цены активации.

  8. 2:35

    Рынок закрыт: брокер отказал.

    Отказ брокера может находиться в data, даже если error отсутствует. Код десять тысяч восемнадцать означает, что рынок закрыт. Дождитесь торговой сессии этого символа. Наличие data не означает успешную сделку: результат определяет код.

  9. 2:57

    Исправьте конкретную причину.

    Если не хватает средств, уменьшите объём или обеспечьте достаточную свободную маржу. При неверных стопах исправьте цены и расстояния. При неверном объёме проверьте минимальный размер и шаг. Если нет котировки, дождитесь актуальной цены. В инструкции рядом с кодом указано дальнейшее действие.

  10. 3:23

    После тайм-аута проверьте состояние.

    После торгового тайм-аута или потери связи с брокером результат может быть неизвестен. Перед повтором проверьте открытые ордера, позиции и историю, иначе можно создать лишнюю сделку. Код брокера может находиться в data, returned Code или в error, mql Error Trade Int Code.

  11. 3:48

    У закрытия и изменения свои правила.

    Для Order Close прочитайте результат закрытия и проверьте оставшиеся позиции. После частичного закрытия часть объёма остаётся открытой. Для Order Modify код Done означает изменение, а No Changes — что нужные значения уже были установлены. Не применяйте правила Order Send ко всем торговым методам.

  12. 4:14

    Предварительная проверка не создаёт сделку.

    Order Check отличается от Order Send. Прочитайте returned Code и comment внутри data, mql Trade Check Result. Нулевой код с Done означает успешную предварительную проверку. Ордер при этом не отправляется. Отправьте торговый запрос отдельно и проверьте результат исполнения.

  13. 4:40

    Три проверки торгового запроса.

    Для каждой сделки проверяйте код состояния HTTP, поле error и результат брокера именно для выбранного метода. Сохраняйте нужные идентификаторы ордера, сделки или позиции. После тайм-аута или потери связи проверьте состояние счёта, прежде чем повторять запрос.