CreateDataSource и SetUpdateCallback - по разным интервалам

Страницы: 1
RSS
CreateDataSource и SetUpdateCallback - по разным интервалам
 
Подскажите, я правильно понимаю, что когда я вызваю:

-CreateDataSource и потом SetUpdateCallback по одному инструменту, но с разными интервалами, для примера:

-"TQBR" ,"SBER",  "INTERVAL_M1"
"TQBR" ,"SBER",   "INTERVAL_M3"
"TQBR" ,"SBER",   "INTERVAL_M5"
"TQBR" ,"SBER",   "INTERVAL_M10"

То на сервер при SetUpdateCallback - идет по сути только один запрос по интервалу - "INTERVAL_TICK", а уже пришедшая цена с датой раскидывается по интервалу силами Квика ?
 
Цитата
Quikos_1 написал:
Подскажите, я правильно понимаю, что когда я вызваю:

-CreateDataSource и потом SetUpdateCallback по одному инструменту, но с разными интервалами, для примера:

-"TQBR" ,"SBER",  "INTERVAL_M1"
"TQBR" ,"SBER",   "INTERVAL_M3"
"TQBR" ,"SBER",   "INTERVAL_M5"
"TQBR" ,"SBER",   "INTERVAL_M10"

То на сервер при SetUpdateCallback - идет по сути только один запрос по интервалу - "INTERVAL_TICK", а уже пришедшая цена с датой раскидывается по интервалу силами Квика ?
Нет,
на сервер идет запрос для каждого интервала,
так как свечи формирует не терминал, а сервер.
------------------
Поток свечей на 1-2 порядка  меньше, чем поток тиков.
 
Цитата
nikolz написал:
Цитата
Quikos_1 написал:
Подскажите, я правильно понимаю, что когда я вызваю:

-CreateDataSource и потом SetUpdateCallback по одному инструменту, но с разными интервалами, для примера:

-"TQBR" ,"SBER",  "INTERVAL_M1"
"TQBR" ,"SBER",   "INTERVAL_M3"
"TQBR" ,"SBER",   "INTERVAL_M5"
"TQBR" ,"SBER",   "INTERVAL_M10"

То на сервер при SetUpdateCallback - идет по сути только один запрос по интервалу - "INTERVAL_TICK", а уже пришедшая цена с датой раскидывается по интервалу силами Квика ?
Нет,
на сервер идет запрос для каждого интервала,
так как свечи формирует не терминал, а сервер.
------------------
Поток свечей на 1-2 порядка  меньше, чем поток тиков.
А как поток свечей может быть меньше - да еще и на порядок, если, TICK он один, а интервалов свечей несколько ?
Если я выбираю дневную свечу - это же не значит - что колбек по ней будет вызываться один раз в день ? Он же будет вызываться ровно столько - сколько же и Тиковый интервал.
 
Цитата
Quikos_1 написал:
Цитата
nikolz написал:
 
Цитата
Quikos_1  написал:
Подскажите, я правильно понимаю, что когда я вызваю:

-CreateDataSource и потом SetUpdateCallback по одному инструменту, но с разными интервалами, для примера:

-"TQBR" ,"SBER",  "INTERVAL_M1"
"TQBR" ,"SBER",   "INTERVAL_M3"
"TQBR" ,"SBER",   "INTERVAL_M5"
"TQBR" ,"SBER",   "INTERVAL_M10"

То на сервер при SetUpdateCallback - идет по сути только один запрос по интервалу - "INTERVAL_TICK", а уже пришедшая цена с датой раскидывается по интервалу силами Квика ?
 Нет,
на сервер идет запрос для каждого интервала,
так как свечи формирует не терминал, а сервер.
------------------
Поток свечей на 1-2 порядка  меньше, чем поток тиков.
А как поток свечей может быть меньше - да еще и на порядок, если, TICK он один, а интервалов свечей несколько ?
Если я выбираю дневную свечу - это же не значит - что колбек по ней будет вызываться один раз в день ? Он же будет вызываться ровно столько - сколько же и Тиковый интервал.
Поясняю, следите за руками.
Тик - это сделка.  
Свеча - это способ сжатия информации о сделках путем вычисления  четырех индикаторов на заданном интервале времени.
--------------------------------
Если текущая сделка изменила значение какого-либо индикатора, то сервер пошлет это значение терминалу.
Предположим у нас тайм 1 час.
1 индикатор - это первый тик в текущем часе. - 1 значение на интервал.
2 индикатор - это максимальная цена сделки на текущем часе. Этот индикатор изменится лишь при превышении цены текущей сделки максимальной цены предыдущих.
3 индикатор -это  минимальная цена сделки на текущем часе.
4 индикатор - это текущая цена сделки, если она отличается от цены предыдущей сделки.
=================
Теперь рассмотрим случаи когда тики будут пропускаться без создания новых значений индикаторов.
Вот некоторые из них.
1) Если в сделке участвует айсберг или большой пакет, то цена сделок не будет меняться, следовательно значения свечей тоже не меняются
2) Если сделки совершаются внутри тела текущей свечи, то изменяется  лишь 1 индикатор при условии , что цена сделки меняется
=================
В итоге количество значений в свечах всегда меньше, чем число сделок.
==============
Вы можете это проверить сами. Для этого напишите вычисление свечей по тикам и посчитайте количество полученных данных.
 
