Перестали скачиваться тиковые данные

Страницы: 1
RSS
Перестали скачиваться тиковые данные
 
Сегодня обновил квик до версии 8.8.4.3 , перестали скачиваться тиковые данные.

Скрипт
--
local ldsa={}
local error_desc=""
ldsa,error_desc = CreateDataSource(p_classcode, p_seccode, INTERVAL_TICK)
while not ldsa or ldsa:Size()==0 do
sleep(10000)
message("ожидание данных")
if error_desc ~= nil and error_desc ~= "" then
message(p_classcode.."/"..p_seccode.."/".."Source2 error ==>" .. error_desc)
end
end
message("получено "..tostring(ldsa:Size()))
--
висит в "ожидание данных".

Что за .....? Что-то добавили в настройки?
 
С "INTERVAL_D1" все работает как надо.
 
Перезапуск терминала не помогал. Скрипт получил данные только после того как я вручную толкнул кнопку "Получить заново данные по обезличенным сделкам" в меню "Заказ данных".
 
Не замечал такой проблемы на этой версии.
Единственное что, я не останавливаю поток через sleep.
После заказа идет возврат в main и периодически проверяется все ли данные загружены. Приходят долго, но приходят.
 
Да тут слип только для отладки, что бы message() слишком часто не мелькал.
 
Up

Коллеги, получилось ли решить проблему с тиковыми данными?
Версия QUIK та же 8.8.4.3

Код
===================
-- Открытие источника данных со свечами
ds, error_desc = CreateDataSource(CLASS_CODE, SEC_CODE, INTERVAL_TICK)
ds:SetEmptyCallback() -- Включение непрерывного получения данных с сервера

-- Количество попыток (секунд) ожидания получения данных от сервера
local try_count = 180
-- Пока не получены данные от сервера, либо пока не закончилось количество попыток (секунд)
while (error_desc == "" or error_desc == nil) and ds:Size() == 0 and try_count > 0 do
sleep(1000)
try_count = try_count - 1
end
====================

Висит все 180 секунд, в итоге ds:Size() = 0, ошибок нет. В меню "Заказ данных"/"Поток обезличенных сделок..." все галки остаются сняты.

Если перед этим вручную в терминале открыть таблицу обезличенных сделок, то ds открывается моментально, и все данные есть.
 
Дополнение:
Если заранее просто поставить галку для инструмента в "Заказ данных"/"Поток обезличенных сделок...", то все равно скрипт не открывает DS. А после окончания работы скрипта галка оказывается снята!
 
Александр, добрый день!

У себя подобной проблемы не наблюдаем.
Рекомендуем выполнить обновление терминала до актуальной версии (8.12). Сделать это можно одним из следующих способов:
 - включить настройку Система/Настройки/Основные настройки/Программа - "Проверять наличие обновлений"
 - запросить новую версию у Вашего брокера если программа не обновится самостоятельно
 - если брокер не сможет предоставить нужную версию, скачать ее с нашего ftp:
      ftp://ftp.quik.ru/public/updates/8.12/quik_8.12.0_upd.zip
В последнем случае, необходимо будет закрыть QUIK, сделать резервную копию папки, где он находится и скопировать все содержимое архива в первоначальную папку с подтверждением замены всех файлов.

Если проблема сохранится, просим сообщить.
 
Разобрался. Делюсь ценным знанием.
Для начала обновил QUIK на 8.12, но это не было причиной.

Указанный код действительно открывает источник данных по обезличенным сделкам.
При этом вначале он берет текущие данные из локального терминала. Если до этого момента терминал не получал данных по обезличенным сделкам, то действительно сначала ds:Size() == 0.

А затем самое интересное.
Если этот код стоит в OnInit как у меня, DS никаких новых данных с сервера не получает. Если был размером 0, так и останется 0. Если был размером 100, так и останется 100. Никакой SetEmptyCallback() на это не влияет.
Реально новые данные с сервера начинают поступать только с момента окончания OnInit и перехода в main().

Спасибо, тема закрыта
Страницы: 1
Читают тему
Наверх