Коллеги!
Есть два варианта как получать данные в квике в рамках луа-скриптов.
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 и строй свечи сам. Ну понятно лучше задублировать потоки и мерджить дату с двух квиков от разных брокеров
Производитель удобрений отчитался по МСФО за 2025 год Акрон (AKRN) ➡️ Инфо и показатели 🔶 Результаты за год — выручка: ₽237,6 млрд (+20% год к году); — EBITDA: ₽91,7 млрд...
Ставка падает, рубль слабеет — это новая экономическая реальность или временный эффект? Разбираем, что на самом деле происходит с бюджетом и почему курс валют обманчив. Пузырь в ИИ: кто окажется...
Акции RENI в списке ТОП-10 лучших дивидендных акций, по мнению УК ««ДОХОДЪ»
По сообщениям СМИ, акции Группы Ренессанс страхование (RENI) вошли в подборку Управляющей компании ««ДОХОДЪ» ТОП-10 лучших дивидендных акций с доходностью от 12% до 17,5% на ближайшие 12 месяцев....
X5 МСФО 2025 г. - капзатрат меньше, дивиденд больше?
Компания X5 опубликовала финансовые результаты за 2025 год. Выручка прибавила +18,8% до 4,6 трлн руб., в 4-м квартале рост на 14,9% до 1,24 трлн руб. Валовая прибыль за год выросла на +17,9%...
Donbass, в Китае вряд ли возможен «обвал» в принципе. Там такие масштабы экономики и, при этом, такая координация всех процессов властями, что резкие катастрофические изменения исключены.
Ремора,
Это было их шагом доброй воли, будет ли он в этом году, а если будет, то когда...
Какой бы не был хороший отчёт, будет выстрел вверх, а потом зальют на те же уровни. Так было уже много...
Prostak, да у него от любви до ненависти один твит, завтра скажет что иранский босс его с утра не поцеловал перед уходом на работу и снова начнутся скандалы.
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