Цитата
nikolz написал:
Цитата
Quikos_1 написал:
 
Цитата
nikolz  написал:
 
Цитата
 Quikos_1   написал:
Подскажите, я правильно понимаю, что когда я вызваю:

-CreateDataSource и потом SetUpdateCallback по одному инструменту, но с разными интервалами, для примера:

-"TQBR" ,"SBER",  "INTERVAL_M1"
"TQBR" ,"SBER",   "INTERVAL_M3"
"TQBR" ,"SBER",   "INTERVAL_M5"
"TQBR" ,"SBER",   "INTERVAL_M10"

То на сервер при SetUpdateCallback - идет по сути только один запрос по интервалу - "INTERVAL_TICK", а уже пришедшая цена с датой раскидывается по интервалу силами Квика ?
  Нет,
на сервер идет запрос для каждого интервала,
так как свечи формирует не терминал, а сервер.
------------------
Поток свечей на 1-2 порядка  меньше, чем поток тиков.
 А как поток свечей может быть меньше - да еще и на порядок, если, TICK он один, а интервалов свечей несколько ?
Если я выбираю дневную свечу - это же не значит - что колбек по ней будет вызываться один раз в день ? Он же будет вызываться ровно столько - сколько же и Тиковый интервал.
Поясняю, следите за руками.
Тик - это сделка.  
Свеча - это способ сжатия информации о сделках путем вычисления  четырех индикаторов на заданном интервале времени.
--------------------------------
Если текущая сделка изменила значение какого-либо индикатора, то сервер пошлет это значение терминалу.
Предположим у нас тайм 1 час.
1 индикатор - это первый тик в текущем часе. - 1 значение на интервал.
2 индикатор - это максимальная цена сделки на текущем часе. Этот индикатор изменится лишь при превышении цены текущей сделки максимальной цены предыдущих.
3 индикатор -это  минимальная цена сделки на текущем часе.
4 индикатор - это текущая цена сделки, если она отличается от цены предыдущей сделки.
=================
Теперь рассмотрим случаи когда тики будут пропускаться без создания новых значений индикаторов.
Вот некоторые из них.
1) Если в сделке участвует айсберг или большой пакет, то цена сделок не будет меняться, следовательно значения свечей тоже не меняются
2) Если сделки совершаются внутри тела текущей свечи, то изменяется  лишь 1 индикатор при условии , что цена сделки меняется
=================
В итоге количество значений в свечах всегда меньше, чем число сделок.
==============
Вы можете это проверить сами. Для этого напишите вычисление свечей по тикам и посчитайте количество полученных данных.
Давайте упростим ситуацию и у нас не будет индикаторов, а только свечной график.

Как Вы и написали - Тик это сделка.

У свечи есть такой параметр, как цена закрытия, которая постоянно меняется при совершении сделки - то есть с каждым Тиком.

НО цена сделки может не меняться, то есть несколько сделка прошли по одной и той же цене, НО в и этом случае - есть параметр Volume, который увеличивается с каждым Тиком в не зависимости от цена Тика.

На основании этого я могу сделать вывод, что поток Тиков будет пропорционально в разы меньше заказанных интервалов свечей.
 
Цитата
Quikos_1 написал:
Цитата
Давайте упростим ситуацию и у нас не будет индикаторов, а только свечной график.

Как Вы и написали - Тик это сделка.

У свечи есть такой параметр, как цена закрытия, которая постоянно меняется при совершении сделки - то есть с каждым Тиком.

НО цена сделки может не меняться, то есть несколько сделка прошли по одной и той же цене, НО в и этом случае - есть параметр Volume, который увеличивается с каждым Тиком в не зависимости от цена Тика.

На основании этого я могу сделать вывод, что поток Тиков будет пропорционально в разы меньше заказанных интервалов свечей.
Вы почему-то не любите слово индикатор. и называете его параметром.
----------------------
В действительности мы не знаем как реализован алгоритм вычисления свечей на сервере.
----------------------
Вы спросили:  То на сервер при SetUpdateCallback - идет по сути только один запрос по интервалу - "INTERVAL_TICK", а уже пришедшая цена с датой раскидывается по интервалу силами Квика ?
---------------------------
Так тоже  можно  сделать.
Например, если Вы считаете интервалы, которых нет в квике, то вы так и делаете.
-------------------------
Но если свечи рассчитывать в терминале, то начало таймов надо привязывать к атомным часам, иначе у Вас будут разные свечи на разных терминалах для одних и тех же интервалов.
--------------------------
В действительности свечи все одинаковые у всех брокеров.
А это означает, что их формирует сервер биржи.
-------------------------------
При этом Вам никто не гарантирует, что внутри свечи Вы получите все значения тиков.
Свеча является таковой только в момент ее закрытия.
Параметры открытой свечи передаются срезами.  
 
 
Цитата
nikolz написал:

