Продолжаем знакомиться с тем, как получать рыночные данные с помощью API. В этой статье разберем как получить тиковые данные.
Тиковые данные — информация о всех совершаемых сделках с указанием времени, объема и цены сделки.
В терминале S5 Trader есть встроенный инструмент Tick Stream:
В других терминалах он иногда называется «лента принтов» или «лента сделок».
Получаем тиковые данные через API
Не будем повторять как создать приложение, подключить библиотеки, все это можете посмотреть в предыдущих материалах.
Сразу к коду. Для начала подключаем обработчик получения тиков:
//подключаем обработчик получения тиков oecapi.OnTicksReceived += new OEC.API.OnTicksReceivedEvent(oecapi_OnTicksReceived);
Функция oecapi_OnTicksReceived будет вызываться каждый раз при получении очередных тиков (сделок).
Не забываемся подписаться на получение котировок по соответствующему контракту:
static void oecapi_OnSymbolLookupReceived(OEC.API.SymbolLookupCriteria symbolLookup, OEC.API.ContractList contracts) { if (esu6SymbolLookupRequest != null && symbolLookup.ID == esu6SymbolLookupRequest.ID) { Console.WriteLine("Symbol lookup request for ESU6 found {0} contracts", contracts.Count); foreach (var contract in contracts) { oecapi.SubscribeTicks(contract, DateTime.UtcNow); } } }
И теперь собственно пишем обработчик получения тиков:
static void oecapi_OnTicksReceived(OEC.API.Subscription subscription, OEC.API.Ticks ticks) { for (int i = 0; i < ticks.PriceList.Length; ++i) Console.WriteLine("{0} {1}@{2}\tBid:{3} Ask:{4}", ticks.TimestampList[i].ToLocalTime(), ticks.VolumeList[i], ticks.PriceList[i], ticks.BidPriceList[i], ticks.AskPriceList[i]); }
Самое интересное в массиве ticks
Ticks object — contains array of timestamps and array of prices — one price per one timestamp. See RequestTicks(Contract, DateTime, DateTime) and RequestTicks(Contract, DateTime, Int32)
Содержит следующую информацию:
Name | Description | |
---|---|---|
AskPriceList |
Ask prices as a list
|
|
BidPriceList |
Bid prices as a list
|
|
ExchangeList |
Exchanges as a list
|
|
PriceList |
Prices as a list
|
|
TimestampList |
Timestamps as a list
|
|
VolumeList |
Volumes as a list
|
Посмотрим на результат работы нашей программы:
И теперь в динамике:
Надеюсь, что было полезно.
Как открыть реальный счет
Мы в соцсетях: