Open ildarskii opened 1 year ago
Уважаемые знатоки, подскажите, пожалуйста, что нужно модифицировать в коде Q#, чтобы избежать двойных ответов при запросе размещения заявки или отмены?
Скорее всего никак. Несколько колбеков на одну транзакцию это не результат работы кода Q#, а фича Квика, о которой много лет назад разработчики говорили. Q# лишь транслирует Вам то, что выдал Квик.
Уважаемые знатоки, подскажите, пожалуйста, что нужно модифицировать в коде Q#, чтобы избежать двойных ответов при запросе размещения заявки или отмены?
Запрос на размещение заявки делаю с помощью Orders.CreateOrder (order) после этого приходит два ответа в событие OnOrder (order) со следующими значениями полей 1) order.TransId=0, order.State=Active 2) order.TransId=12193041, order.State=Active
При запросе отмены заявки, которую делаю с помощью Orders.KillOrder (order) после этого приходит два ответа в событие OnOrder (order) со следующими значениями полей 1) order.State=Active 2) order.State=Canceled
При отмене заявки первый ответ нарушает логику работы робота и он повторно пытается отправить запрос на отмену. Если изменение статуса ордера инициировано биржей, тогда приходит только один нужный ответ, проблемы нет.
Как сделать так, чтобы не приходили ответы из пунктов 1 в примерах выше?
В качестве дилетантского предположения, кажется, что нужно в функции QuikService.Send(request, timeout) удалить строку EnvelopeQueue.Add(request); Но боюсь, что могу в корне сломать логику работы Q#, поэтому нужен совет.