← Zurück

Экспорт данных с ММВБ через Plaza

Добрый день!

Никак не могу разобраться с тем, на какие события нужно подписываться, чтобы обработать данные с ММВБ через API под плазу.

в коде ниже.. подписываюсь на поток, задаю табличку, в лог пишется что данные получаю, а какие события срабатывают при приходе новых данных McxOrderBookSpot не пойму..


trader = new PlazaTrader();
trader.Log += trader_Log;

//..................

// Настраиваем загрузку
            
trader.StreamManager.RevisionManager.Tables.Add(trader.TableRegistry.McxOrderBookSpot); 

trader.Tables.Clear();
trader.Tables.Add(trader.TableRegistry.McxOrderBookSpot);

trader.TableRegistry.StreamRegistry.McxAggrSpot.ReplicationType = PlazaStreamReplicationTypes.RemoteOnline;
            
trader.Connect();

//..................    

trader.StartExport();

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

esper
esper

Попробуйте так же добавить таблицы:

Trader.TableRegistry.McxSecuritiesSpot
Trader.TableRegistry.McxCommonSpot

И подписаться на событие Trader.MarketDepthsChanged

neangelru
neangelru
neangelru Autor

Действительно, всё гениальное просто. Не думал, что всё так взаимосвязано, видимо события срабатывают для зарегистрированных инструментов, которые и следовало получать, спасибо!

neangelru
neangelru Autor

Не долго я шел до следующего вопроса..

таблица McxOrderBookSpot- таблица котировок, сейчас у меня события на обновление идут через MarketDepthsChanged соответственно я получаю стакан MarketDepthс одной котировкой, отсюда вопрос

каким образом можно собрать стакан (я так понимаю, что требуются поля replId, replRev, replAct, только не пойму как к ним обратиться, т.е. вытащить их из MarketDepthили Quote)

или же вообще следует каким-то другим путем идти? (имею ввиду подпись на другие события,готовые методы и т.п.)

заранее спасибо за ответы

esper
esper

В SampleGUI стакан так же приходит с одной котировкой?

neangelru
neangelru Autor

Нетерпеливый я, на тестовом контуре долго не было стакана с котировками > 1 только вот данные не радуют:

***MarketDepth md

Security = {MSNG@EQBR}

md.Bids[0] {Бид 3,9041 1} md.Bids[1] {Бид 0,0001 1} md.AutoVerify false***

--> Бид с ценой 0,0001 - это баг данных пересылаемых биржей? (вроде AutoVerify=false и говорит об этом, или я не правильно понимаю его смысл?)

esper
esper

Отчего же, кто мне запрещает хотеть купить акцию по такой цене?

neangelru
neangelru Autor

такой вопрос, котировки то приходят, а вернее сказать сразу стаканы по событию MarketDepthsChanged, можно ли получить номер ревизии измененной котировки в стакане replRev?

вопрос связан с тем, чтобы корректно догружать пропущенные изменения стакана через PlazaStreamReplicationTypes.CombinedDynamic

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

Mikhail Sukhov
Mikhail Sukhov

neangelru: а как сделать так, чтобы грузить его с начала торговой сессии до момента включения?

Стаканы не копятся биржей. Для этого у них сделан ОрдерЛог.

neangelru
neangelru Autor

речь идет о ММВБ, на котором через плазу реплики ордерлога не идут

просто я могу получить в режиме снэпшота все данные по сделкам, что были ранее (пропущенные), однако, не понимаю можно ли каким-то образом получить пропущенные данные по котировкам

Mikhail Sukhov
Mikhail Sukhov

neangelru: речь идет о ММВБ, на котором через плазу реплики ордерлога не идут

Через Плазу нет, а вообще он есть.

neangelru: просто я могу получить в режиме снэпшота все данные по сделкам, что были ранее (пропущенные), однако, не понимаю можно ли каким-то образом получить пропущенные данные по котировкам

Биржа не накапливает изменения по стаканам.

neangelru
neangelru Autor

Получаю сделки из потока MCXSPOT_MDTRADE_REPL и котировки MCXSPOT_AGGR_REPL по Plaza2. Время сделок и котировок расходится.

В описании таблиц на фтп (http://ftp.rts.ru/pub/forts/Plaza2/bak/p2micexgate_ru.pdf) для MCXSPOT_AGGR_REPL нет времени, отсюда вопрос – какое время проставляется в пересылаемых котировках? (MarketDepth.LastChangeTime) локальное время моего сервера или биржевое время?

В таблице MCXSPOT_MDTRADE_REPL есть поле Time, как понимаю биржевое время..

Mikhail Sukhov
Mikhail Sukhov

neangelru: В описании таблиц на фтп (http://ftp.rts.ru/pub/forts/Plaza2/bak/p2micexgate_ru.pdf) для MCXSPOT_AGGR_REPL нет времени, отсюда вопрос – какое время проставляется в пересылаемых котировках? (MarketDepth.LastChangeTime) локальное время моего сервера или биржевое время?

Верно. Плаза по непонятным причинам не пересылает биржевое время. Из-за этого идет подставление локального времени.