И снова CreateDataSource

Страницы: 1
RSS
И снова CreateDataSource
 
Заранее прошу прощения за вероятно избитую тему с CreateDataSource, но огромная просьба помочь разобраться новичку.

Нужно в течении всего дня постоянно получать данные по свечам. Где-то раньше читал, что не требуется при этом повторно вызывать CreateDataSource, а можно просто обращаться к его функциям (т.е., ds:C(index)).
Или же все таки требуется? Или для того, чтобы не обращаться должен быть настроен какой-то колбек. Но пишут SetEmptyCallback уже бесполезен, SetUpdateCallback не работает с 2021 года. Т.е. нужно каждый раз в бесконечном цикле вызывать CreateDataSource?
Или все таки не нужно? А если бумаг будет 200?
 
СreateDataSource после создания сам обновляется.
Там была фича, что его сделали асинхронным, т.е. момент получения данных lua не контролирует, поэтому цикл ожидания лучше делать.
 
Тогда все же вопрос разработчику с отсылкой к документации, которая размещена на сайте.
А именно речь про  SetUpdateCallback, SetEmptyCallback, эти функции работают? Не знаю правильно ли понимаю, но понимаю так, что   если эти функции работают, то однажды вызвав CreateDataSource он обновляется без его повторного вызова или это не так?

Пример: после вызова ds2 = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1) будет ли через минуту в ds2 новая свеча, через 5 минут 5 новых свечей или нет? Или чтобы они там появились надо снова выполнить вызов CreateDataSource? Или же эти методы обновляют только последнюю незакрытую свечу, которая уже оказалась в наборе с первым вызовом или вообще ничего не обновляется?
 
Забыл уточнить, 11 версия Quik
 
Я в 2021 году про SetEmptyCallback спрашивал
Эта функция не актуальна, CreateDataSource прекрасно работает и без нее
Код
ds2 = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1)
вызывается один раз, после чего можно будет обращаться к ds2, там  будут актуальные данные по свечам

Веточку почитайте https://forum.quik.ru/forum10/topic6449/
там и пример найдете
 
Тогда еще один вопрос, пожалуйста.

Создан источник данных ds2 = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1), данные получены, обновляются.
Через 10 минут происходит разрыв соединения.
Еще через 10 минут соединение восстанавливается.
Вопрос: данные в ds2 продолжат поступать или для этого нужно снова вызвать ds2 = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1)?
 
Acaw,  Вы поймите, ds2 это  не место хранения данных, это таблица методов получения этих данных. ds2 = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M1) это подписка на получение данных по коду класса по коду тикера и определённому тайм фрейму. Сами данные на сервере и обновляются не зависимо от Вашего подключения.
 
Не совсем понимаю с практической точки зрения, т.к. ds2 может и то, что Вы пишите, но и место хранения данных тоже, т.к. туда же пишутся заказанные данные и обращаясь к ds2 эти данные можно читать.
Вопрос связан с тем, что нужно ли повторно заказывать данные в ds2 если связь рвется, не закрывается ли при этом ds2, не рвется ли эта связь ds2 с сервером.
 
Вы просто выведите таблицу ds2  и посмотрите что получите. А там будут методы и служебная информация.   Функции для получения значений по индексу и дополнительному параметру. Так что не хранит ничего кроме этих методов. Если Ваш код подписку не закрывает, то и пере подписываться не нужно.
Страницы: 1
Читают тему
Наверх