Добрый день!
Никак не могу разобраться с тем, на какие события нужно подписываться, чтобы обработать данные с ММВБ через 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();
Comentários (12)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Попробуйте так же добавить таблицы:
И подписаться на событие Trader.MarketDepthsChanged
Действительно, всё гениальное просто. Не думал, что всё так взаимосвязано, видимо события срабатывают для зарегистрированных инструментов, которые и следовало получать, спасибо!
Не долго я шел до следующего вопроса..
таблица McxOrderBookSpot- таблица котировок, сейчас у меня события на обновление идут через MarketDepthsChanged соответственно я получаю стакан MarketDepthс одной котировкой, отсюда вопрос
каким образом можно собрать стакан (я так понимаю, что требуются поля replId, replRev, replAct, только не пойму как к ним обратиться, т.е. вытащить их из MarketDepthили Quote)
или же вообще следует каким-то другим путем идти? (имею ввиду подпись на другие события,готовые методы и т.п.)
заранее спасибо за ответы
В SampleGUI стакан так же приходит с одной котировкой?
Нетерпеливый я, на тестовом контуре долго не было стакана с котировками > 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 и говорит об этом, или я не правильно понимаю его смысл?)
Отчего же, кто мне запрещает хотеть купить акцию по такой цене?
такой вопрос, котировки то приходят, а вернее сказать сразу стаканы по событию MarketDepthsChanged, можно ли получить номер ревизии измененной котировки в стакане replRev?
вопрос связан с тем, чтобы корректно догружать пропущенные изменения стакана через PlazaStreamReplicationTypes.CombinedDynamic
потому как по событию изменения получаю только текущие изменения стакана, а как сделать так, чтобы грузить его с начала торговой сессии до момента включения?
Стаканы не копятся биржей. Для этого у них сделан ОрдерЛог.
речь идет о ММВБ, на котором через плазу реплики ордерлога не идут
просто я могу получить в режиме снэпшота все данные по сделкам, что были ранее (пропущенные), однако, не понимаю можно ли каким-то образом получить пропущенные данные по котировкам
Через Плазу нет, а вообще он есть.
Биржа не накапливает изменения по стаканам.
Получаю сделки из потока 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, как понимаю биржевое время..
Верно. Плаза по непонятным причинам не пересылает биржевое время. Из-за этого идет подставление локального времени.