Здравствуйте!
Заметил что на указанной версии не работает повторная подписка на обновления свечей через CreateDataSource + SetUpdateCallback
Брокер ВТБ
Ниже код для воспроизведения.
Выполняеем подписку на свечи SiH2, ожидаем получения 10 обновлений, затем отписываемся, и через небольшую паузу снова подписываемся.
В первый раз свечи приходят.
Во второй раз никаких вызовов коллбэка не происходит.
Я что-то не так делаю?
Это известный баг?
Есть способы обхода?
Уже исправлено в какой-то версии?
Код |
---|
run = true
ds = nil
datacounter = 0
recreatecounter = 0
--<BODY
message("started.")
--BODY>
function OnStop()
run = false
end
function main()
createds()
while run do
sleep(1000)
message("running")
if recreatecounter >= 1 then
recreatecounter = recreatecounter + 1
if recreatecounter >= 3 then
recreatecounter = 0
createds()
end
end
end
end
function createds()
message("creating ds")
datacounter = 0
ds, err = CreateDataSource("SPBFUT", "SiH2", INTERVAL_M5)
if err ~= "" and err ~= nil then
message("CreateDataSource error: "..err)
end
message("CreateDataSource OK")
ds:SetUpdateCallback(mycb)
end
function mycb(index)
message('got data: idx=' .. index .. ", close=" .. ds:C(index));
datacounter = datacounter + 1
if datacounter >= 10 then
message('closing');
ds:Close()
ds = nil
recreatecounter = 1
end
end
|