Не срабатывает OrderCanceled (Quik)
Atom Ответить
28.03.2013


FalshPlayer
Теперь новая проблема.

После снятия заявки не происходит события OrderCanceled (как ни подписывайся оно не вызывается), более того все заявки, даже уже снятые, в Trader хранятся в состоянии Active, что по идее является следствием не срабатывания события. Все дело происходит как и с фьючами, так и с акциями в QUIK Junior. Кто-то сталкивался и может ли кто-то проверить, опровергнуть? Приведу простой пример - создаем стратегию и в ней перепишем лишь метод OnStarted таким образом:

Код

protected override void OnStarted()
{
var newOrder = this.CreateOrder(OrderDirections.Buy, <<Тут какая-то цена ниже рынка, чтобы заявка зависла>>, 1);
newOrder.WhenCanceled().Do(Smth).Apply(this);
newOrder.WhenRegistered().Do(CancelActiveOrders).Apply(this);

RegisterOrder(newOrder);

base.OnStarted();
}

void Smth()
{

}

По идее при выполнении этого кода мы должны упасть в метод Smth, но этого не происходит, так как отмена заявки не зажигает событие. Проверьте пожалуйста - что не так?

Теги:


Спасибо:




1 Ответов
Самунджян Артем

Фотография
Автор статей Программист
Дата: 28.03.2013
Ответить


FlashPlayer
Все - всем снова спасибо. Очередной мой косяк. Я думал, что событие "заявка снята" генерируется с помощью библиотеки Trans2Quik.dll. А оказывается, событие возникает просто после появления соответствующей строчки в таблице QUIK "Заявки". Ну а я по привычке снял все фильтры кроме "показывать активные заявки". Вот такой косяк.
Автор топика
Спасибо:


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

loading
clippy