Получить архив котировок без открытия графика

Страницы: 1
RSS
Получить архив котировок без открытия графика
 
Добрый день.
Использую следующий код (просто скопировал из документации и поменял кода и акцию в CreateDataSource), но ничего не работает.
Уточню, что данные пытаюсь получить без открытия данных.

У меня несколько вопросов:
  • что не так в коде?
  • где можно посмотреть список кодов, например, TQBR
Код
-- ѕример получени¤ первой свечи текущего дн¤
function main()
   -- —оздаем таблицу со всеми свечами нужного интервала, класса и кода
   ds, error_desc = CreateDataSource("TQBR", "FDX", INTERVAL_H1)
   -- ќграничиваем количество попыток (времени) ожидани¤ получени¤ данных от сервера
   local try_count = 0
   
   -- ∆дем пока не получим данные от сервера,
   --   либо пока не закончитс¤ врем¤ ожидани¤ (количество попыток)
   while ds:Size() == 0 and try_count < 100 do
      sleep(100)
      try_count = try_count + 1
   end
   -- ≈сли от сервера пришла ошибка, то выведем ее и прервем выполнение
   if ds:Size() == 0 or error_desc ~= nil and error_desc ~= "" then
      message("ќшибка получени¤ таблицы свечей:")
      return 0
   end
   
   -- “екущий день мес¤ца (1 - 31)
   local today_day = tonumber(os.date("%d"))
   -- “екуща¤ свеча (с которой начинаем поиск)
   local current_candle = ds:Size()
   -- ћаксимальное количество свечей дл¤ поиска
   --   не может быть больше чем общее количество свечей в таблице
   local max_candles = math.min(1000, ds:Size())
   -- »ндекс первой свечи текущего дн¤
   local first_candle_index = nil
   
   -- ÷икл пока не нашли первую свечу дн¤ либо не проверили
   --   максимальное количество свечей
   while first_candle_index == nil and current_candle > ds:Size() - max_candles do
      -- ≈сли день текущей свечи не совпадает с текущим днем
      if tonumber(ds:T(current_candle).day) ~= today_day then
         -- “огда индекс искомой свечи
         first_candle_index = current_candle - 1
         message("Ќайден индекс: " .. tostring(first_candle_index))
      end
      
      current_candle = current_candle - 1
   end
   
   -- ≈сли индекс был найден
   if first_candle_index ~= nil then
      message("ѕерва¤ свеча дн¤:")
      message("      индекс: " .. tostring(current_candle))
      message("      врем¤: " .. tostring(ds:T(current_candle).hour) .. ":" .. tostring(ds:T(current_candle).min) .. ":" .. tostring(ds:T(current_candle).sec))
      message("ѕоследн¤¤ свеча предыдущего дн¤:")
      message("      индекс: " .. tostring(current_candle - 1))
      message("      врем¤: " .. tostring(ds:T(current_candle - 1).hour) .. ":" .. tostring(ds:T(current_candle - 1).min) .. ":" .. tostring(ds:T(current_candle - 1).sec))
   -- ≈сли индекс найти не удалось
   else
      message("ѕерва¤ свеча дн¤ не найдена. Ќе достаточно свечей дл¤ поиска (" .. tostring(ds:Size()) .. ").")
      message("—ама¤ дальн¤¤ свеча:")
      message("      индекс: " .. tostring(1))
      message("      врем¤: " .. tostring(ds:T(1).hour) .. ":" .. tostring(ds:T(1).min) .. ":" .. tostring(ds:T(1).sec))
   end
end
 
Цитата
нет написал:
что не так в коде?
надо добавить подписку на колбек, через функцию SetUpdateCallback или SetEmptyCallback

Цитата
нет написал:
где можно посмотреть список кодов, например, TQBR
список кодов чего?
если классов то его вернет функция getClassesList
если инструментов то функция getClassSecurities
Страницы: 1
Читают тему
Наверх