Обсуждение статьи "Торговые события в MetaTrader 5" - страница 2

 
Rosh:
В статье же сказано, что первичная проверка осуществляется в терминале. OrderCheck() также работает в терминале, ничего на сервер не отправляется.
Вот ещё нашёл: "некорректный запрос не проходит первичную проверку на стороне сервера".
 
Yedelkin:

В статье сказано: "после отправки запроса он поступает на сервер и проходит первичную проверку". 

Там сказано буквально следующее:

Важно: каждый запрос перед его отправкой торговому серверу предварительно проверяется на корректность в самом клиентском терминале. Заведомо неверные запросы (купить миллион лотов или купить по отрицательной цене) за пределы терминала не проходят. Это сделано для защиты торговых серверов от массовых неправильных запросов в случае ошибки в mql5-программе.

После отправки запроса он поступает на торговый сервер и проходит первичную проверку:

 
Rosh:
Вы и меня запутали. Убрал ссылку с сочетания "первичная проверка".
:) Я всего лишь перечитываю статью. Извините, если что не  так. Но две ссылки непосредственно из статьи про первичную проверку на стороне сервера я уже привёл.
 
Yedelkin:
Т.е. тем самым Вы хотите сказать, что функция OrderSend()  возвращает true только после принятия (размещения) ордера сервером?
Это означает, что запрос принят. Дальше он может быть отвергнут дилером, торговой площадкой и так далее.
 
Rosh:

Там сказано буквально следующее:

Важно: каждый запрос перед его отправкой торговому серверу предварительно проверяется на корректность в самом клиентском терминале. Заведомо неверные запросы (купить миллион лотов или купить по отрицательной цене) за пределы терминала не проходят. Это сделано для защиты торговых серверов от массовых неправильных запросов в случае ошибки в mql5-программе.

После отправки запроса он поступает на торговый сервер и проходит первичную проверку:

Тогда напрашивается необходимость разделения на три проверки:

1) грубая проверка терминалом;

2) проверка  на стороне терминала с помощью функции OrderCheck()$

3) проверка на стороне сервера.

А то пока понятие "первичная проверка" непонятно к чему именно относится. 

 

Rosh:
Это означает, что запрос принят. Дальше он может быть отвергнут дилером, торговой площадкой и так далее.

ОК. Дальнейшая судьба ордера пока не волнует. Из Ваших слов делаю вывод (вопрос 2), что фукнция OrderSend() сразу после проверки запроса на корректность не может вернуть true.  true возвращается только после принятия ордера сервером. Правильно? Тогда получается, что в справочнике не совсем корректна  информация о том, что "в случае успешной базовой проверки структур возвращается true".
 
Yedelkin:
ОК. Дальнейшая судьба ордера пока не волнует. Из Ваших слов делаю вывод (вопрос 2), что фукнция OrderSend() сразу после проверки запроса на корректность не может вернуть true.  true возвращается только после принятия ордера сервером. Правильно? Тогда получается, что в справочнике не совсем корректна  информация о том, что "в случае успешной базовой проверки структур возвращается true".
Базовая проверка ≡ Первичная проверка на стороне сервера
 
Rosh:
Базовая проверка ≡ Первичная проверка на стороне сервера

Я уже написал выше при формулировании вопроса 2, что "могут возникать ситуации, когда запрос уже проверен на корректность, но ещё не принят брокером". С этим утверждением вроде никто не спорит. Поэтому переформулирую немного вопрос 2 с учётом Ваших определений:

в какой именно момент функция OrderSend()  возвращает true -  сразу после базовой проверки (первичной проверки на стороне сервера) запроса на корректность или только после принятия ордера сервером? 

Фактически, интересует такой вопрос: о прохождении ордером какой именно стадии (от терминала до сервера) сигнализирует  true у функции OrderSend()? "Базовая проверка" или же "Базовая проверка + принятие (размещение) ордера"? Или же нельзя исключительно по поступлению true сделать нужный вывод?

 
Yedelkin:

Я уже написал выше при формулировании вопроса 2, что "могут возникать ситуации, когда запрос уже проверен на корректность, но ещё не принят брокером". С этим утверждением вроде никто не спорит. Поэтому переформулирую немного вопрос 2 с учётом Ваших определений:

в какой именно момент функция OrderSend()  возвращает true -  сразу после базовой проверки (первичной проверки на стороне сервера) запроса на корректность или только после принятия ордера сервером?

Конечно после принятия сервером - это же очевидно. Кроме того, функция называется OrderSEND.
 
Yedelkin:

Фактически, интересует такой вопрос: о прохождении ордером какой именно стадии (от терминала до сервера) сигнализирует  true у функции OrderSend()? "Базовая проверка" или же "Базовая проверка + принятие (размещение) ордера"? Или же нельзя исключительно по поступлению true сделать нужный вывод?
На мой взгляд выводы только по true делать не стоит, нужно еще код ответа сервера анализировать (причем последний приоритетней, как мне кажется)...
Причина обращения: