Функция CreateDataSource

Страницы: 1
RSS
Функция CreateDataSource, Возможно ли получать данные с её помощью по любому инструменту не открывая его график?
 
Всех приветствую, подскажите с помощью функции CreateDataSource - возможно ли получать данные о свечах любых доступных торговых инструментов неоткрывая их график?
А проблема такова что я использовал данную функцию в скрипте и обнаружил что для того чтобы эта функция получала данные по инструменту его график должен быть открыт, если график неоткрыт то функция ничего не получает
В Система/Настройки/Основные настройки/Программа-получение данных
Сначала стояла опция - "Исходя из из настроек открытых пользователем таблиц"
Я ее переключил в - "С учетом настроек, выбранных через пункт меню "Система/Заказ данных/Поток котировок"
и поставил галочку "Обновлять все данные после расширения списка получаемых инструментов и параметров"
Там, допустим меня интересуют акции, включил фильтр инструментов и там добавил в список получаемых ценных бумаг все имеющиеся доступными акции
Но ничего не изменилось - CreateDataSource по прежнему получает данные с открытых графиков, даже терминал перезапустил - также не помогло, пробовал и Система/Заказ данных/Перезаказать данные, со всеми галочками, перезапустил терминал - ничего не изменилось
 
Добрый день,

Для получения данных через "CreateDataSource" необходимо, чтобы был открыт соответствующий график, либо чтобы был осуществлен их заказ через вызов функции ds:SetEmptyCallback().
Код
......
ds=CreateDataSource(Class_Code, Sec_Code, INTERVAL_M15) 
ds:SetEmptyCallback()
sleep(100)
......

 
Цитата
Stanislav Tvorogov написал:
Для получения данных через "CreateDataSource" необходимо, чтобы был открыт соответствующий график, либо чтобы был осуществлен их заказ через вызов функции ds:SetEmptyCallback().
Ага спасибо, и еще вот скажите пожалуйста -

ds=CreateDataSource(Class_Code, Sec_Code, INTERVAL_M15)
ds:SetEmptyCallback()
Создадут получение обновляющихся данных с сервера? Т.е. достаточно ли скажем эти строки для конкретного инструмента один раз в oninit( ) прописать и новые свечи по инструменту будут приходить или же надо эти две функции выполнять по новой для обновления данных?
 
Цитата
Stanislav Tvorogov написал:
ds=CreateDataSource(Class_Code, Sec_Code, INTERVAL_M15)
ds:SetEmptyCallback()
sleep(100)
Что то не работает - если график не открыт то все равно не получает так CreateDataSource данные по инструменту
 
Может быть потому что я на демо-счете?
 
Цитата
Анатолий написал:
Может быть потому что я на демо-счете?
когда вы вызываете crestedatasource,  происходит только запрос данных из терминала на сервер. Сами данные с сервера приходят позже. Вы наверняка хотите их видеть немедленно после createdatasource, но их ещё нет.

если у вас открыт график, то запрос был послан в момент открытия графика и данные уже успели приехать с сервера. Поэтому вы из видите сразу.

вывод. После createdatasource читать данные нужно не сразу а по мере их прихода в терминал
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Подниму тему, дабы не создавать новую.

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

Вот я отправил число 615 вместо интервала.

Get DataSource: SBER|QJSIM, интервал: 615
InitSec DS all bars: 2, last bar: 2019.12.03 10:15:00

Также возвращается и для 619. Это фича или все же баг. Я вполне ожидаю, что мне вернется ошибка, чтобы как-то отреагировать.
 
Здравствуйте, Nikolay.
При задании интервала отличного от констант, описанных в документации, поведение не детерминировано и результат может быть разным.
Рекомендуется использовать именно описанные в документации константы.
QUIK clients support
Страницы: 1
Читают тему
Наверх