Странная ошибка внутри StockSharp.Algo


Странная ошибка внутри StockSharp.Algo
Atom Reply
11/20/2012


Работает простой маркетмейкерский робот, который держит в стакане аск и бид и периодически переставляет их на более подходящие цены.
Иногда вылетает странная ошибка изнутри StockSharp.Algo, я даже не знаю какой мой код её вызывает, мои try-catch её не перехватывают. См картинку
error.png 69.4KB (0)

Tags:


Thanks:




9 Answers
Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 11/20/2012
Reply


FiNick Перейти
Иногда вылетает странная ошибка изнутри StockSharp.Algo


В последних версиях ошибка более читабельная, и говорит, где косяк в стратегии.
Thanks:

FiNick

Avatar
Donator
Date: 11/20/2012
Reply


Похоже проблема возникает из-за того, что все регистрации заявок я вызываю от стратегии, а ReRegisterOrderPair приходится вызывать от плазатрейдера.
Вопрос, как сообщить стратегии, что заявки зарегистрированные с помощью ReRegisterOrderPair принадлежат ей (стратегии)?

ЗЫ версия 4.1.6
Topic starter
Thanks:

FiNick

Avatar
Donator
Date: 11/21/2012
Reply


Попробовал Strategy.AddOrder, попробовал Strategy.CreateOrder, не помогает.
Причем Strategy.AddOrder вообще оч странно работает. Новые заявки в Strategy.Orders появляются, однако стратегия их все равно не считает своими, плюс в лог при добавлении заявки выдается сообщение "Новая позиция: 'портфель'-'инструмент'='обьем заявки'", хотя никакие трейды по этим ордерам не проходили.
Это баг такой? И вообще, ReRegisterOrderPair можно как-то интегрировать в стратегию?
Topic starter
Thanks:

esper

Avatar
Programmer
Date: 11/21/2012
Reply


В последних версиях есть Strategy.AttachOrder, должно решить проблему. Вызывать надо до передачи заявок в ReRegisterOrderPair.
Thanks:

FiNick

Avatar
Donator
Date: 11/21/2012
Reply


esper Перейти
В последних версиях есть Strategy.AttachOrder, должно решить проблему. Вызывать надо до передачи заявок в ReRegisterOrderPair.

В документации написано, что AttachOrder принимает активные заявки, а до ReRegisterOrderPair заявки будут иметь состояние None.
Я так понял, AttachOrder вообще не для этого сделана, но можно попробовать.
Topic starter
Thanks:

Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 11/23/2012
Reply


FiNick Перейти
Похоже проблема возникает из-за того, что все регистрации заявок я вызываю от стратегии, а ReRegisterOrderPair приходится вызывать от плазатрейдера.


Точно не из-за этого. Ошибка возникает из-за неправильно перерегистрации. Видимо ММ у вас неправильно заявки переставляет.

Thanks:

FiNick

Avatar
Donator
Date: 11/23/2012
Reply


Mikhail Sukhov Перейти
FiNick Перейти
Похоже проблема возникает из-за того, что все регистрации заявок я вызываю от стратегии, а ReRegisterOrderPair приходится вызывать от плазатрейдера.


Точно не из-за этого. Ошибка возникает из-за неправильно перерегистрации. Видимо ММ у вас неправильно заявки переставляет.



Этот же робот использующий две последовательные Strategy.ReRegisterOrder вместо PlazaTrader.ReRegisterOrderPair работает без ошибок вообще.
Topic starter
Thanks:

Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 11/23/2012
Reply


FiNick Перейти
Этот же робот использующий две последовательные Strategy.ReRegisterOrder вместо PlazaTrader.ReRegisterOrderPair работает без ошибок вообще.


Я определил по коду SlippageManager.
Thanks:

FiNick

Avatar
Donator
Date: 11/23/2012
Reply


Серьезно еще не протестил, но вроде как код:
Код
this.AttachOrder(newBidOrder, new List<MyTrade>());
this.AttachOrder(newAskOrder, new List<MyTrade>());
this.PlazaTrader.ReRegisterOrderPair(oldBidOrder, newBidOrder, oldAskOrder, newAskOrder);

позволяет использовать ReRegisterOrderPair в стратегии. Правда в лог приходят куча сообщений "Новая позиция ...", хотя позиция не набирается.
Topic starter
Thanks:


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

loading
clippy