Функция OrderSendAsync() - страница 6

 
Renat:

В том то и дело, что асинхронный запрос никакого статуса "удачно отправленный" практически не дает.

Успешное завершение функции означает лишь что "с точки зрения клиента ордер выглядит корректным и был брошен в сетевую трубу, ответ ждите в OnTrade".

Сорри, отсутствовал немного.

Хотелось бы всё-таки уточнить вот эту фразу: "ответ ждите в OnTrade" применительно к ситуации, когда запрос не дошёл до сервера.

Если запрос не дошёл до сервера, то не будет сгенерировано ни одного события Trade, которое могло бы относиться к этому "пропавшему" запросу. Ведь правильно? А раз так, то и в OnTrade() я никакого соответствующего ответа не дождусь. Правилен ли будет такой вывод:

При успешном завершении функции  OrderSendAsync() запрос может не дойти до сервера, и в этом случае бесполезно дожидаться ответа в OnTrade()

?

 

sergeev:

Yedelkin:
Спс! Получается, что удачно отправленный асинхронный запрос может запросто потеряться и не попасть в историю.

нет.

 Поясните, пожалуйста. "Нет" - это у меня неправильный вывод, или же это его подтверждение?

Скорее всего речь идёт о неправильности моего вывода, но ведь Ренат ранее сказал, что  "если запрос не дошел до сервера, то в клиентском терминале у него нет никаких шансов появиться". Продолжая эту логику, получаю: если у запроса нет никаких шансов появиться в клиентском терминале, то у него нет никаких шансов попасть в базу терминала и, соответственно, нет никаких шансов попасть в базу исторических ордеров. Если эти умозаключения не верны, то где ошибка и в чём она заключается?

 
Renat:

В том то и дело, что асинхронный запрос никакого статуса "удачно отправленный" практически не дает.

Успешное завершение функции означает лишь что "с точки зрения клиента ордер выглядит корректным и был брошен в сетевую трубу, ответ ждите в OnTrade".

Надеюсь что OnTrade будет в ближайшее время доработан таким образом что проверку аля "запрос не дошел до сервера" пользователь сможет организовать без проблем, собственно как и остальные виды контроля исполнения.

потому как в теперешнем виде OnTrade не способен на такие подвиги, поскольку не имеет понятия с откликом по какому запросу он работает.

 
Urain:

Надеюсь что OnTrade будет в ближайшее время доработан таким образом что проверку аля "запрос не дошел до сервера" пользователь сможет организовать без проблем, собственно как и остальные виды контроля исполнения.

потому как в теперешнем виде OnTrade не способен на такие подвиги, поскольку не имеет понятия с откликом по какому запросу он работает.

В приципе, мы можем добавить виртуальный ответ "заявка обломилась по таймауту", если после отсылки запроса не получим от сервера в течение 5-10 секунд ответа о том, что заявка достигла сервера.

Это позволит отловить облом заявки в OnTrade. Правда для этого надо будет перегрузить функцию с добавлением параметров.

 
Yedelkin:


Если запрос не дошёл до сервера, то не будет сгенерировано ни одного события Trade, которое могло бы относиться к этому "пропавшему" запросу. Ведь правильно?

Да, это же логично.

Мы можем добавить виртуальный ответ, как я описал выше. Это позволит контролировать исполнение асинхронных операций.

 
Renat:

В приципе, мы можем добавить виртуальный ответ "заявка обломилась по таймауту", если после отсылки запроса не получим от сервера в течение 5-10 секунд ответа о том, что заявка достигла сервера.

Это позволит отловить облом заявки в OnTrade. Правда для этого надо будет перегрузить функцию с добавлением параметров.

Вы меня пугаете,

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

У меня три заказа висят уже несколько месяцев в ожидании когда же, когда же, а вы говорите "мы можем... но для этого нужно перегрузить..."

вы что не делаете доработку OnTrade ???

ЗЫ не знаю как кому но меня такая ситуация как сейчас не устраивает, я отложил написание всех кодов до поры когда в MQL5 будет функционал гарантирующий прямой контроль исполнения, а не косвенно.

 
Urain:

Вы меня пугаете,

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

У меня три заказа висят уже несколько месяцев в ожидании когда же, когда же, а вы говорите "мы можем... но для этого нужно перегрузить..."

вы что не делаете доработку OnTrade ???

Напряжемся и постараемся сделать в очередном билде.

Задач в работе на самом деле много, плюс еще пора отпусков - летом обычный темп разработок поддерживать трудно.

 
Renat:

Напряжемся и постараемся сделать в очередном билде.

Задач в работе на самом деле много, плюс еще пора отпусков - летом обычный темп разработок поддерживать трудно.

Фуф, аж отлягло :)

реально испужался, ведь вполне реальная ситуация, поговорили разошлись и забыли, а народ ждёт надеиЦо :)

носки штопает, эх дожить бы :))

 

Метаквоты делают сильный, легкий и универсальный терминал. 

Сильный и легкий они уже научились делать. Но тут другая задача - преемственность. Надо увязать в одном терминале все "чпоксы" разных торговых площадок и кучу брокеров. Думаю в этом проблема. Универсальней MQ5 нет. 

 PS Да парметры OnTrade ждем.  И на наших биржевых брокерах. И удачный способ обработки асинхронности нужен. Тогда конкурентов похоже не найдется (по терминалам). Один тестер чего стоит...

 
Renat:

В приципе, мы можем добавить виртуальный ответ "заявка обломилась по таймауту", если после отсылки запроса не получим от сервера в течение 5-10 секунд ответа о том, что заявка достигла сервера.

Это позволит отловить облом заявки в OnTrade. Правда для этого надо будет перегрузить функцию с добавлением параметров.

 

Мы можем добавить виртуальный ответ, как я описал выше. Это позволит контролировать исполнение асинхронных операций.

Спс, хорошее решение. По крайней мере, мою задачу решить помогает. Ждём, но не подгоняем :)
Причина обращения: