Возвращаемые данные для отрисовки индикатора

Страницы: 1
RSS
Возвращаемые данные для отрисовки индикатора
 
Добрый день.

Пишется индикатор с динамическим количеством линий.
Можно ли вместо данных типа ruturn out1, out2, out3 вернуть массив {}. Соответственно, данные линий - это индексные данные массива.

Уж больно некрасиво приходится делать большое количество переменных с запасом.

Есть еще вариант динамического описания кода. Есть ли в интерпретаторе qlua execute("Текст выполняемого кода")?
 
Здравствуйте,
Цитата
Nikolay написал:
Можно ли вместо данных типа ruturn out1, out2, out3 вернуть массив {}. Соответственно, данные линий - это индексные данные массива.
Да это можно сделать через функцию unpack
Пример есть в нашей документации

Цитата
Nikolay написал:
Есть еще вариант динамического описания кода. Есть ли в интерпретаторе qlua execute("Текст выполняемого кода")?

За это отвечает функция loadstring
 
Совет про unpack плохой.

если одну из линий вам выводить в свече не нужно, то и остальные свечи могут быть не выведены. А могут быть выведены

a={}
a[4] = 4
a[1] = 1
f=function() return unpack(a) end
print(f())
------------
1

а четверки нет.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
*** остальные линии свечи ***
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru написал:
Совет про unpack плохой.

если одну из линий вам выводить в свече не нужно, то и остальные свечи могут быть не выведены. А могут быть выведены

a={}
a[4] = 4
a[1] = 1
f=function() return unpack(a) end
print(f())
------------
1

а четверки нет.
Надо делать так:
a={nil,nil,nil,nil}
a[4] = 4
a[1] = 1
f=function() return unpack(a) end
print(f())
 
Цитата
Николай Камынин написал:
Цитата
   s_mike@rambler.ru  написал:
Совет про unpack плохой.

если одну из линий вам выводить в свече не нужно, то и остальные свечи могут быть не выведены. А могут быть выведены

a={}
a[4] = 4
a[1] = 1
f=function() return unpack(a) end
print(f())
------------
1

а четверки нет.
Надо делать так:
a={nil,nil,nil,nil}
a[4] = 4
a[1] = 1
f=function() return unpack(a) end
print(f())
Фантазировать здесь не имеет смысла. В случает отсутствия непрерывности индексов результат unpack неопределен.

что означает, что unpack использовать можно тольбко в определеных (тепличных) условиях.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
Страницы: 1
Читают тему
Наверх