← Zurück

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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (12)

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

Alexander
Alexander

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

FiNick
FiNick Autor

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

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

fish
fish

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

Alexander
Alexander

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

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

FiNick
FiNick Autor

Вопрос: как сделать так, чтобы стаканы подгружались с самого начала торгов, а не только с момента запуска программы? Я делаю так: 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 Autor

Mikhail Sukhov:

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

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

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

Mikhail Sukhov
Mikhail Sukhov

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

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

FiNick
FiNick Autor

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

Mikhail Sukhov
Mikhail Sukhov

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

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

Alexander
Alexander

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

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

FiNick
FiNick Autor

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