В функции OnInit, чтобы получить несколько свечей истории, выполняется следующий код:
| Код |
|---|
ds_sr, err = CreateDataSource(class, sr_sec, INTERVAL_H1)
if not ds_sr then message(err, 1) end
ds_sp, err = CreateDataSource(class, sp_sec, INTERVAL_H1)
if not ds_sp then message(err, 1) end
ds_sr : SetEmptyCallback()
ds_sp : SetEmptyCallback()
local i = 0
while (not(sz_sr and sz_sr and sz_sr > 0 and sz_sp > 0) and i < 30) do
sleep(1000)
sz_sr = ds_sr:Size()
sz_sp = ds_sp:Size()
i = i + 1
end
message("i = "..i, 1)
message("sz_sr, sz_sp = "..sz_sr..", "..sz_sp,1) |
По непонятной причине правильный размер истории выдается лишь при каждом втором запуске скрипта, а при остальных запусках переменные sz_sr и sz_sp имееют значение 0, несмотря на тридатисекундное ожидание правильного значения. В чем ошибка? Как гарантировать разумный Size при всех запусках?