нет (Автор тем)

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

Страницы: 1
Код класса для получения котировок с СПБ - биржи
 
Подскажите, пожалуйста, какой код класса нужно использовать для получения котировок с СПБ-биржи.

Для сбера использую команду - CreateDataSource(,security,interval)

а какой код класса прописать, например для компании FedEx?

CreateDataSource(????????????????','FDX',INTERVAL_1H)
Оптимизация быстродействия
 
Добрый день.
Уточните, пожалуйста, пару моментов:
  • можно ли ограничить количество последних свечей, получаемых из функции createDataSource. Мне не нужны все свечи тянуть оттуда, достаточно 100 последних свечей?
  • можно ли после вызова createDataSource в полученном ds оставить 100 последних свечей?
  • можно ли как-то кешировать результат работы RSI? Например, я просчитал RSI для всех свечей из ds, а потом хочу через каждую минуту получать RSI только для последней, не производя вычисления для предыдущих свечей?
Получить архив котировок без открытия графика
 
Добрый день.
Использую следующий код (просто скопировал из документации и поменял кода и акцию в 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
Страницы: 1
Наверх