Частота срабатывания callback-функции для источника данных (CreateDataSource)

Страницы: 1
RSS
Частота срабатывания callback-функции для источника данных (CreateDataSource)
 
Вопрос в первую очередь к разработчикам.

На данный момент у меня в терминале QUIK стоит настройка "Запрашивать данные каждые 10 секунд". Это означает, что частота обновления данных в терминале составляет не менее, чем 1 пакет/ 10 сек.

Допустим, я создал источник данных при помощи функции CreateDataSource(class, sec, interval). Значение param у меня не задано - соответственно, формирование массива баров происходит на основании таблицы обезличенных сделок.
Вопрос: если сделки по выбранному инструменту происходят с частотой выше, чем 1 сделка / 10 сек. - допустим, по сделке раз в 3 секунды, как поведет себя терминал в плане вызова установленной callback-функции?
а) терминал будет получать данные от сервера QUIK с установленной частотой - т.е. 1 пакет / 10 секунд, - что означает приход за период 10 секунд одного пакета с суммированной информацией по 3 сделкам. И, соответственно, callback будет вызван тоже только 1 раз за 10 секунд;
б) терминал будет получать данные от сервера QUIK с той частотой, с которой на сервер с биржи приходят очередные записи о сделках по инструменту - т.е. в рассматриваемом примере терминал получит 3 пакета за период в 10 секунд и так же 3 раза произведет вызов callback-функции источника данных в моем скрипте.

Какой из указанных вариантов действий является верным? Если есть какие-то особенности или дополнения, прошу изложить.
 
Здравствуйте,
Цитата
Andrei2016 написал:
На данный момент у меня в терминале QUIK стоит настройка "Запрашивать данные каждые 10 секунд". Это означает, что частота обновления данных в терминале составляет не менее, чем 1 пакет/ 10 сек.
Указанная настройка не влияет на таблицу обезличенных сделок.
цитата из документации:

Цитата
«Запрашивать данные раз в … сек.» - данный признак позволяет отключить непрерывное получение данных для Таблицы текущих торгов. При включенном признаке информация в таблице обновляется периодически через установленный интервал, в секундах. Максимальный период обновления – 60 секунд. Признак включен по умолчанию. Значение по умолчанию: «1».
 
Sergey Gorokhov,

По поводу таблицы обезличенных сделок - ясно.
Переформулирую свой вопрос:
1. С какой частотой происходит вызов callback-функции для источника данных, открытого посредством CreateDataSource()?

а) Каждая новая запись с биржи о совершенной сделке приводит к изменению состояния текущего бара и вызову callback-функции; соответственно, частота вызова совпадает с частотой поступления сделок по выбранному инструменту.
б) Вызов происходит с некой фиксированной частотой, которая не зависит от частоты поступления сделок по инструменту: очередное изменение состояния бара может отражать суммирование данных за 2 сделки, а может агрегировать и 50 сделок, но доступными эти сведения становятся 1 раз в период N секунд,
в) Вызов происходит с переменной частотой, которая зависит от момента накопления очередной порции из N сделок, после чего происходит изменение состояния бара и вызов callback-функции: соответственно, вызов может произойти и уже через 3 секунды, а может лишь по прошествии 30 секунд.

Какой вариант ответа является верным? Если есть дополнения или уточнения, прошу изложить.

Дополнительный вопрос:
2. Возможно ли пользователю терминала регулировать частоту вызова callback-функции для источника данных, открытого посредством CreateDataSource()?
 
Цитата
Andrei2016 написал:
1. С какой частотой происходит вызов callback-функции для источника данных, открытого посредством CreateDataSource()?
С такой же с какой происходит поступление данных. т.е. а)

Цитата
Andrei2016 написал:
Дополнительный вопрос:
2. Возможно ли пользователю терминала регулировать частоту вызова callback-функции для источника данных, открытого посредством CreateDataSource()?

Именно для CreateDataSource такой настройки нет.
Есть общая настройка для для параметров таблицы текущих параметров, о чем Вы и говорили ранее.
 
Sergey Gorokhov,

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

3. В руководстве пользователя QLUA указано:
"param – необязательный параметр. Если параметр не задан, то заказываются данные на основании таблицы обезличенных сделок, если задан – данные по этому параметру."

В ситуации с таблицей обезличенных сделок механизм обновления состояния бара ясен - при поступлении очередной сделки по инструменту, т.е. при обновлении самой таблицы обезличенных сделок. Описание параметров таблицы обезличенных сделок в Руководстве также приводится. В таком случае возникают вопросы:
3.1. Необязательный параметр param - это один из параметров таблицы обезличенных сделок или же из какой-то другой таблицы?
3.2. В каких случаях имеет смысл пользоваться этим необязательным параметром?
 
Цитата
Andrei2016 написал:
3.1. Необязательный параметр param - это один из параметров таблицы обезличенных сделок или же из какой-то другой таблицы?

Это какой-либо параметр из таблицы текущих торгов по которому возможно построение графика.
Например по строковым данным график построить нельзя, что вполне логично. Значит и в CreateDataSource использовать этот параметр нельзя.
По числовым можно.

Цитата
Andrei2016 написал:
3.2. В каких случаях имеет смысл пользоваться этим необязательным параметром?
В тех случаях когда Вам нужны данные по графику построенному по какому-либо параметру из таблицы текущих торгов.
 
Sergey Gorokhov,

благодарю за ответ.
Если я правильно понимаю, то по умолчанию из таблицы обезличенных сделок берутся три параметра:
price, qty и datetime, где datetime и price являются основными, связанными с осями абсцисс и ординат графика, а параметр qty предоставляет дополнительную информацию об объеме.

Но вы сказали, что param берется из таблицы текущих торгов.
Правильно ли я понимаю, что из всего перечня параметров таблицы текущих торгов можно использовать для формирования источника данных через CreateDataSource() только те, которые имеют динамический характер на протяжении какого-либо интервала?
Если мы берем интервалы, меньшие чем 1 день, то, скорее всего, можно использовать следующие параметры:
numbids, numoffers, last, qty, value, yield, currentvalue, numcontracts, chngopen, chngclose, sellprofit, buyprofit, tradechange, strike, realvmprice, ichange, pchange. Так или нет?
 
Цитата
Andrei2016 написал:
Правильно ли я понимаю, что из всего перечня параметров таблицы текущих торгов можно использовать для формирования источника данных через CreateDataSource() только те, которые имеют динамический характер на протяжении какого-либо интервала?
На наш взгляд, ответ был вполне конкретным:
Цитата
Sergey Gorokhov написал:
Это какой-либо параметр из таблицы текущих торгов по которому возможно построение графика.
Если в терминале Вы можете построить по параметру график, то и в CreateDataSource сможете и интервал тут вообще не причем.
И в таблице куда больше параметров чем Вы перечислили.
Страницы: 1
Читают тему
Наверх