Версия 4.0.18, режим трейдера - асинхронный.
this.When(order.CancelFailed())
.Do(OnCancelFailed)
.Once();
CancelOrder(order);
Если снимать заявку так
private void CancelOrder(Order order)
{
CancelActiveOrders();
}
То вообще никакой реакции на уже снятую заявку не будет.
Если так, то метод OnCancelFailed вызван не будет, просто будет запись в лог о том, что произошла ошибка.
private void CancelOrder(Order order)
{
Trader.CancelOrder(order);
}
Kommentare (3)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Чему равен order.Status после прихода ответа на вызов Trader.CancelOrder(order) во втором варианте?
В лог откуда запись приходит? Из ProcessDataError?
Я отправляю транзакции асинхронно, поэтому Trader.CancelOrder(order) ничего не отвечает ( я не могу поймать исключение.). Поясню. Чтобы проверить, как работает реакция на ошибку снятия завки, я ставлю заявку, и снимаю её вручную в Квике. После этого её Status становится Accepted и уже не меняется (я подписался на событие изменения заявки.)
Да, запись в лог призодит из ProcessDataError. Сама запись. StockSharp.Quik.ApiException: Код ошибки Failed Сообщение Вы не можете снять данную заявку
Ага, подтверждаю. Есть такая ошибка.