Сергей (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Повторная подписка на свечи через CreateDataSource не работает на версии 9.2.3.15
 
Здравствуйте!
Заметил что на указанной версии не работает повторная подписка на обновления свечей через 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

Страницы: 1
Наверх