<HELP> for explanation

Блог им. nxt

Бесплатная тиковая база данных (CME)

Всем привет.

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

FTP доступ: 

85.25.211.62
login: smartlab
pass: smartlabpass

Ссылки на торрент: http://ge.tt/1Ql8j3Y2

№2: app.box.com/s/h0dhmkif0fhnvlpzdp8ma89c1ysv876t

Формат данных:


seconds (int32) — кол-во секунд с начала суток по Чикаго.
milliseconds (int32)
price (int32)
volume (int32)
bestBidPrice (sbyte) — расстояние в тиках между price и реальной ценой BidPrice
bestAskPrice (sbyte) - расстояние в тиках между price и реальной ценой AskPrice
bestBidSize (int32) — доступно с июня 2015
bestAskSize (int32) - доступно с июня 2015

Ниже код для чтения бинарных файлов (На C#).

Создаем класс Tick:

  1. public class Tick
  2. {
  3. public DateTime Time { get; set; }
  4. public int Price { get; set; }
  5. public int Volume { get; set; }
  6. public int BidPrice { get; set; }
  7. public int AskPrice { get; set; }
  8. public int BidSize { get; set; }
  9. public int AskSize { get; set; }
  10. public TickSide TickSide { get; set; } //Enum — TickSide.Ask, TickSide.Bid
  11. }


Далее читаем файл через BinaryReader:

  1. using(BinaryReader reader = new BinaryReader(File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)))
  2. {
  3.  
  4. while (reader.BaseStream.Position != reader.BaseStream.Length)
  5. {
  6. int seconds = reader.ReadInt32();
  7. DateTime tickTime = currentDate.Date.AddSeconds(seconds);
  8.  
  9. if (tickTime.Date != currentDate.Date)
  10. break;
  11.  
  12. int milliseconds = reader.ReadInt32();
  13. int price = reader.ReadInt32();
  14. int volume = reader.ReadInt32();
  15. sbyte bid = reader.ReadSByte();
  16. sbyte ask = reader.ReadSByte();
  17. int bidSize = reader.ReadInt32();
  18. int askSize = reader.ReadInt32();
  19. tickTime = tickTime.AddMilliseconds(milliseconds);
  20.  
  21. Tick tick = new Tick
  22. {
  23. Time = tickTime,
  24. Price = price,
  25. Volume = volume,
  26. BidPrice = bid,
  27. AskPrice = ask,
  28. BidSize = bidSize,
  29. AskSize = askSize,
  30. };
  31.  
  32. GetTickSide(tick);
  33. }
  34. }


Метод GetTickSide:

  1. private void GetTickSide(Tick tick)
  2. {
  3. if (tick.BidPrice <= 0)
  4. tick.TickSide = TickSide.Bid;
  5. else if (tick.AskPrice <= 0)
  6. tick.TickSide = TickSide.Ask;
  7. }

Чтобы получить читабельные цены bestBidPrice и bestAskPrice:

  1. int readableAskPrice = tick.price + (tick.AskPrice * priceStep);
  2. int readableBidPrice = tick.price — (tick.BidPrice * priceStep);

… где priceStep это шаг цены. Например шаг цены для ES = 25 (а не 0.25), Для GC/CL = 1 (а не 0.1/0.01) и так далее.

Все цены хранятся в int32, так как меньше весят, поэтому, чтобы получить цены с точкой, необходимо tick.price / (10 * кол-во знаков после точки).

P/s:
Просьба Тимофею Мартынову — сделайте пожалуйста подсветку кода на смартлабе.

Поставьте пожалуйста плюс чтобы вышло на главную! 

 

Спасибо
Спасибо)
Спасибо!
avatar

Adept

Спасибо
avatar

Agent Smith

Мне не надо, но все равно большое спасибо! Так как знаю как тяжело достать подобные данные.  
avatar

Антон Ш

А можно выложить в обычном формате?
Идущий по воде, другого формата нет, можно прочитать как показано, и дальше хранить в любом другом виде.
avatar

nxt

nxt, жаль. У меня нет компилятора С. И я не — программист 
Идущий по воде, не C, а C#. Вот годная IDEшечка https://sourceforge.net/projects/sharpdevelop/?source=directory
а откуда данные — кто провайдер и чем писали
надо понимать степень доверия к выложенным данным 
в любом случае спасибо 
avatar

rutrader

rutrader, данные записывались с IQFeed.
avatar

nxt

avatar

Ага

