Статус заявки
Atom
04.03.2013


По 5ти-тиковым свечкам (отладка) происходит такое
Код
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 есть (откуда, собственно, и варнинги)
Обнаружил, что это происходит по причине
Код
		/// <summary>
		/// Отменить заявку на бирже.
		/// </summary>
		/// <param name="order">Заявка, которую нужно отменять.</param>
		protected override void OnCancelOrder(Order order)
		{
			RegisterTransaction(order.CreateCancelTransaction());

			if (!IsAsyncMode)
				TryCancelOrder(order);
		}

т.е. в асинхронном режиме статус заявки не обновляется

Соответственно, вопрос: как кошернее получать вовремя эти статусы в своём коде?

Теги:


Спасибо:




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

loading
clippy