ra81
|
Дата: 18.01.2012
Добавил код во враппер и собрал либу. Запустил и проверил. Код
case _myTradesTable:
ProcessMyTrades.SafeInvoke((string)data);
break;
но событие таки не вызывается. В Лог начало падать событие OnProcessMyTrades постоянно, таблица часто видимо изменяется по полю Прибыль/убыток. Судя по ковыряниям в коде имеет смысл добавить вызов события типо RaiseNewMyTrades в BaseTrader класс. Поскольку хелпер метода типо GetMyTrade нет, то работа ведется через AddMyTrade, а в нем собственно нет ничего похожего на RaiseNewMyTrades. Ну поскольку код рефлектором смотрел, разобраться в том, что получилось не очень удалось. Приходится надеяться на вас Разработчиков. здоровья вам и терпения :). В общем и целом можно не использовать MyTrades как класс и довольствоваться работой с OrderChanged, и считать что, при исполнении ордера сделка свершилась. Но хотелось мне продублировать одно другим. Да и вообще обидно, код есть а не работает. Печалька.[crying]
|
|
Спасибо:
|
|
|
|
|
Sergey Masyura
|
Дата: 18.01.2012
|
|
|
|
ra81 Добавил код во враппер и собрал либу. Запустил и проверил. Код
case _myTradesTable:
ProcessMyTrades.SafeInvoke((string)data);
break;
но событие таки не вызывается. В Лог начало падать событие OnProcessMyTrades постоянно, таблица часто видимо изменяется по полю Прибыль/убыток. Судя по ковыряниям в коде имеет смысл добавить вызов события типо RaiseNewMyTrades в BaseTrader класс. Поскольку хелпер метода типо GetMyTrade нет, то работа ведется через AddMyTrade, а в нем собственно нет ничего похожего на RaiseNewMyTrades. Ну поскольку код рефлектором смотрел, разобраться в том, что получилось не очень удалось. Приходится надеяться на вас Разработчиков. здоровья вам и терпения :). В общем и целом можно не использовать MyTrades как класс и довольствоваться работой с OrderChanged, и считать что, при исполнении ордера сделка свершилась. Но хотелось мне продублировать одно другим. Да и вообще обидно, код есть а не работает. Печалька.[crying] Да, надо бы поправить. В BaseTrader из AddMyTrade вызывается RaiseNewMyTrades для новых сделок.
|
|
Спасибо:
|
|
|
|
|
ra81
|
Дата: 18.01.2012
Sergey Masyura Да, надо бы поправить. В BaseTrader из AddMyTrade вызывается RaiseNewMyTrades для новых сделок.
Да нашел, через приватный метод. Вызывается в этом методе. Но видимо не вызывается таки. Уж не знаю как. Проверить сам не могу к сожалению. Событие в конце концов не приходит, подписывайся или не подписывайся. Обработка MyTrades таблицы у меня поехала, а событие фиг. ВАЖНЫЙ момент: сделки я совершаю руками в терминале а не из кода. По идее библиотека должна брать данные из терминала и отрабатывать по ним.
|
|
Спасибо:
|
|
|
|
|
ra81
|
Дата: 19.01.2012
При создании ордеров через код событие NewMyTrade начинает вызываться. Но при условии что я использую свою либу которую правил.Правку выше я писал.
Опять же возникает вопрос - почему только при создании из кода?? Почему когда руками в терминале создаю событие не вызвается.
|
|
Спасибо:
|
|
|
|
|
Sergey Masyura
|
Дата: 19.01.2012
|
|
|
|
ra81 При создании ордеров через код событие NewMyTrade начинает вызываться. Но при условии что я использую свою либу которую правил.Правку выше я писал.
Опять же возникает вопрос - почему только при создании из кода?? Почему когда руками в терминале создаю событие не вызвается. MyTrade должна соотвествовать ордеру, ордер - который отправлен из терминала коннектор пропускает, т.к. использует комментарий чтобы определить transaction id. Можно было бы и эти ордера подхватывать, но альфа когда присылает апдейт о новом ордере (отправленным через Stock#) сперва показывает ордер без комментария, а потом уже присылает этот же ордер с комментарием. Соответственно, нет возможности различить откуда ордер - если ордер без комента пустить внутрь, то тогда все strategy rules для ордеров перестанут работ и нарушится целостность ссылок на ордера.. Все это выше к тому, что на все есть свои причины. По поводу пропущенной обработки MyTrades - это бага, в чем причина и как исправить я писал (исправить, а точнее проверить, пока нет возможности - кормлю лосей на все ГО)
|
|
|
|
|
ra81
|
Дата: 19.01.2012
|
|
|
|
Sergey Masyura
MyTrade должна соотвествовать ордеру, ордер - который отправлен из терминала коннектор пропускает, т.к. использует комментарий чтобы определить transaction id. Можно было бы и эти ордера подхватывать, но альфа когда присылает апдейт о новом ордере (отправленным через Stock#) сперва показывает ордер без комментария, а потом уже присылает этот же ордер с комментарием. Соответственно, нет возможности различить откуда ордер - если ордер без комента пустить внутрь, то тогда все strategy rules для ордеров перестанут работ и нарушится целостность ссылок на ордера.. Все это выше к тому, что на все есть свои причины.
По поводу пропущенной обработки MyTrades - это бага
Ну вот спасибо за пояснение насчет - почему только ордера отправленные из кода. Я собственно и хотел узнать причину такой схемы. Понимал что где-то здесь собака порылась. А MyTrades как я уже писал заработала у меня. Либу я поправил и собрал. Подключил к проекту все заработало. Там такая же была беда поначалу когда я руками создавал заявки из терминала. Событие NewMyTrades не вызывалось. Щас фишка понята и все работает. Цитата:исправить, а точнее проверить, пока нет возможности - кормлю лосей на все ГО Это вы не совсем верно. Нафиг их кормить пусть дохнут с голода. Или лучше отдать их соседу.
|
|
|
|
|
Sergey Masyura
|
Дата: 19.01.2012
|
|
|
|
ra81 Sergey Masyura
MyTrade должна соотвествовать ордеру, ордер - который отправлен из терминала коннектор пропускает, т.к. использует комментарий чтобы определить transaction id. Можно было бы и эти ордера подхватывать, но альфа когда присылает апдейт о новом ордере (отправленным через Stock#) сперва показывает ордер без комментария, а потом уже присылает этот же ордер с комментарием. Соответственно, нет возможности различить откуда ордер - если ордер без комента пустить внутрь, то тогда все strategy rules для ордеров перестанут работ и нарушится целостность ссылок на ордера.. Все это выше к тому, что на все есть свои причины.
По поводу пропущенной обработки MyTrades - это бага
Ну вот спасибо за пояснение насчет - почему только ордера отправленные из кода. Я собственно и хотел узнать причину такой схемы. Понимал что где-то здесь собака порылась. А MyTrades как я уже писал заработала у меня. Либу я поправил и собрал. Подключил к проекту все заработало. Там такая же была беда поначалу когда я руками создавал заявки из терминала. Событие NewMyTrades не вызывалось. Щас фишка понята и все работает. Цитата:исправить, а точнее проверить, пока нет возможности - кормлю лосей на все ГО Это вы не совсем верно. Нафиг их кормить пусть дохнут с голода. Или лучше отдать их соседу. Есть права записи на codeplex? Скиньте логин, добавлю в котрибьюторы. Добавил фикс, который описали выше, про который я написал в предыдущем топике - событие приходит, но надо посмотреть успевает ли прийти информация об ордере до того, как придет событие о сделке )
|
|
Спасибо:
|
|
|
|