← Back

Сохранение стаканов

Хочу написать сохранение стаканов в своем роботе. Подписался на событие PlazaTrader.MarketDepthsChanged, если приходит стакан по нужной бумаге сохраняю в список. Потом из списка сохраняю на диск через storage.GetMarketDepthStorage(security, dataPath).Save. Проблема в том, что у всех стаканов LastChangeTime оказывается одинаковым. Может я неправильно понимаю что такое обьект MarketDepth?

Comments (12)

Login or Create account, Log in or register to leave a comment

Alexander
Alexander

Версия какая? В каком месте LastChangeTime оказывается одинаковым? В момент события MarketDepthsChanged у всех стаканов всегда одинаковое время?

FiNick
FiNick Author

Alexander Mukhanchikov: Версия какая? В каком месте LastChangeTime оказывается одинаковым? В момент события MarketDepthsChanged у всех стаканов всегда одинаковое время?

Версия 4.1.0 Я ступил, событие MarketDepthsChanged для каждой Security выдает всегда один и тот же обьект MarketDepth. То есть стакан один, он просто меняется. Значит если я хочу сохранить последовательность изменений стакана, то должен на каждый вызов события MarketDepthsChanged делать копию стакана и пихать её в список, затем весь этот список сохранять? Или есть другой способ для этого? Я посмотрел исходники гидры, не разобрался.

fish
fish

я тоже мало чего понял из исходников Гидры, так как очень много там ЗАКРЫТОГО! на то что она ссылается! Algo.Storages к примеру

Alexander
Alexander

fish: я тоже мало чего понял из исходников Гидры, так как очень много там ЗАКРЫТОГО! на то что она ссылается! Algo.Storages к примеру

Хотите получить исходники - принимайте активное участие в разработке

FiNick
FiNick Author

Вопрос: как сделать так, чтобы стаканы подгружались с самого начала торгов, а не только с момента запуска программы? Я делаю так: this.Trader.StreamManager.RevisionManager.Interval = TimeSpan.MaxValue; this.Trader.StreamManager.RevisionManager.Tables.Clear(); В результате тики подгружаются с начала вечерки прошлого дня, а вот стаканы только с момента запуска проги.

P.S. И зачем нужен метод StartExport? Я просто вызываю this.Trader.Connect и все работает. Если на событие OnConnected делаю StartExport не работает. Версия 4.1.0

Mikhail Sukhov
Mikhail Sukhov

FiNick: Вопрос: как сделать так, чтобы стаканы подгружались с самого начала торгов, а не только с момента запуска программы?

Плаза такое не поддерживает. Если разрывы критичны, то надо самостоятельно строить из ордер лога.

FiNick
FiNick Author

Mikhail Sukhov:

FiNick: Вопрос: как сделать так, чтобы стаканы подгружались с самого начала торгов, а не только с момента запуска программы?

Плаза такое не поддерживает. Если разрывы критичны, то надо самостоятельно строить из ордер лога.

Т.е. подписаться на this.Trader.TableRegistry.OrdersLogFuture.Inserted / Deleted, и с них как-то стакан строить пытаться?

Mikhail Sukhov
Mikhail Sukhov

FiNick: Т.е. подписаться на this.Trader.TableRegistry.OrdersLogFuture.Inserted / Deleted, и с них как-то стакан строить пытаться?

А еще подключить услугу на ОЛ. Он платный.

FiNick
FiNick Author

Слушайте, но гидра же может стаканы скачивать в произвольный момент времени, как так?

Mikhail Sukhov
Mikhail Sukhov

FiNick: Слушайте, но гидра же может стаканы скачивать в произвольный момент времени, как так?

Вопроса не понял

Alexander
Alexander

FiNick: Слушайте, но гидра же может стаканы скачивать в произвольный момент времени, как так?

История стаканов за текущий день доступна только по полному анонимному ордер логу. Подключайте и подписывайтесь на него.

FiNick
FiNick Author

Понял, спасибо!