Коллеги!
Есть два варианта как получать данные в квике в рамках луа-скриптов.
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 и строй свечи сам. Ну понятно лучше задублировать потоки и мерджить дату с двух квиков от разных брокеров
ByteDog — нейросеть от Positive Technologies для поиска вирусов
Мы разработали собственную нейросеть, которая находит вирусы на 20% точнее, чем классические модели машинного обучения.
Она построена на архитектуре трансформеров — той же, что используют...
ЮМГ МСФО 2025 г. - чистая денежная позиция превратилась в чистый долг
Компания Юнайтед медикал групп опубликовала финансовые результаты за 2025 год. Выручка компании за год выросла на 14,1% до 289,5 млн евро. В рублях рост составил +9,8% до 27,3 млрд руб. Во 2-м...
X5 операционные результаты 1 кв. 2026 г. - рост выручки ниже прогноза
X5 опубликовала операционные результаты за 1 квартал 2026 года. Выручка выросла на 11,3% до 1,19 трлн рублей. Сопоставимая выручка прибавила 6,1% при росте среднего чека на 7,9% и падении...
Никита Архипов, в понедельник можно на премаркете сразу поставить на планку максимального спреда в минус 10 от цены закрытия пятничного.
А, извиняюсь, сейчас новые правила — утренняя сессия према...
Ольга Тимченко, зачем вы тут? Если вы слушаете откровенно глупых людей которые вам обещают и выдумывают свою правду про сбер игнорируя цифры. Есть отчеты, есть цифры, опираться надо на них. Ведь вы...
Американские военные готовятся в ближайшие дни взять на абордаж нефтяные танкеры, связанные с Ираном, и захватить коммерческие суда в международных водах, сообщает WSJ со ссылкой на неназванных официа...
Сплошные "трансы" на рынке! Дефолт Сибавтотранс. Сегежа уже еле дышит?
Ну что, я пессимиздил не зря, начиная с 2023 года. Постоянно предупреждал в разборах рыночной ситуации, что волна де...
Отчет предварительный уже рассказывали топы. Там в целом все неплохо. Для 2025 года. Все уже в цене давно.
А в этом году будет оживление рынка+ переформатирование под коммерческую недвижимость. Плюс...
RADvam, нет… вчера несколько сильных проливов было, на малом тайминге глянь че они делали… но опять же — на ЗАЯВЛЕНИЯХ )))) их сколько уже было )))) ничего там не изменилось, как все было заблокиро...
Alvin_, в том числе. Но в принципе про другое… Предприятие пошло на 21 год своей деятельности… а вот новоиспеченного инвестора зацепила цифра 16 человек от хрен пойми какого «блогера». Вы на картин...
Михаил, возможно, к оферте по акциям готовятся. не ИИР
Оферта на выкуп акций ПАО «ЕвроТранс»
Период акцепта: с 25 августа 2027 года по 27 августа 2027 года
Максимальное количество акций: 20 0...
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