Здравствуйте.
Есть скрипт
Код |
---|
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