Алексей (Автор тем)

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

Страницы: 1
Функции getLinesCount и getNumCandles возвращают nil
 
Всем доброго дня. Поискал поиском, но ничего не нашел. Вопрос вот в чем. Мне надо в скрипте на LUA использовать функции getLinesCount и getNumCandles. Вобщем открываю нужные мне индикаторы, например RSI, как положено присваиваю ему уникальный идентификатор и из скрипта пытаюсь получить количество линий и свечей. Обе функции возвращают значение nil... Все значения вывожу в тестовую таблицу. При этом все остальные значения отображаются корректно. Что я делаю не так? Опять же получение занимает некоторое время, именно поэтому для теста все сделал в бесконечном цикле. Позже это все перенесется в коллбэки.
Как я понял из руководства по LUA функция CreateDataSource вышеупомянутым функциям вообще не нужна. Тем не менее даже из нее тестовый вывод работает. Но как я понял именно CreateDataSource работает исключительно с Price для выбранного инструмента. А если работать с графиками индикаторов нужна getCandlesByIndex?
Код
   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
Получить строки таблицы Текущие торги.
 
Всем доброго времени суток. Есть такой вопрос. В терминале Quik есть таблица "Текущие торги #2". Создана прямо из оболочки Создать таблицу -> Текущие торги. В этой таблице находится весь список инструментов меня интересующих. Задача. Могу ли я получить из этой таблицы как минимум class_code и sec_code по каждому инструменту из этой таблицы? Или это в принципе невозможно? Зная идентификатор таблицы я думаю можно без проблем проделать такой фокус, но я его не знаю и понятия не имею где его достать.
OnTransReply возвращает order_num = nil
 

Здравствуйте. Только начал знакомится со скриптами Lua в Quik. Возникла проблема. Если вкратце, отправляю заявку sendTransaction с необходимыми параметрами. В терминале вижу, что заявка принята и отображается как активная, OnTransReply возвращает status = 3, trans_id ровно тот что и присваивал при отправке заявки. Все прекрасно ровно до тех пор, пока мне не понадобится, например, снять заявку. Начинаются чудеса какие-то. Параметр order_num = nil, но в терминале то в таблице заявок я прекрасно вижу эти номера. Почитав документацию, там некоторые параметры, помеченные звездочкой,

* – параметр может иметь значение nil

НО! Интересует, при каких же условиях они будут возвращаться как nil? Ни слова об этом в документации.
Опять же таки, как поступить если нужен order_num?
1. Обрабатывать OnTransReply только на status?
2. Обрабатывать коллбэк OnOrder? Опять же таки я не нашел в документации ни слова о том при каком условии он вызывается? Только при условии что trans_reply.status = 3 или вообще при любой попытке отправить заявку, даже неудачной? В первом случае получив и обработав OnOrder можно не запариваться с OnTransReply и его статусом по идее, разве что для информации. Во втором случае в коллбэке OnOrder обязательно нужно проверить trans_reply.status. И опять же появляется другой вопрос, в какой последовательности оба этих коллбэка идут??? Если OnOrder может прийти раньше OnTransReply, то получается полнейшая ерунда, order_num в OnTransReply я получить не могу, а OnOrder не могу обработать, т.к. понятия не имею о статусе заявки...

Страницы: 1
Наверх