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