Версия 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);
}
Комментарии (3)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Чему равен order.Status после прихода ответа на вызов Trader.CancelOrder(order) во втором варианте?
В лог откуда запись приходит? Из ProcessDataError?
Я отправляю транзакции асинхронно, поэтому Trader.CancelOrder(order) ничего не отвечает ( я не могу поймать исключение.). Поясню. Чтобы проверить, как работает реакция на ошибку снятия завки, я ставлю заявку, и снимаю её вручную в Квике. После этого её Status становится Accepted и уже не меняется (я подписался на событие изменения заявки.)
Да, запись в лог призодит из ProcessDataError. Сама запись. StockSharp.Quik.ApiException: Код ошибки Failed Сообщение Вы не можете снять данную заявку
Ага, подтверждаю. Есть такая ошибка.