Сохранение стакана

Страницы: 1
RSS
Сохранение стакана, Описание эксперимента с сохранением стакана
 
Решил сохранить историческую информацию о стаканах по отдельно взятому инструменту.
Есть 2 обработчика: OnQuote и OnAllTrades. В обоих стоит фильтрация по инструменту. События из них кладутся в некий общий список(std::list<std::any>),
который потом записывается в файл. Очередность в итоговом списке такая же, какая случилась при вызовах коллбэков. Это небольшой кусочек списка, где стакан обозначен знаком =, а сделка знаком *:

=**=****===*====*===*==*=========***=***=**********=====*

Видно, что данные приходят срезами(иначе не было бы нескольких сделок подряд без изменения стакана, такое невозможно). И тут возникает вопрос: а как определить временную метку полученного стакана?? У каждой сделки такая метка есть.

Если покупать подобную информацию(история заявок, из которой можно собрать стакан) на бирже, то она выглядит как список заявок по всем инструментам, где каждая заявка также имеет свою временную метку, по формату аналогичную тому, что используется в сделках. То есть там не сам кадр стакана имеет временную метку, а каждая заявка, и можно собрать стакан самому, и при этом выяснить, какую временную метку ему проставить.

А что в Quik? Сохранить последовательность стаканов я могу, но без временных меток они не имеют много смысла.

Поэтому вопросы к разработчикам:
1) Где-то в недрах ваших систем есть временные метки для стаканов? Ведь биржа время заявки шлет. Если это есть, то почему бы это не передать в тот же коллбэк OnQuote, или в getQuoteLevel2?
2) Если таких временных меток на стакане у вас нет, то как вообще вы синхронизируете тот же стакан и таблицу всех сделок, графики да и все остальное, что имеет метку времени? Или же НИКАК??

Моя задача проста: распределить сделки и полученные стаканы на оси времени в верном порядке. Готов выслушать любые предложения:)

P.S. Если кому интересно: файл с записью такой информации только за вечернюю сессию по одному из инструментов срочного рынка занял 97 Мб.
 
Delv, добрый день.

Приносим свои извинения за длительное отсутствие реакции на Ваше обращение.


1. Информация по котировкам поступает без временных меток.
2. Указанные данные транслируются в разных потоках, их синхронизация не выполняется.
 
2) ничего не синхронизируется. Всё едет независимо. Как приехало - так отобразили.
Купили историю заявок на бирже? Серьёзно??
В вашем файле время формирования информации, не более.
 
Цитата
Delv написал:
Решил сохранить историческую информацию о стаканах по отдельно взятому инструменту.
Есть 2 обработчика: OnQuote и OnAllTrades. В обоих стоит фильтрация по инструменту. События из них кладутся в некий общий список(std::list<std::any>),
который потом записывается в файл. Очередность в итоговом списке такая же, какая случилась при вызовах коллбэков. Это небольшой кусочек списка, где стакан обозначен знаком =, а сделка знаком *:

=**=****===*====*===*==*=========***=***=**********=====*

Видно, что данные приходят срезами(иначе не было бы нескольких сделок подряд без изменения стакана, такое невозможно). И тут возникает вопрос: а как определить временную метку полученного стакана?? У каждой сделки такая метка есть.

Если покупать подобную информацию(история заявок, из которой можно собрать стакан) на бирже, то она выглядит как список заявок по всем инструментам, где каждая заявка также имеет свою временную метку, по формату аналогичную тому, что используется в сделках. То есть там не сам кадр стакана имеет временную метку, а каждая заявка, и можно собрать стакан самому, и при этом выяснить, какую временную метку ему проставить.

А что в Quik? Сохранить последовательность стаканов я могу, но без временных меток они не имеют много смысла.

Поэтому вопросы к разработчикам:
1) Где-то в недрах ваших систем есть временные метки для стаканов? Ведь биржа время заявки шлет. Если это есть, то почему бы это не передать в тот же коллбэк OnQuote, или в getQuoteLevel2?
2) Если таких временных меток на стакане у вас нет, то как вообще вы синхронизируете тот же стакан и таблицу всех сделок, графики да и все остальное, что имеет метку времени? Или же НИКАК??

Моя задача проста: распределить сделки и полученные стаканы на оси времени в верном порядке. Готов выслушать любые предложения:)

P.S. Если кому интересно: файл с записью такой информации только за вечернюю сессию по одному из инструментов срочного рынка занял 97 Мб.
Стакан не приходит целиком. Он передается лишь изменениями. Кроме того, есть сделки, заявки по которым никогда не появляются в стакане.
---------------
сделки в таблицу обезличенных сделок а следовательно и в колбек ALLTrades приходят не срезами, а блоками.
Срезы не гарантируют отсутствие пропусков, а обезличенные сделки приходят без пропусков, но кучей одновременно.
 
Ваша идея не осуществима.
Единственное решение - купить у биржи или торговцев информации с биржи эту информацию.
Но остается вопрос - А смысл?
Страницы: 1
Читают тему (гостей: 1)
Наверх