OrderCheck() Вопросы - страница 2

 

Вопрос 2. В готовом коде ввёл поголовную проверку функцией OrderCheck() торговых приказов, т.е. поставил функцию OrderCheck() перед каждой функцией OrderSend(). Теперь вот думаю, стоит ли проверять торговые приказы на удаление отложенного ордера (Delete Pending Order). Там ведь всего два обязательных поля, при заполнении которых довольно трудно ошибиться.

В общем,  использует ли кто-нибудь функцию OrderCheck() для проверки торговых приказов на удаление отложенного ордера (Delete Pending Order)?

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - Документация по MQL5
 
Yedelkin:

Вопрос 2. В готовом коде ввёл поголовную проверку функцией OrderCheck() торговых приказов, т.е. поставил функцию OrderCheck() перед каждой функцией OrderSend(). Теперь вот думаю, стоит ли проверять торговые приказы на удаление отложенного ордера (Delete Pending Order). Там ведь всего два обязательных поля, при заполнении которых довольно трудно ошибиться.

В общем,  использует ли кто-нибудь функцию OrderCheck() для проверки торговых приказов на удаление отложенного ордера (Delete Pending Order)?

Смотря какую ситуации хотим отловить. При удалении ордера могут возникнуть: TRADE_RETCODE_ERROR, TRADE_RETCODE_TRADE_DISABLED, TRADE_RETCODE_MARKET_CLOSED,

TRADE_RETCODE_SERVER_DISABLES_AT, TRADE_RETCODE_CLIENT_DISABLES_AT, TRADE_RETCODE_FROZEN, TRADE_RETCODE_CONNECTION.

PS

Может еще что упустил.

 
Yedelkin:

Вопрос 2. В готовом коде ввёл поголовную проверку функцией OrderCheck() торговых приказов, т.е. поставил функцию OrderCheck() перед каждой функцией OrderSend(). Теперь вот думаю, стоит ли проверять торговые приказы на удаление отложенного ордера (Delete Pending Order). Там ведь всего два обязательных поля, при заполнении которых довольно трудно ошибиться.

В общем,  использует ли кто-нибудь функцию OrderCheck() для проверки торговых приказов на удаление отложенного ордера (Delete Pending Order)?

Ну даже не знаю...
Я эту проверку редко использую, т.к. я знаю какие данные я отправляю в запросе, ей если только проверять хватает ли денег да уровни стопов.
А результат лучше брать из MqlTradeResult после отправки через OrderSend() - это надежней.
 
mrProF:
Ну даже не знаю...
Я эту проверку редко использую, т.к. я знаю какие данные я отправляю в запросе, ей если только проверять хватает ли денег да уровни стопов.
А результат лучше брать из MqlTradeResult после отправки через OrderSend() - это надежней.
Не факт, особенно на чемпионате. К примеру, все выше перечисленное мной можно при спокойно отловить перед удалением ордера...
 

Спасибо, убедили: оставляю как есть.

 
Interesting:
Не факт, особенно на чемпионате. К примеру, все выше перечисленное мной можно при спокойно отловить перед удалением ордера...
А вот и нельзя)
При проверке OrderCheck() при закрытом рынке - говорит все ок :)
 
mrProF:
А вот и нельзя)
При проверке OrderCheck() при закрытом рынке - говорит все ок :)
Тогда это недоработка которую следует исправить...
 
Yedelkin:

Спасибо, убедили: оставляю как есть.

В любом случае всегда проверяйте MqlTradeResult, а OrderCheck - если захотите.
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса - Документация по MQL5
 
Interesting:
Тогда это недоработка которую следует исправить...

Ну я бы не сказал что это ошибка, в описании написано:

В случае нехватки средств или ошибочно заполненных параметров функция возвращает false. В случае успешной базовой проверки структур (проверка указателей) возвращается true – это не является свидетельством того, что запрашиваемая торговая операция непременно выполнится успешно. Для получения подробного описания результата выполнения функции следует анализировать поля структуры result.

Так что это функция так, для виду, последнее слово за сервером.
 

mrProF:
В любом случае всегда проверяйте MqlTradeResult, а OrderCheck - если захотите.

Да, так и стараюсь делать. OrderCheck() решил ввести, чтобы поменьше грузить торговый сервер, если запрос по каким-либо причинам окажется некорректным.