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


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


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

Спасибо.

Теги:


Спасибо:


1 2  >
FlashPlayer

Фотография
Дата: 15.03.2013
Ответить


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

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

Фотография
Дата: 15.03.2013
Ответить


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

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

VassilSanych

Фотография
Дата: 15.03.2013
Ответить


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

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

Спасибо:

FlashPlayer

Фотография
Дата: 15.03.2013
Ответить


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

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

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

FlashPlayer

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

Спасибо.
Спасибо:

FlashPlayer

Фотография
Дата: 17.03.2013
Ответить


Апну тему, вдруг поможет..
Спасибо:

VassilSanych

Фотография
Дата: 18.03.2013
Ответить


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

esper

Фотография
Дата: 18.03.2013
Ответить


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

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

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

Спасибо.


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

FlashPlayer

Фотография
Дата: 18.03.2013
Ответить


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

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

esper

Фотография
Дата: 18.03.2013
Ответить


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

Для обработки ошибок выставления заявок.
Спасибо:
1 2  >

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

loading
clippy