← Zurück

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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (9)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

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

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

FiNick
FiNick Autor

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

ЗЫ версия 4.1.6

Mikhail Sukhov
Mikhail Sukhov

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

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

FiNick
FiNick Autor

Mikhail Sukhov:

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

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

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

Mikhail Sukhov
Mikhail Sukhov

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

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

FiNick
FiNick Autor

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

esper
esper

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

FiNick
FiNick Autor

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

FiNick
FiNick Autor

Серьезно еще не протестил, но вроде как код:

this.AttachOrder(newBidOrder, new List<MyTrade>());
this.AttachOrder(newAskOrder, new List<MyTrade>());
this.PlazaTrader.ReRegisterOrderPair(oldBidOrder, newBidOrder, oldAskOrder, newAskOrder);

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