Добрый день.
Использую следующий код (просто скопировал из документации и поменял кода и акцию в 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
|