Странная ошибка внутри StockSharp.Algo
Atom Ответить
20.11.2012


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

Теги:


Спасибо:




9 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 20.11.2012
Ответить


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


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

FiNick

Фотография
Благотворитель
Дата: 20.11.2012
Ответить


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

ЗЫ версия 4.1.6
Автор топика
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 21.11.2012
Ответить


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

esper

Фотография
Программист
Дата: 21.11.2012
Ответить


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

FiNick

Фотография
Благотворитель
Дата: 21.11.2012
Ответить


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

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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.11.2012
Ответить


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


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

Спасибо:

FiNick

Фотография
Благотворитель
Дата: 23.11.2012
Ответить


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


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



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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.11.2012
Ответить


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


Я определил по коду SlippageManager.
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 23.11.2012
Ответить


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

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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy