Работает простой маркетмейкерский робот, который держит в стакане аск и бид и периодически переставляет их на более подходящие цены. Иногда вылетает странная ошибка изнутри StockSharp.Algo, я даже не знаю какой мой код её вызывает, мои try-catch её не перехватывают. См картинку
Kommentare (9)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
В последних версиях ошибка более читабельная, и говорит, где косяк в стратегии.
Похоже проблема возникает из-за того, что все регистрации заявок я вызываю от стратегии, а ReRegisterOrderPair приходится вызывать от плазатрейдера. Вопрос, как сообщить стратегии, что заявки зарегистрированные с помощью ReRegisterOrderPair принадлежат ей (стратегии)?
ЗЫ версия 4.1.6
Точно не из-за этого. Ошибка возникает из-за неправильно перерегистрации. Видимо ММ у вас неправильно заявки переставляет.
Этот же робот использующий две последовательные Strategy.ReRegisterOrder вместо PlazaTrader.ReRegisterOrderPair работает без ошибок вообще.
Я определил по коду SlippageManager.
Попробовал Strategy.AddOrder, попробовал Strategy.CreateOrder, не помогает. Причем Strategy.AddOrder вообще оч странно работает. Новые заявки в Strategy.Orders появляются, однако стратегия их все равно не считает своими, плюс в лог при добавлении заявки выдается сообщение "Новая позиция: 'портфель'-'инструмент'='обьем заявки'", хотя никакие трейды по этим ордерам не проходили. Это баг такой? И вообще, ReRegisterOrderPair можно как-то интегрировать в стратегию?
В последних версиях есть Strategy.AttachOrder, должно решить проблему. Вызывать надо до передачи заявок в ReRegisterOrderPair.
Серьезно еще не протестил, но вроде как код:
позволяет использовать ReRegisterOrderPair в стратегии. Правда в лог приходят куча сообщений "Новая позиция ...", хотя позиция не набирается.