FlashPlayer
|
Date: 3/15/2013
Теперь другая проблема. Ничего не менял (запустил на другой машине) и теперь при свершении своей сделки событие вызывается бесконечно и в итоге вылетает с ошибкой overflow exception. Я совсем не понимаю, что за чудеса.
|
|
|
|
Thanks:
|
|
|
|
|
|
Самунджян Артем
|
Date: 3/15/2013
FlashPlayer:
Стратегия стартует, заявку шлет, получается сделка, но ни в один обработчик события своей сделки мы не "падаем".
Спасибо.
Скорее всего на таблице "Мои сделки" стоит фильтр и туда не попадают сделки Вашей стратегии по этому инструменту, соответственно и стокшарп их тоже не видит.
|
|
|
|
Thanks:
|
|
|
|
|
|
VassilSanych
|
Date: 3/15/2013
FlashPlayer:
Теперь другая проблема. Ничего не менял (запустил на другой машине) и теперь при свершении своей сделки событие вызывается бесконечно и в итоге вылетает с ошибкой overflow exception. Я совсем не понимаю, что за чудеса.
Значит где-то бесконечный цикл. Наверное, по ошибке какое-то событие в обработчике вызывает само себя.
|
|
|
|
Thanks:
|
|
|
|
|
|
FlashPlayer
|
Date: 3/15/2013
Всё - помогли разобраться.
Дело в первой проблеме оказалось в том, что ночью в квике идут эмулированные торги акциями и в них есть баг - частенько квиком не выкидывается событие своей сделки, поэтому S# не реагирует на нее.
А во второй проблеме - уже чисто мой косяк. После того, как я в панике (после столкновения с первой проблемой) начал перебирать все возможные варианты как отловить свою сделку - случайно зациклил программу, глаз замылился, и я никак не мог понять в чем проблема. Благо Артем очень быстро помог, за что ему спасибо.
|
|
|
|
Thanks:
|
|
|
|
|
|
FlashPlayer
|
Date: 3/16/2013
Теперь новая проблема.
После снятия заявки не происходит события 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, но этого не происходит, так как отмена заявки не зажигает событие. Проверьте пожалуйста - что не так?
Спасибо.
|
|
|
|
Thanks:
|
|
|
|
|
|
FlashPlayer
|
Date: 3/17/2013
Апну тему, вдруг поможет..
|
|
|
|
Thanks:
|
|
|
|
|
|
VassilSanych
|
Date: 3/18/2013
Заметил, что добавление тем здесь мониторится лучше, чем обновление ;)
|
|
|
|
Thanks:
|
|
|
|
|
|
esper
|
Date: 3/18/2013
FlashPlayer:
Теперь новая проблема.
После снятия заявки не происходит события OrderCanceled (как ни подписывайся оно не вызывается), более того все заявки, даже уже снятые, в Trader хранятся в состоянии Active, что по идее является следствием не срабатывания события. Все дело происходит как и с фьючами, так и с акциями в QUIK Junior. Кто-то сталкивался и может ли кто-то проверить, опровергнуть? Приведу простой пример - создаем стратегию и в ней перепишем лишь метод OnStarted таким образом:
По идее при выполнении этого кода мы должны упасть в метод Smth, но этого не происходит, так как отмена заявки не зажигает событие. Проверьте пожалуйста - что не так?
Спасибо.
Таблицы все корректно настроены? Verifier запускали? Что говорит ProcessDataError для трейдера?
|
|
|
|
Thanks:
|
|
|
|
|
|
FlashPlayer
|
Date: 3/18/2013
Все - всем снова спасибо. Очередной мой косяк. Я думал, что событие "заявка снята" генерируется с помощью библиотеки Trans2Quik.dll. А оказывается, событие возникает просто после появления соответствующей строчки в таблице QUIK "Заявки". Ну а я по привычке снял все фильтры кроме "показывать активные заявки". Вот такой косяк. [blush]
Есть тогда встречный вопрос - кто знает, для чего используется Trans2Quik.dll, кроме посыла заявок?
|
|
|
|
Thanks:
|
|
|
|
|
|
esper
|
Date: 3/18/2013
FlashPlayer:
Есть тогда встречный вопрос - кто знает, для чего используется Trans2Quik.dll, кроме посыла заявок?
Для обработки ошибок выставления заявок.
|
|
|
|
Thanks:
|
|
|
|
|