Здравствуйте!
Заметил что на указанной версии не работает повторная подписка на обновления свечей через CreateDataSource + SetUpdateCallback
Брокер ВТБ
Ниже код для воспроизведения.
Выполняеем подписку на свечи SiH2, ожидаем получения 10 обновлений, затем отписываемся, и через небольшую паузу снова подписываемся.
В первый раз свечи приходят.
Во второй раз никаких вызовов коллбэка не происходит.
Я что-то не так делаю?
Это известный баг?
Есть способы обхода?
Уже исправлено в какой-то версии?
Заметил что на указанной версии не работает повторная подписка на обновления свечей через 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 |