Ага, где вы это находите...((
avatar

nxt

nxt, «Ссылка на торрент: http://ge.tt/1Ql8j3Y2»
Ага, у меня браузер тоже хром, последнее версии. Такого не выдает.
avatar

nxt

nxt, ХЗ )
Ага, ну а если включить голову и подумать?
это относится к сайту ge.tt, куда выкладывают все кто что ни попадя и хром проявляет чудеса тупости. впрочем, скачать торрент хром не даст. при том, что сам .torrent файл в принципе никакого вреда причинить не может. короче, не ведитесь на бредни хрома.
avatar

Vitty

Пробуйте тут скачать: https://app.box.com/s/h0dhmkif0fhnvlpzdp8ma89c1ysv876t
avatar

nxt

nxt, 403 forbidden. Залейте пожалуйста еще куданибудь.
avatar

AnCh

AnCh, по двум ссылкам не работает?
avatar

nxt

тиковая база данных хорошо звучит :)
avatar

okolorynok.ru

спасибо. Редко когда кто-то столь щедр.

Вижу, что была попытка сделать формат хранения эффективным)

К стати, если хотите сделать реально эффективный бинарный формат, то или смотрите в сторону ФАСТ, и реализуйте упрощенную реализацию с дельтами, или сравнивайте две последовательных структуры, как массивы байт, и передавайте дельты + обязательное использование битовых масок)
avatar

Lafert

Lafert, спасибо. Идей масса, руки не доходят пока.

Вроде и так быстро читается, хотя можно сделать в 40-60 раз быстрее.

avatar

nxt

nxt, спасибо за данные. 

Это разовая раздача или постоянная и будет обновляться?

Есть ли пропуски в данных? 

Тоже храню данные в бинарном формате, используя struct[].

При этом можно запись и загрузку cделать одной операцией, читая/записывая целиком файл как byte[] и преобразуя его в/из struct[]. Очень быстро получается.

 

Пожалуй, поддержу раздачу :)
Прям бигдата какая-то
avatar

ivanovr

Молодчина!!!
avatar

MyProfit

Красава!
avatar

Ivor

Спасибо. Tozhe kachal kazhdyi den' napryamuyu s CME web site. Ne vsegda udavalos' poluchit' polnye  dannye — sboi s vykladyvaniem dannyh na web site
nxt, Спасибо БОЛЬШОЕ.
Посмотри пожалуйста, архивы  начиная  с  6A\03-15\20150317.zip и до 6A\03-15\20150321.zip имеют нулевой размер.  Их действительно нет? 
avatar

ALEKKO

ALEKKO, если нулевой, значит данных нет.
avatar

nxt

torrent stuck at 53.7% — no seeds
Самый лучший трейдер смартлаба, у меня торрент запущен всегда.
avatar

nxt

Спасибо. Плюсанул бы, если мог.
avatar

nvse

спасибо огромное!
 по фтп кста сильно было бы быстрее если б все зипы в один архив потом еще завернуть. фтп в силу своей сущности тормозит на тысячах файлов
avatar

Vitty

Vitty, TotalCommander или FileZilla в помощь… ;-)
avatar

ch5oh

ch5oh, причем тут FileZilla?  суть древнего как говно мамонта протокола FTP ущербна, он открывает новое соединение на каждый файл; десятки тысяч файлов в любой программе будут качаться на порядок медленнее чем если б это был монолитный архив.
avatar

Vitty

Vitty, =) хотел бы подчеркнуть, что лучше не ворчать "почему формат файлов лично мне неудобный", а поблагодарить господина nxt за то, что он выложил в паблик архив данных  рыночной стоимостью порядка $1-3k (или даже больше).
avatar

ch5oh

ch5oh, во1ых, поблагодарил сразу. во2ых, неудобный всем, в том числе и ему (нагрузка на его сервер лишняя, если начнут качать массово, натуральный DDOS получится)

если вы в чем-то не разбираетесь, лучше помолчите.
avatar

Vitty

Vitty, а как ему делать «ежедневное обновление» потом?

Весь зип перепаковывать?

К вечеру у Вас весь архив выкачается — вот возьмите и перепакуйте.

Заодно можете в нормальный CSV конвертнуть (с указнием времени по MSK желательно).

Вам люди тоже плюсов наставят.

avatar

ch5oh

Vitty, поэтому залил торрент. FTP согласен, что фигня полная.

avatar

nxt

Плюс в профиль однозначно!

Напишите, пожалуйста, сразу в тексте новости с какой даты собраны данные?

Хотя бы по основным фьючерсам ES, YM...

avatar

ch5oh

ch5oh, это можно посмотрите через ftp или торрент, там все видно.
avatar

nxt

Всё! Теперь придется писать утилиту, чтобы автоматически скачивала каждый день обновления. ;-)
avatar

ch5oh

ch5oh, могу дать код для скачивания файлов по Tcp с помощью запроса.
avatar

nxt

nxt, подскажите тикеры rs* это с московской биржи?
Тунеядец, да, но там нет цен bid/ask и bidsize/asksize
avatar

nxt

А расскажите, пожалуйста, ещё про логику именования директорий?

Я что-то не улавливаю системы… =(

Ну, кроме разбиения по тикерам, естетственно.

avatar

ch5oh

ch5oh, судя по всему тикер\дата экспирации\дата торгов.зип
автору мегареспект!
Тунеядец, спасибо! Похоже, так и есть. =)
avatar

