OrderSendAsync () - гарантировано ли, что команды обрабатываются в том же порядке, в каком они отправлены?

 
Дорогие друзья,

Предположим, у меня есть листинговый ордер на ожидании продажи определенного инструмента на биржевом рынке.

Если я запустил команду OrderSendAsync (), чтобы отменить этот заказ, и вскоре после этого я запустил еще одну команду OrderSendAsync (), чтобы отправить заявку на покупку на рынке для того же инструмента, гарантировано, что мой лимит на продажу будет отменен до того, как мой рынок будет куплен заказ выполнен?

Есть ли вероятность, что команды OrderSendAsync () выполняются не по порядку, и мой лимит на выставление на продажу отменяется моим заказом на покупку на рынке до его отмены?

Что делать, если я использую OrderSend () вместо OrderSendAsync ()?

ps: конечно, я мог бы просто опросить статус ожидающего статуса продажи и подождать, пока аннулирование не будет подтверждено до отправки заказа на продажу на рынке, но из-за требований к производительности мне нужно время эвакуации между отменой заказа на продажу и отправкой заказа на покупку как можно короче, чтобы OrderSendAsync () был бы предпочтительнее OrderSend (), если бы желаемая последовательность событий могла быть гарантирована.
 

Хороший вопрос.

Гарантий ни каких нет.
Хотя бы потому, что первый OrderSendAsync может потеряться по пути к серверу, и второй дойдет раньше.

Если нужно гарантированно удалить ордер, а потом войти по рынку, используйте OrderSend или OrderSendAsync с анализом результата в OnTradeTransaction.

 
Trader_Patinhas:
...
Если я запустил команду OrderSendAsync (), чтобы отменить этот заказ, и вскоре после этого я запустил еще одну команду OrderSendAsync (), чтобы отправить заявку на покупку на рынке для того же инструмента, гарантировано, что мой лимит на продажу будет отменен до того, как мой рынок будет куплен заказ выполнен?

Такой гарантии нет. Замечу однако, что в Вашем случае, отложенный ордер может быть отменен как ДО входа в рынок так и ПОСЛЕ него. Главное, что бы отложенный ордер не сработал во время выставления второго приказа.

 

@ Андрей Хатимлянский , @ Василий Соколов

Большое спасибо за ваши ответы!

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

Я надеюсь, что проблему можно решить, просто изменив OrderSendAsync () на OrderSend (), но это кажется иллюзией.

Из того, что я понял из ваших ответов (я не могу говорить по-русски и полагаться на автоматический перевод для чтения и письма), кажется, что сети TCP / IP (в целом интернет) не могут гарантировать, что пакеты данных поступают в том же порядке, что и посланы. Таким образом, команды для отмены предыдущего заказа и для отправки нового заказа могут быть получены не в порядке на сервере, верно?

Жизнь очень тяжелая!

Спасибо вам, ребята!

 
Trader_Patinhas:

@ Андрей Хатимлянский , @ Василий Соколов

Из того, что я понял из ваших ответов (я не могу говорить по-русски и полагаться на автоматический перевод для чтения и письма), кажется, что сети TCP / IP (в целом интернет) не могут гарантировать, что пакеты данных поступают в том же порядке, что и посланы. Таким образом, команды для отмены предыдущего заказа и для отправки нового заказа могут быть получены не в порядке на сервере, верно?

Yes. You are right.

Причина обращения: