CreateDataSource

Страницы: 1
RSS
CreateDataSource, перебор большого кол-ва источников данных
 
суть задачи состоит в том ,что нужно во множестве инструментов взять свечку(данные) из прошлого и обработать в цикле все инструменты беря по одной свече. И так нужно прошерстить всю историю.
Сейчас реализовано это так:

function main()
while is_run do
sleep(10000)   -- по сути это блок проверки на получение новых свечек через каждые 10сек
for i=1, кол-во новых свечек (глубина просмотра инструментов) do
for j=1, #mas do   -- mas массив инстркментов
f(класс, инст.mas[j] , время итой свечи, INTERVAL_H1)
end
end
end
end

function f(class, sec_code, time_b, INTERVAL_H1)
local close_b,oi=0,0
local ds_price=CreateDataSource(class, sec_code, INTERVAL_H1)
--ds_opt_price:SetEmptyCallback()
sleep(100)
local ds_oi=CreateDataSource(class, sec_code, INTERVAL_H1, "NUMCONTRACTS")
-- ds_oi:SetEmptyCallback()
sleep(100)

local time_candle=tostring(ds_price:T(1).year)..Chisla(ds_price:T(1).month)..Chisla(ds_price:T(1).day)..Chisla(ds_price:T(1).hour)..Chisla(ds_price:T(1).min).."00"

if tonumber(time_candle)>tonumber(time_b) then
-- свечей нет

else
for i=1 , tonumber(ds_price:Size()) do
time_candle=tostring(ds_price:T(i).year)..Chisla(ds_price:T(i).month)..Chisla(ds_price:T(i).day)..Chisla(ds_price:T(i).hour)..Chisla(ds_price:T(i).min).."00"
if tonumber(time_b)>=tonumber(time_candle) then
close_b=ds_price:C(i)
else
break
end
end

for i=1 , ds_oi:Size() do
time_candle=tostring(ds_oi:T(i).year)..Chisla(ds_oi:T(i).month)..Chisla(ds_oi:T(i).day)..Chisla(ds_oi:T(i).hour)..Chisla(ds_oi:T(i).min).."00"
if tonumber(time_b)>=tonumber(time_candle) then
oi=ds_oi:C(i)
else
break
end
end
end
ds_opt_price:Close()
ds_opt_oi:Close()

return close_b,oi
end


В массиве mas около 200 интсрументов и проходит около 10 свечек по всем инст. и через какое-то время Quik перестает обновлять котировки, стакан. Возникает ощущение ,что он в дисконнекте , но пишет ,что коннект есть.
Вопрос как получить предыдущие данные по большому кол-ву инст. и не положить Quik?
 
Всё задачу решил. Тему можно удалить и так много про CreateDataSource
Страницы: 1
Читают тему
Наверх