Дмитрий (Автор тем)

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

Страницы: 1
Не могу получить данные по некоторым фьючерсам функцией CreateDataSource
 
Здравствуйте.
Есть скрипт
Код
class_code = "SPBFUT"
--sec_code = "SiZ1"
sec_code = "GDZ1"

function main()
   ds, error_desc = CreateDataSource(class_code, sec_code, INTERVAL_M5)
   -- Ограничиваем количество попыток (времени) ожидания получения данных от сервера
   local try_count = 0
   -- Ждем пока не получим данные от сервера,
   --   либо пока не закончится время ожидания (количество попыток)
   while ds:Size() == 0 and try_count < 100 do
      sleep(100)
      try_count = try_count + 1
   end
   -- Если от сервера пришла ошибка, то выведем ее и прервем выполнение
   if error_desc ~= nil and error_desc ~= "" then
      message("Ошибка получения таблицы свечей:" .. error_desc)
      return 0
   end

   local index = 0
   local str

   while index <= ds:Size()-1 do
      str = string.format("%d,%d,%d,%d",ds:O(index), ds:H(index), ds:L(index), ds:C(index))
      index = index + 1
   end
end

В котором я хочу получить значения OHLC для каждого бара через запятую (скрипт урезан, чтобы не загромождать код)
Скрипт работает для инструмента Si-12.21 (SiZ1), но не работает для GOLD-12.21 (GDZ1).
Выдает ошибку:
bad argument #2 to 'format' (number has no integer representation)
в строке str = string.format(......

Пробовал на разных фьючерсах. На RTS и MOEX работает, а на SILV нет.

В чём может быть проблема? Как мне получить значения для баров фьючерсов на золото?

Кстати время для GDZ1 я получаю нормально.
str = string.format("%02d:%02d:%02d", ds:T(index).hour, ds:T(index).min, ds:T(index).sec)
Даёт правильное время

Квик версии 8.13.1.16
Windows10
Страницы: 1
Наверх