По 5ти-тиковым свечкам (отладка) происходит такое
Code
2013/03/04 17:29:19.855|Warning|SS_RIH3@RTS_SPBFUT00066|* Стопы требуют исправления: стопов 2, нужно закрытие 3, есть -6 со статусами Accepted, isCanceled=False, Balance=3, Accepted, isCanceled=False, Balance=3,
2013/03/04 17:29:19.855| |SS_RIH3@RTS_SPBFUT00066|* Удаление стопов
2013/03/04 17:29:19.855| |SS_RIH3@RTS_SPBFUT00066|Снятие активных заявок по условию (Convert(o.Type) == 2)
2013/03/04 17:29:19.856| |SS_RIH3@RTS_SPBFUT00066|Отмена заявки 59928637.
2013/03/04 17:29:19.856| |SS_RIH3@RTS_SPBFUT00066|Отмена заявки 59928638.
2013/03/04 17:29:19.856| |SS_RIH3@RTS_SPBFUT00066|* Недостающий стоп: Объём 3 Профит 149920 Стоп 149670
2013/03/04 17:29:19.856| |SS_RIH3@RTS_SPBFUT00066|Регистрация новой Conditional (0xCC340F) заявки на Sell с ценой 149770 и объемом 3.
2013/03/04 17:29:19.856|Warning|SS_RIH3@RTS_SPBFUT00066|* Стопы требуют исправления: стопов 2, нужно закрытие 3, есть -6 со статусами Accepted, isCanceled=False, Balance=3, Accepted, isCanceled=False, Balance=3,
2013/03/04 17:29:19.856| |SS_RIH3@RTS_SPBFUT00066|* Удаление стопов
2013/03/04 17:29:19.856| |SS_RIH3@RTS_SPBFUT00066|Снятие активных заявок по условию (Convert(o.Type) == 2)
2013/03/04 17:29:19.856|Warning|SS_RIH3@RTS_SPBFUT00066|Для заявки 59928637 уже был послан сигнал на отмену.
2013/03/04 17:29:19.856|Warning|SS_RIH3@RTS_SPBFUT00066|Для заявки 59928638 уже был послан сигнал на отмену.
Расшифровываю:
- по приходу свечки проверяю правильность стопов, неправильные срубаю, недостающие добавляю
- если quik ещё сигнал не отработал, то на втором изменении статусы заявок не изменились, хотя в _ordersInfo информация о IsCanceled есть (откуда, собственно, и варнинги)
Обнаружил, что это происходит по причине
Code
/// <summary>
/// Отменить заявку на бирже.
/// </summary>
/// <param name="order">Заявка, которую нужно отменять.</param>
protected override void OnCancelOrder(Order order)
{
RegisterTransaction(order.CreateCancelTransaction());
if (!IsAsyncMode)
TryCancelOrder(order);
}
т.е. в асинхронном режиме статус заявки не обновляется
Соответственно, вопрос: как кошернее получать вовремя эти статусы в своём коде?