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


Версия 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 Ответов
Alexander

Фотография
Дата: 09.02.2012
Ответить


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

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

vader

Фотография
Дата: 10.02.2012
Ответить


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

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

Alexander

Фотография
Дата: 10.02.2012
Ответить


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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy