Блог им. nxt

Новый протокол передачи данных CME MDP 3.0

    • 12 мая 2015, 23:37
    • |
    • nxt
  • Еще
По мотивам поста Светланы Орловской, я решил сравнить разницу между Time&Sales через CQG, которые перешли на новый протокол MDP 3.0, и старым протоколом FIX/FAST (провайдер данных - IQFeed).

Данные записывал в режиме реального времени через терминал NinjaTrader для CQG, и через IQFeed API напрямую.

В CQG тики действительно агрегированные.

Ниже представлен скриншот, на котором это хорошо видно:

Новый протокол передачи данных CME MDP 3.0 

Тоже самое озвучили в тех. поддержке IQFeed:

"As a high level summary, the change relates to how the exchange bundles trades within their messaging. Right now we are able to process each order for a trade independently. In the new protocol the exchange summarizes multiple orders under certain circumstances. For example, if you look at the current feed and see multiple trades at the same time and price (but different sizes), those will typically be bundled into a single trade going forward with MDP 3.0. So instead of multiple ticks such as 1@2084.75, 3@2084.75, 2@2084.75, 5@2084.75… you will see a single tick of 11@2084.75.

Since the middle of last year, our engineers have been trying to find ways to unbundle the data in the new protocol while still maintaining accuracy and reliability. Unfortunately we haven't found a good way to accomplish this with the data provided by the protocol. We continue to look at our data processing options in cooperation with the CME Exchange. In the mean time, we are happy to be able to continue providing our customers the accurate tick data they have come to expect. " 


Думаю что рано бить тревогу, подождем осени. К слову — ранее CQG транслировали tick-by-tick данные, а после перехода на MDP — данные стали агрегированные. Строго говоря, это может означать, что действительно есть определенные сложности с обработкой пакетов данных. Либо же такие данные идут изначально в биржевом потоке.

Ждем октября, буду держать вас по возможности в курсе.

★13
17 комментариев
Переведу ответ IQFeed для тех, кто учил немецкий :)
«Если говорить кратко, это изменение исходит из того, как биржа связывает теперь отдельные трейды в своих „messages“. Сейчас мы можем обрабатывать каждый трейд отдельно. В новом протоколе биржа суммирует несколько ордеров при определенных обстоятельствах. Например, если посмотреть на текущий поток и увидеть несколько сделок в одно время и по одной цене (но разного размера), они, скорее всего, будут связаны при передаче через MDP 3.0. Таким образом, вместо нескольких тиков 1@2084.75, 3@2084.75, 2@2084.75, 5@2084.75… мы увидим один 11@2084.75.
С середины прошлого года, наши инженеры пытались найти решение тому, как выделить тики, связанные новым протоколом, и сохранить надежность и точность тикового потока. К сожалению, мы не нашли приемлимого способа, как всего этого можно достичь в рамках нового протокола. Мы будем продолжать работать в этом направлении вместе с СМЕ. Между тем, мы рады иметь возможность продолжать поставлять нашим клиентам точные тиковые данные, к которым они привыкли».
Для справки: IQFeed- независимый провайдер данных СМЕ, предоставляет поток данных в реальном времени и их архивы по подписке. Не имеет возможности роутинга, не привязан ни к какому брокеру, однако, подключается к многочисленным платформам (включая NT) и предоставляет доступ к собственному API.
Светлана Орловская, опять 25)))
Денис Нефедов, что вам не нравится?
avatar
nxt, ???
Денис Нефедов, Вы как-то негативно высказались в посте Светланы, отсюда и вопрос.
avatar
nxt, а этим неведовым ничо вообще не нравится)))))))))мозк не работает
avatar
Так же приведу основную проблему, связанную с такими изменениями.

Допустим — мне нужны принты, например свыше 5 контрактов по золоту. В формате MDP я получу другую аккумуляцию.

Есть две последовательности:
1. Tick-by-Tick: (1+1+1+2)+3+5+(1+1+3)
2. Aggregated: 5+3+5+5.

В первом случае, я отберу из потока только один принт (5).
Во втором случае, я отберу три принта (5+5+5).

В итоге разные показатели. Если условно считать «5» — крупным принтом, то очевидно, что во втором случае я получу фейковые результаты.
Так как на самом деле, прошел только один принт объемом 5 контрактов (а не три). В этом вся соль.
avatar
nxt, Ну там вроде как в одно и тоже время должны пройти принты. А многие крупняки сами разбивают свои сделки на мелочь. Иногда посматриваю ленты на демке TOSа и часто вижу по 10-30 принтов по например 2 контракта в подряд буквально за секунду. Так что с другой стороны вроде и плюс)))
avatar
При том, имхо, сама биржа для определенного круга лиц всё же будет транслировать тиковые данные. Dark pools, jump orders уже были в их арсенале. Теперь вот решили не выдумывать и тупо сменить протокол.
avatar
Ninjatrader сама аггрегирует поток и выдает снапшоты по 250 мсек, без чистого CQG сравнивать что-либо бессмысленно
Сергеев Петр, добрый день. Для графиков в НТ7 Вы, действительно, можете выбрать частоту обновления (от 0.1 сек), но на частоту обновления ленты это никак не влияет, оно потиковое. Достаточно просто открыть ленту в NT прямо сейчас, скажем, на евродолларе или нефти, чтобы увидеть, что она обновляется гораздо чаще, чем четыре раза в секунду :)
Светлана Орловская, благодарю, я этого не знал про native ленту =)! в любом случае у CQG есть ряд ограничений (внутренние таймстемпы, не транслирует агрессора), так что для реального сравнения изменений лучше брать Rithmic/IQFeed до и после октября 2015 года =)

Кстати, CME выложили интересные картинки вот здесь:
www.cmegroup.com/confluence/display/EPICSANDBOX/MDP+3.0+-+Trade+Summary

насколько я понял, ничего страшного не произойдет, те кто имеет к ним доступ через iLink по-прежнему смогут по-прежнему видеть каждую отдельную сдлелку и order ID пусть даже в рамках одного пакета, вопрос в том будут ли эту инфу перепродавать простым смертным =) Поправьте, если ошибаюсь.
Сергеев Петр, информация по отдельным сделкам будет в пакете, да, но их нужно будет оттуда изымать (декодировать пакет, «unbundle»). Суть в том, что сделать это, по словам тех же IQFeed, в рамках нового протокола невозможно без потери качества/точности/скорости. Rithmic, как я писала в исходной статье, повременил миграцию на новый протокол именно для того, чтобы так же попытаться решить эту задачу с разделением отдельных трейдов в связке.
И нет, «страшное» это вообще не трейдинговая категория. Все приспособятся- также, как в 2009 году. Научатся видеть полезное в новом формате :) Будут давать опции стандартного потока и декодированного. Будут создавать собственные декодеры. Новая ниша. :)
Сергеев Петр, данные собирались через код (событие OnMarketData). Учитывая, что я неоднократно делал подобные сравнения, могу заверить что ЕСЛИ считывать данные именно таким образом из NT, то никакой задержки в 250 мс там нет. Кроме того, еще месяц назад данные совпадали.
avatar
nxt, благодарю!
Платформы для работы с API для девелоперов можно взять здесь: http://getanyplatform.com
avatar

теги блога nxt

....все тэги



UPDONW
Новый дизайн