← Voltar

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

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

Este tópico foi útil?

Compartilhar tópico

Comentários (9)

Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário

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 в стратегии. Правда в лог приходят куча сообщений "Новая позиция ...", хотя позиция не набирается.