Цитата |
---|
Sergey Gorokhov пишет:
Задача решается функцией CreateDataSource
Код |
---|
ds = CreateDataSource ( "SPBFUT" , "RIZ5" , INTERVAL_M5)
ds: SetEmptyCallback ()
sleep ( 100 ) --ждем прокачки информации
for i = 1 ,ds: Size () do
Open = ds:O(i)
High = ds:H(i)
Low = ds:L(i)
Close = ds:C(i)
Volume = ds:V(i)
--остальной код
end
ds: Close () |
|
Я бы решал эту задачу несколько иначе, примерно так:
---------------------------------
--эта часть кода должна быть вызвана один раз при установке связи с сервером:
ds = CreateDataSource ( "SPBFUT" , "RIZ5" , INTERVAL_M5)
ds: SetEmptyCallback ()
-----------------------------
--Далее в программе делаем так:
local size_now=ds:Size()
if size_old==nil or size_old>size_now then
Size_old=0;
Open,High,Low,Close,Volume={},{},{},{},{};
else
for i = size_old,size_now-1 do
local n=i+1;
Open[n] = ds: (i)
High[n] = ds:H(i)
Low[n] = ds:L(i)
Close[n] = ds:C(i)
Volume[n] = ds:V(i)
end
end
size_old=size_now
-- последней свечой в массивах Open,High,Low,Close,Volume будет всегда последняя полученная с сервера свеча
----------------------------------------