← Zurück

не срабатывает правило order.CancelFailed()

Версия 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);
        }

War dieses Thema hilfreich?

Thema teilen

Kommentare (3)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Alexander
Alexander

Чему равен order.Status после прихода ответа на вызов Trader.CancelOrder(order) во втором варианте?

В лог откуда запись приходит? Из ProcessDataError?

vader
vader Autor

Я отправляю транзакции асинхронно, поэтому Trader.CancelOrder(order) ничего не отвечает ( я не могу поймать исключение.). Поясню. Чтобы проверить, как работает реакция на ошибку снятия завки, я ставлю заявку, и снимаю её вручную в Квике. После этого её Status становится Accepted и уже не меняется (я подписался на событие изменения заявки.)

Да, запись в лог призодит из ProcessDataError. Сама запись. StockSharp.Quik.ApiException: Код ошибки Failed Сообщение Вы не можете снять данную заявку

Alexander
Alexander

Ага, подтверждаю. Есть такая ошибка.