Что делает SetEmptyCallback() ?

Страницы: 1
RSS
Что делает SetEmptyCallback() ?
 
Читаю описание функции SetEmptyCallback()
Цитата
Функция позволяет получать данные с сервера. Функция возвращает «true» в случае успешного завершения, иначе – «false».
Судя по описанию без нее новые данные не получишь.
Да и везде пишут, что при заказе надо делать так
Код
ds=CreateDataSource(class_code,sec_code,interval)
ds:SetEmptyCallback()

Итак. Вводные данные.
Выбираем инструмент который до этого не использовали, ну я выбрал "EuM1"
График инструмента не открываем, в заказе котировок указано "по выбранным классам" и данный инструмент не выбран, в папке archive файла с таким инструментам тоже нет.
Другими словами, QUIK пока еще никогда не получал данный инструмент.

Пишу простенький скриптик
Код
is_run=true
function main()
  ds=CreateDataSource("SPBFUT","EuM1",INTERVAL_M5)
--  ds:SetEmptyCallback()
  while(ds:Size()==0) do sleep(100) end
  while is_run do
    message("C="..ds:C(ds:Size()))
    sleep(1000)
  end
end
function OnStop()
  is_run=false
  return 100
end

...и он работает, данные обновляются.
Но почему данные обновляются?
Я же закомментил ds:SetEmptyCallback()

Всегда думал, что SetEmptyCallback() нужна для того чтобы поток данных обновлялся, но оказывается что нет.

Прошу знающих объяснить, зачем все таки нужна функция SetEmptyCallback()?
 
BlaZed, при умном заказе без этой функции получение новых данных определенно не работает, только из открытого графика.
 
Цитата
Артем написал:
BlaZed, при умном заказе без этой функции получение новых данных определенно не работает, только из открытого графика.
Проверил только что - работает даже при умном заказе при закрытом графике, потому и вопрос задал.
Просто возникло ощущение, что  SetEmptyCallback() стала не нужна.

QUIK если что 8.13.1.16
Страницы: 1
Читают тему (гостей: 1)
Наверх