Не "зажигается" событие своей сделки при работе с QUIK Junior


Не "зажигается" событие своей сделки при работе с QUIK Junior
Atom Reply
3/15/2013


Собственно сабж. Написал для теста маленькую стратегию, которая просто при старте шлет заявку по рынку. Подписался на всевозможные вариации реагирования на свою сделку. И вне стратегии подписался на свои сделки трейдера и внутри стратегии подписался на сделки как трейдера, так и просто ордерЧенжд. Стратегия стартует, заявку шлет, получается сделка, но ни в один обработчик события своей сделки мы не "падаем". Все это на демо квике. Более того, также не работает пример, который писали в обучении S# (там тоже есть простая программка, которая подписывается на свою сделку и выводит ее в таблицу). Грешу на квик либо на то, что я что-то упустил настраивая его. Но что можно упустить, если заявка посылается.. Вообщем жду помощи или совета.

Спасибо.

Tags:


Thanks:




11 Answers
FlashPlayer

Avatar
Date: 3/15/2013
Reply


Теперь другая проблема. Ничего не менял (запустил на другой машине) и теперь при свершении своей сделки событие вызывается бесконечно и в итоге вылетает с ошибкой overflow exception. Я совсем не понимаю, что за чудеса.
Topic starter
Thanks:

Самунджян Артем

Avatar
Articles author Programmer
Date: 3/15/2013
Reply


FlashPlayer Перейти
Стратегия стартует, заявку шлет, получается сделка, но ни в один обработчик события своей сделки мы не "падаем".
Спасибо.

Скорее всего на таблице "Мои сделки" стоит фильтр и туда не попадают сделки Вашей стратегии по этому инструменту, соответственно и стокшарп их тоже не видит.
Thanks:

VassilSanych

Avatar
Date: 3/15/2013
Reply


FlashPlayer Перейти
Теперь другая проблема. Ничего не менял (запустил на другой машине) и теперь при свершении своей сделки событие вызывается бесконечно и в итоге вылетает с ошибкой overflow exception. Я совсем не понимаю, что за чудеса.

Значит где-то бесконечный цикл. Наверное, по ошибке какое-то событие в обработчике вызывает само себя.

Thanks:

FlashPlayer

Avatar
Date: 3/15/2013
Reply


Всё - помогли разобраться.

Дело в первой проблеме оказалось в том, что ночью в квике идут эмулированные торги акциями и в них есть баг - частенько квиком не выкидывается событие своей сделки, поэтому S# не реагирует на нее.

А во второй проблеме - уже чисто мой косяк. После того, как я в панике (после столкновения с первой проблемой) начал перебирать все возможные варианты как отловить свою сделку - случайно зациклил программу, глаз замылился, и я никак не мог понять в чем проблема. Благо Артем очень быстро помог, за что ему спасибо.
Topic starter
Thanks:

FlashPlayer

Avatar
Date: 3/15/2013
Reply


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

После снятия заявки не происходит события 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, но этого не происходит, так как отмена заявки не зажигает событие. Проверьте пожалуйста - что не так?

Спасибо.
Topic starter
Thanks:

FlashPlayer

Avatar
Date: 3/17/2013
Reply


Апну тему, вдруг поможет..
Topic starter
Thanks:

VassilSanych

Avatar
Date: 3/18/2013
Reply


Заметил, что добавление тем здесь мониторится лучше, чем обновление ;)
Thanks:

esper

Avatar
Programmer
Date: 3/18/2013
Reply


FlashPlayer Перейти
Теперь новая проблема.

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

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

Спасибо.


Таблицы все корректно настроены? Verifier запускали? Что говорит ProcessDataError для трейдера?
Thanks:

FlashPlayer

Avatar
Date: 3/18/2013
Reply


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

Есть тогда встречный вопрос - кто знает, для чего используется Trans2Quik.dll, кроме посыла заявок?
Topic starter
Thanks:

esper

Avatar
Programmer
Date: 3/18/2013
Reply


FlashPlayer Перейти
Есть тогда встречный вопрос - кто знает, для чего используется Trans2Quik.dll, кроме посыла заявок?

Для обработки ошибок выставления заявок.
Thanks:

FlashPlayer

Avatar
Date: 3/18/2013
Reply


Ясно, спасибо)
Topic starter
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy