Собственно сабж. Написал для теста маленькую стратегию, которая просто при старте шлет заявку по рынку. Подписался на всевозможные вариации реагирования на свою сделку. И вне стратегии подписался на свои сделки трейдера и внутри стратегии подписался на сделки как трейдера, так и просто ордерЧенжд. Стратегия стартует, заявку шлет, получается сделка, но ни в один обработчик события своей сделки мы не "падаем". Все это на демо квике. Более того, также не работает пример, который писали в обучении S# (там тоже есть простая программка, которая подписывается на свою сделку и выводит ее в таблицу). Грешу на квик либо на то, что я что-то упустил настраивая его. Но что можно упустить, если заявка посылается.. Вообщем жду помощи или совета.
Спасибо.
评论 (11)
登录 或 创建账户, 登录或注册以发表评论
Теперь другая проблема. Ничего не менял (запустил на другой машине) и теперь при свершении своей сделки событие вызывается бесконечно и в итоге вылетает с ошибкой overflow exception. Я совсем не понимаю, что за чудеса.
Всё - помогли разобраться.
Дело в первой проблеме оказалось в том, что ночью в квике идут эмулированные торги акциями и в них есть баг - частенько квиком не выкидывается событие своей сделки, поэтому S# не реагирует на нее.
А во второй проблеме - уже чисто мой косяк. После того, как я в панике (после столкновения с первой проблемой) начал перебирать все возможные варианты как отловить свою сделку - случайно зациклил программу, глаз замылился, и я никак не мог понять в чем проблема. Благо Артем очень быстро помог, за что ему спасибо.
Теперь новая проблема.
После снятия заявки не происходит события OrderCanceled (как ни подписывайся оно не вызывается), более того все заявки, даже уже снятые, в Trader хранятся в состоянии Active, что по идее является следствием не срабатывания события. Все дело происходит как и с фьючами, так и с акциями в QUIK Junior. Кто-то сталкивался и может ли кто-то проверить, опровергнуть? Приведу простой пример - создаем стратегию и в ней перепишем лишь метод OnStarted таким образом:
По идее при выполнении этого кода мы должны упасть в метод Smth, но этого не происходит, так как отмена заявки не зажигает событие. Проверьте пожалуйста - что не так?
Спасибо.
Таблицы все корректно настроены? Verifier запускали? Что говорит ProcessDataError для трейдера?
Апну тему, вдруг поможет..
Заметил, что добавление тем здесь мониторится лучше, чем обновление ;)
Все - всем снова спасибо. Очередной мой косяк. Я думал, что событие "заявка снята" генерируется с помощью библиотеки Trans2Quik.dll. А оказывается, событие возникает просто после появления соответствующей строчки в таблице QUIK "Заявки". Ну а я по привычке снял все фильтры кроме "показывать активные заявки". Вот такой косяк. 😊
Есть тогда встречный вопрос - кто знает, для чего используется Trans2Quik.dll, кроме посыла заявок?
Ясно, спасибо)