Но если свечи рассчитывать в терминале, то начало таймов надо привязывать к атомным часам, иначе у Вас будут разные свечи на разных терминалах для одних и тех же интервалов.
Вроде бы не должно так быть.

Я просто рассчитываю свечи именно таким образом. А дату и время беру из пришедшего Тика.
 
Цитата
Quikos_1 написал:
Цитата
nikolz написал:

Но если свечи рассчитывать в терминале, то начало таймов надо привязывать к атомным часам, иначе у Вас будут разные свечи на разных терминалах для одних и тех же интервалов.
Вроде бы не должно так быть.

Я просто рассчитываю свечи именно таким образом. А дату и время беру из пришедшего Тика.

так как Вы считаете для себя, то можно считать как Вам удобно.
Но результаты у вас будут иные чем рассчитанные как надо.
Особенно Вы будете ошибаться  на не ликвидных инструментах.
Кроме того, как вы решаете вопрос обнаружение попущенных интервалов, если у вас просто нет никаких тиков?
 
я тоже делал расчет свечей по таблицам обезличенных сделок.
Для этой цели и чтобы тестировать запаздывание данных относительно времени сделок на бирже я синхронизирую компьютер с сервером точного времени ,
что обеспечивает погрешность относительно биржи в пределах 10 мs
 
Цитата
nikolz написал:

Кроме того, как вы решаете вопрос обнаружение попущенных интервалов, если у вас просто нет никаких тиков?
Сначала я загружаю в память свечи или с дика, то есть сохраненную историю или загружаю доступные на сервере через CreateDataSource, и после этого складирую пришедшие Тики в этот предварительно загруженный массив.
Теоретически пропущенных интервалов быть не должно.
 
Цитата
nikolz написал:
я тоже делал расчет свечей по таблицам обезличенных сделок.
Для этой цели и чтобы тестировать запаздывание данных относительно времени сделок на бирже я синхронизирую компьютер с сервером точного времени ,
что обеспечивает погрешность относительно биржи в пределах 10 мs
Не понимаю зачем синхронизировать ? Если Вам приходит тик с конкретной датой и временем вплоть до секунды - просто складируейте его в минутную, трехминутную, 5-и мутную и так далее Свечу и все.
Или я что то не правильно понимаю.
 
Цитата
Quikos_1 написал:
Цитата
nikolz написал:
я тоже делал расчет свечей по таблицам обезличенных сделок.
Для этой цели и чтобы тестировать запаздывание данных относительно времени сделок на бирже я синхронизирую компьютер с сервером точного времени ,
что обеспечивает погрешность относительно биржи в пределах 10 мs
Не понимаю зачем синхронизировать ? Если Вам приходит тик с конкретной датой и временем вплоть до секунды - просто складируейте его в минутную, трехминутную, 5-и мутную и так далее Свечу и все.
Или я что то не правильно понимаю.
.Для погрешности в секунды синхронизация не требуется так как комп эту синхронизацию обеспечивает.
-----------------
Зачем Вы считать то, что уже посчитано.
Более того свеча 1 минуту имеет всего 5 отсчетов, при этом для ликвидного инструмента Вам надо обработать примерно 1000 тиков.
Т е сжатие будет в 200 раз.
 
Вы пытаетесь и свечи использовать и тики .
Это винегрет какой-то.
Вы уж определитесь на каком горизонте Вы делаете прогноз для торговли.
 
и еще,  знать точное время нужно для того, чтобы определить как долго к вам шел очередной тик.
 
Quikos_1,
Хочу пояснить,
сжатие данных их тиков в свечи мы делаем не для того чтобы меньше передавать с сервера данных,
а для того, чтобы делать прогноз движения рынка.
-----------------------
Поэтому , если мощности компа хватает можете считать свечи сами из тиков, а если нет желания считать можно получать их с сервера биржи.
-----------------
прикол лишь в том, что сервер на бирже раньше вас рассчитает свечи и пришлет их Вам.  
 
Цитата
nikolz написал:
Quikos_1 ,
Хочу пояснить,
сжатие данных их тиков в свечи мы делаем не для того чтобы меньше передавать с сервера данных,
а для того, чтобы делать прогноз движения рынка.
-----------------------
Поэтому , если мощности компа хватает можете считать свечи сами из тиков, а если нет желания считать можно получать их с сервера биржи.
-----------------
прикол лишь в том, что сервер на бирже раньше вас рассчитает свечи и пришлет их Вам.  

Для анализа я использую свечи с интервалами. Но сами интервалы формирую из тиков.
И когда я это делал, я руководствовался именно предположением о производительности, то есть, чтобы снизить поток по сути одни и тех же данных Инструмента, но по разным свечным интервалом, но теперь я задумался, а нужно ли мне было так делать и не переделать бы. Вот поэтому и решил уточнить.
 
мое мнение, если устраивают интервалы сервера биржи, то не надо вычислять свечи.
-------------------
в качестве бесплатного совета.
Если торгуете каким то заранее заданным инструментом (например сбербанком или газпромом и т д) и открываете для них графики
то проще всего делать робота как индикатор, а не как скрипт.  
Будет и быстро и просто .  
Страницы: 1
Читают тему
Наверх