ch5oh

ch5oh, Instrument/Contract/Date
avatar

nxt

Автору спасибо от души.
Люди добрые, кто уже скачал торрент, встаньте на раздачу, пожалуйста. Всего-то три с половиной гига, всякой муры раздают, а тут реально ценная инфа — и никого!

Инструкция для тех, у кого браузеры выкаблучиваются и блокируют торрент:
есть такая штука… Блин, забыл… Вертится на языке… А! Вспомнил! Майкрасофт интернет эксплорер! Во! Из него можно скачать =)
Fry (Антон)



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

Remarka, может стоит поставить google chrome?

ge.tt и есть файлообменник.

avatar

nxt

nxt, даже самая последняя версия хрома дает красный экран

ну не сложно же на мейл-облако кому-нибудь выложить?)

Remarka, https://yadi.sk/d/PDjXBjlyovjgL
avatar

nxt

nxt, спасибо!
Remarka, у вас какой-то древний браузер
avatar

nxt

и обновляется по итогу дня.
Вы будете выкладывать обновления?
avatar

destr

destr, очевидно если на ftp логин сохранится, то можно будет там скачивать.
Только вот я до сих пор ничего не получил. Торент не качается. К ftp подключение идёт неадекватное (что-то от меня утекает, ко мне ничего). Лень смотреть что же там не так, но по факту нет никаких котировок пока.
Жду раздачу на торренте.
Fry (Антон), у меня тоже торрент всё ещё  не качается
avatar

destr

destr, только что попробовал на разные PC — все качается нормально, торрент онлайн. Почему у вас не получается я не знаю
avatar

nxt

Ничего не поняла, но альтруизм — это круто. 
avatar

Анна Ф

В идеале ссылку на торрент надо бы на РуТрекер кинуть...

Без трекера насколько понимаю юзерам довольно сложно друг про друга узнать...

ПС Ещё раз респект и благодарность.

Особенно если будут обновления регулярные...

 

ППС Утилитку для скачивания по TCP можно по идее на тот же FTP Сервер кинуть для полноты картины...

avatar

ch5oh

nxt, Спасибо )
Большое спасибо, а можно расшифровку по продуктам? Файлик или здесь выложить.
avatar

OlegPypkin

OlegPypkin, какую расшифровку? Не понимаю
avatar

nxt

nxt, ну что значит каждое сокращение, какой продукт подразумевается под сокращением, спасибо!

уже два дня как застыл, может кто виноват, а главное что делать?

 

avatar

Remarka

Самый лучший трейдер смартлаба, да. это успокаивает

Кто-то смог докачать до 100 %?
avatar

Petr

Кто смог докачать до 100 %?
я с FTP все за раз забрал.
Выложите пожалуйста расшифровку по инструментам, спасибо!
avatar

OlegPypkin



Подскажите, плз, как разобрать данные, беру этот файл \85.25.211.62_CME\CL\09-16\20160811.zip, далее:
while (reader.BaseStream.Position != reader.BaseStream.Length)
{
  var seconds = reader.ReadInt32(); // кол — во секунд с начала суток по Чикаго.
  var milliseconds = reader.ReadInt32();
  var price = reader.ReadInt32();
  var volume = reader.ReadInt32();
  var bestBidPrice = reader.ReadSByte(); // расстояние в тиках между price и реальной ценой BidPrice
  var bestAskPrice = reader.ReadSByte(); // расстояние в тиках между price и реальной ценой AskPrice
  var bestBidSize = reader.ReadInt32(); // доступно с июня 2015
  var bestAskSize = reader.ReadInt32(); // доступно с июня 2015

...,

результат:
seconds: 559903
milliseconds: 0
price: -571736060
volume: -1256416249
bestBidPrice: -43
bestAskPrice: 0
bestBidSize: -882470416
bestAskSize: -1680396875

seconds: 1813515707
milliseconds: 1662566810
price: 135300620
volume: 793540541
bestBidPrice: -90
bestAskPrice: -124
bestBidSize: 134494738
bestAskSize: -1869111003

seconds: 635984848
milliseconds: 658657460
price: -2078014960
volume: -197326826
bestBidPrice: 26
bestAskPrice: 122
bestBidSize: 2130969167
bestAskSize: 1319022063

seconds: -288566662
milliseconds: -1646338850
price: -541122783
volume: -134513891
bestBidPrice: -45
bestAskPrice: 104
bestBidSize: -750349772
bestAskSize: 1090969396

Что-то тут не то, секунды, цены прыгают на порядок.

Формат данных действительно указан верно?
Кто-то разбирал эти бинарники?
avatar

eliteclub

eliteclub, нужно сначала zip распаковать.
avatar

nxt

Блин, вот я дурень — спасибо!
avatar

eliteclub


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UPDONW