Теоретическая разница получения данных CreateDataSource+SetUpdateCallback или getNumCandles()+getCandlesByIndex()

Страницы: 1
RSS
Теоретическая разница получения данных CreateDataSource+SetUpdateCallback или getNumCandles()+getCandlesByIndex(), В чем разница получения данных 1 способом и 2 способом
 
Добрый вечер

Собственно вопрос в теме.
Интересует разница в полученных данных разными способами.

Спасибо
 
Первым получаем данные без открытия графика, вторым - считываем только данные открытого графика
 
Разница в следующем:
------------------------------------
CreateDataSource+SetUpdateCallback  -  получаем данный в момент прихода их с сервера, т е до помещения в хранилище в терминале.
т е один раз, в момент поступления в терминал.
------------------------------------------
getNumCandles()+getCandlesByIndex() - читаем данные из хранилища. Сколько угодно раз после поступления в хранилище терминала.
 
Цитата
Николай Камынин написал:
CreateDataSource+SetUpdateCallback  -  получаем данный в момент прихода их с сервера, т е до помещения в хранилище в терминале.
в этом я сильно сомневаюсь. Всё, что сыпется с сервера - сериализуется на жёстком диске.
 
Цитата
Николай Камынин написал:
CreateDataSource+SetUpdateCallback  -  получаем данный в момент прихода их с сервера,
Т.е если таймфрейм установлен в 3 минуты - то получение данных ~ 1 раз в 3 минуты, т.е. объективную информацию по последней свечке(текущей) мы не знаем, знаем только по предпоследней?
 
Цитата
тот самый написал:
Цитата
Николай  Камынин   написал:
CreateDataSource+SetUpdateCallback  -  получаем данный в момент прихода их с сервера, т е до помещения в хранилище в терминале.
в этом я сильно сомневаюсь. Всё, что сыпется с сервера - сериализуется на жёстком диске.
Практически было установлено, что сначала вызывается колбэк в момент получения данных, и лишь затем эти данные сбрасываются в хранилище на диске.

Цитата
Владимир Б****ов написал:
Т.е если таймфрейм установлен в 3 минуты - то получение данных ~ 1 раз в 3 минуты
Нет, в течение 3-х минут свеча может обновиться несколько раз. В этом вы можете убедиться просто понаблюдав за последней свечой на 3-минутном графике.  И на каждое изменение вы будете получать колбэк.
Надо делать так, как надо. А как не надо - делать не надо.
 
При создании ds в создателе/конструкторе указывается временной интервал графика INTERVAL_M1
ds1 = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1, "last")
Это меня немножко запутало, я посчитал, что это интервал передачи данных, а на самом деле формирование свечей по времени - каждая свеча - INTERVAL_M1.
Теоретически, по времени, есть разница между колбэком и таймером (sleep()), а практически разница заметна? может кто проводил измерения/исследования?
Какой вариант предпочтительней: SetUpdateCallback или sleep()+getNumCandles()+getCandlesByIndex()?
Возможно SetUpdateCallback при не сильно нагруженных вычислениях/обработке будет меньше грузить машину и будет грузить только по существу?
 
Цитата
Владимир Б****ов написал:
Цитата
Николай  Камынин   написал:
CreateDataSource+SetUpdateCallback  -  получаем данный в момент прихода их с сервера,
Т.е если таймфрейм установлен в 3 минуты - то получение данных ~ 1 раз в 3 минуты, т.е. объективную информацию по последней свечке(текущей) мы не знаем, знаем только по предпоследней?
нет не так.
Будут приходить тики, которые отображаются как close не закрытой свечи.
Т е фактически вне зависимости от тайма Вы будете получать тики.
 
но так как время свечи не меняется, то новое значение запишется на место close открытой свечи по данному тайму.
 
Цитата
Владимир Б****ов написал:
Возможно SetUpdateCallback при не сильно нагруженных вычислениях/обработке будет меньше грузить машину и будет грузить только по существу?
от задачи зависит,вашу задачу никто не знает
 
Цитата
Владимир Б****ов написал:
Теоретически, по времени, есть разница между колбэком и таймером (sleep()), а практически разница заметна? может кто проводил измерения/исследования?
колбек и sleep() - это две большие разницы.
колбек - это функция LUA , которую вызывает терминал QUIK для обработки события.
sleep() - это остановка исполнения потока(процесса) и досрочное освобождение процессора.
 
оффтоп, тест
Страницы: 1
Читают тему
Наверх