Коллеги!
Есть два варианта как получать данные в квике в рамках луа-скриптов.
1. getCandlesByIndex
2. CreateDataSource
Первый вариант неудобен тем, что нужно держать открытыми графики и, если используются разные тф, то нужно держать больше открытых графиков. Всё это неудобно, когда меняются контракты и тд. Зато надёжно. Если ты графики создал, то источники создались и скрипты отработают.
Второй вариант неудобен тем, что не всегда источники данных создаются, нужно выжидать тайм-ауты и всякое такое.
Подскажите, какой из вариантов вы считаете наиболее правильным/оптимальным или какой используете сами?
Если накидаете пример кода как это используете, буду премного благодарен!
function main()
while IsRun do
sleep(1000)
for j= 1, 1 do
if IsWindowClosed(t_id) then --Если окно робота закрыто, то выключить робота
IsRun=false
break
end
— ========= КОНТРОЛЬ ВРЕМЕНИ СЕССИИ И СОЕДИНЕНИЯ С СЕРВЕРОМ
if isConnected()~=1 then
is=isConnected()
FIRSTRUN=0
break
end
— ========= ПЕРВЫЙ ЗАПУСК
if FIRSTRUN==0 then
ds15, error = CreateDataSource(CLASSCODE, INSTRUMENT, INTERVAL_M15)
if ds15 == nil or ds15:Size()<500 then
if error~=nil then
message('OHLC Si15: '..error,3)
else
message('OHLC Si15: error',3)
end
break
end
ds15: SetEmptyCallback()
FIRSTRUN=1
end
end --end FOR GLOBAL
end --end while
ds15:Close()
end --main
2. CreateDataSource этот вариант самый лучший, не было не разу чтобы не создало источник данных, если не создало значит его в квике нет. По таймаутам, да зависит от скорости интернета и нагружености сервера брокера сколько ждать когда придет график, поэтому я делаю подписку на график CreateDataSource за несколько минут до начала торгов этого вполне хватает, либо можно контролировать по времени в последней свече(загрузился график или нет) но способ не универсален для неликвида не подойдет.
зачем это все? лей таблицу обезличенных сделок в sql и строй свечи сам. Ну понятно лучше задублировать потоки и мерджить дату с двух квиков от разных брокеров
Снижение военной премии в нефти: что это меняет для доллара и G10
Во второй половине понедельника – начале вторники рынки активно пересматривают премию за худший сценарий на энергетическом рынке, что цепочкой вызывает изменения и в других классах активов. В...
«Дом.РФ» — интересный фининститут с потенциалом роста
Аналитики «Финама» добавили в покрытие бумаги «Дом.РФ». Эксперты положительно оценивают перспективы бизнеса эмитента, одного из ключевых игроков на жилищном рынке России. Ожидаемое...
12 марта Группа Ренессанс страхование опубликует МСФО за 2025 год
Напоминаем, что 12 марта 2026 года RENI опубликует МСФО Группы за 2025 год, а также проведет День инвестора, чтобы рассказать о ситуации на страховом рынке и планах компании на 2026 год....
Гендиректор Инарктики продал свои акции компании. Что это может значить?
Вечером в пятницу (6 марта ) вышел сущфакт о том, что Соснов Илья Геннадьевич, гендиректор Инарктики, продал свои акции компании. В нашем чате для годовых подписчиков возникли вопросы на эту...
jmongo,
Привёл скрин: там чётко выплата 15 5 26/ срез 20 апреля без всяких оговорок/
пришло СЕГОДНЯ в 12ч 50 мин
«Уведомляем Вас о корпоративном действии «Выплата дивидендов в виде денежных ...
Смешное заключается в том, что, если «фрактальность» действительно существует, то целью волны 3 будет….
1195*2.5=2 987,5
4420-2987=1 433
Не….
Точно не существует.
Поверить в то, что цен...
Интересные истории пишут, что кто-то умышленно вносил помехи в спутниковую навигацию, чтобы создать иллюзию начала движение через Ормуз. Технический арсенал нефтяных спекулянтов вышел на новый уровень...
Donbass
ловим еще одну волну роста по нефти на этой неделе.
Волну засады, а не роста. Если пендосы возьмут «иранский краник» под себя — цистерны выльют на пол, вместе с котировкой… Барыги ку...
🔌 ЭнергоТехСервис: мужики в касках просят денег. Стоит ли давать?
Эмитент на слуху у многих, я к нему тоже давно присматривался. И тут — раз, и новый выпуск: сбор заявок 12 марта, купон до 19%, ...
Будущее Газпрома...
Недавно Урсула Ф. заявила что она ошиблась с тем что в свое время отказались в ЕС от атомной энергетики. Ждем когда да нее дойдет, что они ошиблись с отказом от углеводородов из...
function main()
while IsRun do
sleep(1000)
for j= 1, 1 do
if IsWindowClosed(t_id) then --Если окно робота закрыто, то выключить робота
IsRun=false
break
end
— ========= КОНТРОЛЬ ВРЕМЕНИ СЕССИИ И СОЕДИНЕНИЯ С СЕРВЕРОМ
if isConnected()~=1 then
is=isConnected()
FIRSTRUN=0
break
end
— ========= ПЕРВЫЙ ЗАПУСК
if FIRSTRUN==0 then
ds15, error = CreateDataSource(CLASSCODE, INSTRUMENT, INTERVAL_M15)
if ds15 == nil or ds15:Size()<500 then
if error~=nil then
message('OHLC Si15: '..error,3)
else
message('OHLC Si15: error',3)
end
break
end
ds15: SetEmptyCallback()
FIRSTRUN=1
end
end --end FOR GLOBAL
end --end while
ds15:Close()
end --main
Надежней много раз.
Небольшой пример: luaq.ru/CreateDataSource.html