1

Тема: Функции getLinesCount и getNumCandles возвращают nil

Всем доброго дня. Поискал поиском, но ничего не нашел. Вопрос вот в чем. Мне надо в скрипте на LUA использовать функции getLinesCount и getNumCandles. Вобщем открываю нужные мне индикаторы, например RSI, как положено присваиваю ему уникальный идентификатор и из скрипта пытаюсь получить количество линий и свечей.
[url]https://disk.yandex.ru/i/LGz_brbsxj7nEw[/url] скрин идентификатора.

https://i.yapx.ru/TSANA.png

Обе функции возвращают значение nil... Все значения вывожу в тестовую таблицу. При этом все остальные значения отображаются корректно. Что я делаю не так? Опять же получение занимает некоторое время, именно поэтому для теста все сделал в бесконечном цикле. Позже это все перенесется в коллбэки.

while not stopped do 
      ds, Error = CreateDataSource (CLASS, SEC, INTERVAL_M5);
      local count = getLinesCount(ischBB)
      local num   = getNumCandles(ischBB)
      SetCell(t.t_id, row, 1, NAME)
      SetCell(t.t_id, row, 2, tostring (PRICE_STEP),2)
      SetCell(t.t_id, row, 3, tostring (PRICE_SCALE))
      SetCell(t.t_id, row, 4, tostring (count))
      SetCell(t.t_id, row, 5, tostring (num))
      SetCell(t.t_id, row, 6, tostring (ds:Size()))
      sleep(1000)
   end

Как я понял из руководства по LUA функция CreateDataSource вышеупомянутым функциям вообще не нужна. Тем не менее даже из нее тестовый вывод работает. Но как я понял именно CreateDataSource работает исключительно с Price для выбранного инструмента. А если работать с графиками индикаторов нужна getCandlesByIndex?

2

Re: Функции getLinesCount и getNumCandles возвращают nil

В коде ischBB возьмите в кавычки:

     local count = getLinesCount("ischBB")
     local num   = getNumCandles("ischBB")

Иначе получается, что вы в getLinesCount() передаете значение переменной ischBB, которой, конечно, нет.

3

Re: Функции getLinesCount и getNumCandles возвращают nil

А слона то я и не заметил, спасибо. Делал все по примерам, тут tag вроде как идентификатор, а вроде как и нет... А тут уже мог бы и заметить [url]https://luaq.ru/getLinesCount.html[/url] что сначала переменной присваивается строка и только потом строка в переменной передается как идентификатор. Вобщем поправил, в таблице появились нулевые значения, но время не торговое, думаю все будет нормально когда торги начнутся.