То на сервер при SetUpdateCallback - идет по сути только один запрос по интервалу - "INTERVAL_TICK", а уже пришедшая цена с датой раскидывается по интервалу силами Квика ?
То на сервер при SetUpdateCallback - идет по сути только один запрос по интервалу - "INTERVAL_TICK", а уже пришедшая цена с датой раскидывается по интервалу силами Квика ?
Нет, на сервер идет запрос для каждого интервала, так как свечи формирует не терминал, а сервер. ------------------ Поток свечей на 1-2 порядка меньше, чем поток тиков.
То на сервер при SetUpdateCallback - идет по сути только один запрос по интервалу - "INTERVAL_TICK", а уже пришедшая цена с датой раскидывается по интервалу силами Квика ?
Нет, на сервер идет запрос для каждого интервала, так как свечи формирует не терминал, а сервер. ------------------ Поток свечей на 1-2 порядка меньше, чем поток тиков.
А как поток свечей может быть меньше - да еще и на порядок, если, TICK он один, а интервалов свечей несколько ? Если я выбираю дневную свечу - это же не значит - что колбек по ней будет вызываться один раз в день ? Он же будет вызываться ровно столько - сколько же и Тиковый интервал.
То на сервер при SetUpdateCallback - идет по сути только один запрос по интервалу - "INTERVAL_TICK", а уже пришедшая цена с датой раскидывается по интервалу силами Квика ?
Нет, на сервер идет запрос для каждого интервала, так как свечи формирует не терминал, а сервер. ------------------ Поток свечей на 1-2 порядка меньше, чем поток тиков.
А как поток свечей может быть меньше - да еще и на порядок, если, TICK он один, а интервалов свечей несколько ? Если я выбираю дневную свечу - это же не значит - что колбек по ней будет вызываться один раз в день ? Он же будет вызываться ровно столько - сколько же и Тиковый интервал.
Поясняю, следите за руками. Тик - это сделка. Свеча - это способ сжатия информации о сделках путем вычисления четырех индикаторов на заданном интервале времени. -------------------------------- Если текущая сделка изменила значение какого-либо индикатора, то сервер пошлет это значение терминалу. Предположим у нас тайм 1 час. 1 индикатор - это первый тик в текущем часе. - 1 значение на интервал. 2 индикатор - это максимальная цена сделки на текущем часе. Этот индикатор изменится лишь при превышении цены текущей сделки максимальной цены предыдущих. 3 индикатор -это минимальная цена сделки на текущем часе. 4 индикатор - это текущая цена сделки, если она отличается от цены предыдущей сделки. ================= Теперь рассмотрим случаи когда тики будут пропускаться без создания новых значений индикаторов. Вот некоторые из них. 1) Если в сделке участвует айсберг или большой пакет, то цена сделок не будет меняться, следовательно значения свечей тоже не меняются 2) Если сделки совершаются внутри тела текущей свечи, то изменяется лишь 1 индикатор при условии , что цена сделки меняется ================= В итоге количество значений в свечах всегда меньше, чем число сделок. ============== Вы можете это проверить сами. Для этого напишите вычисление свечей по тикам и посчитайте количество полученных данных.
То на сервер при SetUpdateCallback - идет по сути только один запрос по интервалу - "INTERVAL_TICK", а уже пришедшая цена с датой раскидывается по интервалу силами Квика ?
Нет, на сервер идет запрос для каждого интервала, так как свечи формирует не терминал, а сервер. ------------------ Поток свечей на 1-2 порядка меньше, чем поток тиков.
А как поток свечей может быть меньше - да еще и на порядок, если, TICK он один, а интервалов свечей несколько ? Если я выбираю дневную свечу - это же не значит - что колбек по ней будет вызываться один раз в день ? Он же будет вызываться ровно столько - сколько же и Тиковый интервал.
Поясняю, следите за руками. Тик - это сделка. Свеча - это способ сжатия информации о сделках путем вычисления четырех индикаторов на заданном интервале времени. -------------------------------- Если текущая сделка изменила значение какого-либо индикатора, то сервер пошлет это значение терминалу. Предположим у нас тайм 1 час. 1 индикатор - это первый тик в текущем часе. - 1 значение на интервал. 2 индикатор - это максимальная цена сделки на текущем часе. Этот индикатор изменится лишь при превышении цены текущей сделки максимальной цены предыдущих. 3 индикатор -это минимальная цена сделки на текущем часе. 4 индикатор - это текущая цена сделки, если она отличается от цены предыдущей сделки. ================= Теперь рассмотрим случаи когда тики будут пропускаться без создания новых значений индикаторов. Вот некоторые из них. 1) Если в сделке участвует айсберг или большой пакет, то цена сделок не будет меняться, следовательно значения свечей тоже не меняются 2) Если сделки совершаются внутри тела текущей свечи, то изменяется лишь 1 индикатор при условии , что цена сделки меняется ================= В итоге количество значений в свечах всегда меньше, чем число сделок. ============== Вы можете это проверить сами. Для этого напишите вычисление свечей по тикам и посчитайте количество полученных данных.
Давайте упростим ситуацию и у нас не будет индикаторов, а только свечной график.
Как Вы и написали - Тик это сделка.
У свечи есть такой параметр, как цена закрытия, которая постоянно меняется при совершении сделки - то есть с каждым Тиком.
НО цена сделки может не меняться, то есть несколько сделка прошли по одной и той же цене, НО в и этом случае - есть параметр Volume, который увеличивается с каждым Тиком в не зависимости от цена Тика.
На основании этого я могу сделать вывод, что поток Тиков будет пропорционально в разы меньше заказанных интервалов свечей.
Давайте упростим ситуацию и у нас не будет индикаторов, а только свечной график.
Как Вы и написали - Тик это сделка.
У свечи есть такой параметр, как цена закрытия, которая постоянно меняется при совершении сделки - то есть с каждым Тиком.
НО цена сделки может не меняться, то есть несколько сделка прошли по одной и той же цене, НО в и этом случае - есть параметр Volume, который увеличивается с каждым Тиком в не зависимости от цена Тика.
На основании этого я могу сделать вывод, что поток Тиков будет пропорционально в разы меньше заказанных интервалов свечей.
Вы почему-то не любите слово индикатор. и называете его параметром. ---------------------- В действительности мы не знаем как реализован алгоритм вычисления свечей на сервере. ---------------------- Вы спросили: То на сервер при SetUpdateCallback - идет по сути только один запрос по интервалу - "INTERVAL_TICK", а уже пришедшая цена с датой раскидывается по интервалу силами Квика ? --------------------------- Так тоже можно сделать. Например, если Вы считаете интервалы, которых нет в квике, то вы так и делаете. ------------------------- Но если свечи рассчитывать в терминале, то начало таймов надо привязывать к атомным часам, иначе у Вас будут разные свечи на разных терминалах для одних и тех же интервалов. -------------------------- В действительности свечи все одинаковые у всех брокеров. А это означает, что их формирует сервер биржи. ------------------------------- При этом Вам никто не гарантирует, что внутри свечи Вы получите все значения тиков. Свеча является таковой только в момент ее закрытия. Параметры открытой свечи передаются срезами.
Но если свечи рассчитывать в терминале, то начало таймов надо привязывать к атомным часам, иначе у Вас будут разные свечи на разных терминалах для одних и тех же интервалов.
Вроде бы не должно так быть.
Я просто рассчитываю свечи именно таким образом. А дату и время беру из пришедшего Тика.
Но если свечи рассчитывать в терминале, то начало таймов надо привязывать к атомным часам, иначе у Вас будут разные свечи на разных терминалах для одних и тех же интервалов.
Вроде бы не должно так быть.
Я просто рассчитываю свечи именно таким образом. А дату и время беру из пришедшего Тика.
так как Вы считаете для себя, то можно считать как Вам удобно. Но результаты у вас будут иные чем рассчитанные как надо. Особенно Вы будете ошибаться на не ликвидных инструментах. Кроме того, как вы решаете вопрос обнаружение попущенных интервалов, если у вас просто нет никаких тиков?
я тоже делал расчет свечей по таблицам обезличенных сделок. Для этой цели и чтобы тестировать запаздывание данных относительно времени сделок на бирже я синхронизирую компьютер с сервером точного времени , что обеспечивает погрешность относительно биржи в пределах 10 мs
Кроме того, как вы решаете вопрос обнаружение попущенных интервалов, если у вас просто нет никаких тиков?
Сначала я загружаю в память свечи или с дика, то есть сохраненную историю или загружаю доступные на сервере через CreateDataSource, и после этого складирую пришедшие Тики в этот предварительно загруженный массив. Теоретически пропущенных интервалов быть не должно.
nikolz написал: я тоже делал расчет свечей по таблицам обезличенных сделок. Для этой цели и чтобы тестировать запаздывание данных относительно времени сделок на бирже я синхронизирую компьютер с сервером точного времени , что обеспечивает погрешность относительно биржи в пределах 10 мs
Не понимаю зачем синхронизировать ? Если Вам приходит тик с конкретной датой и временем вплоть до секунды - просто складируейте его в минутную, трехминутную, 5-и мутную и так далее Свечу и все. Или я что то не правильно понимаю.
nikolz написал: я тоже делал расчет свечей по таблицам обезличенных сделок. Для этой цели и чтобы тестировать запаздывание данных относительно времени сделок на бирже я синхронизирую компьютер с сервером точного времени , что обеспечивает погрешность относительно биржи в пределах 10 мs
Не понимаю зачем синхронизировать ? Если Вам приходит тик с конкретной датой и временем вплоть до секунды - просто складируейте его в минутную, трехминутную, 5-и мутную и так далее Свечу и все. Или я что то не правильно понимаю.
.Для погрешности в секунды синхронизация не требуется так как комп эту синхронизацию обеспечивает. ----------------- Зачем Вы считать то, что уже посчитано. Более того свеча 1 минуту имеет всего 5 отсчетов, при этом для ликвидного инструмента Вам надо обработать примерно 1000 тиков. Т е сжатие будет в 200 раз.
Quikos_1, Хочу пояснить, сжатие данных их тиков в свечи мы делаем не для того чтобы меньше передавать с сервера данных, а для того, чтобы делать прогноз движения рынка. ----------------------- Поэтому , если мощности компа хватает можете считать свечи сами из тиков, а если нет желания считать можно получать их с сервера биржи. ----------------- прикол лишь в том, что сервер на бирже раньше вас рассчитает свечи и пришлет их Вам.
nikolz написал: Quikos_1 , Хочу пояснить, сжатие данных их тиков в свечи мы делаем не для того чтобы меньше передавать с сервера данных, а для того, чтобы делать прогноз движения рынка. ----------------------- Поэтому , если мощности компа хватает можете считать свечи сами из тиков, а если нет желания считать можно получать их с сервера биржи. ----------------- прикол лишь в том, что сервер на бирже раньше вас рассчитает свечи и пришлет их Вам.
Для анализа я использую свечи с интервалами. Но сами интервалы формирую из тиков. И когда я это делал, я руководствовался именно предположением о производительности, то есть, чтобы снизить поток по сути одни и тех же данных Инструмента, но по разным свечным интервалом, но теперь я задумался, а нужно ли мне было так делать и не переделать бы. Вот поэтому и решил уточнить.
мое мнение, если устраивают интервалы сервера биржи, то не надо вычислять свечи. ------------------- в качестве бесплатного совета. Если торгуете каким то заранее заданным инструментом (например сбербанком или газпромом и т д) и открываете для них графики то проще всего делать робота как индикатор, а не как скрипт. Будет и быстро и просто .