Вадим (Автор тем)

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

Страницы: 1
Таблицы в Lua, Таблицы в Lua
 
Столкнулся с проблемой в таблицах Lua - все строки имеют одинаковое значение.
Показать могу на простейшем примере

line={};  --одномерный массив
table={};  --это будет массив массивов
line[1]="Вася";
line[2]=45;
table[1]=line;
line[1]="Петя";
line[2]=39;
table[2]=line;
print (table[1][1], table[1][2]);
print (table[2][1], table[2][2]);

Результат вывода:
Петя 39
Петя 39

Почему везде Петя? В чём моя ошибка ?
Номер последней свечки (SetUpdateCallback)
 
Задал вопрос на Финаме, но те направили сюда.

Колбек-функция для SetUpdateCallback для рынка  акций возвращает повторяющиеся изо дня в день номера свечек. Свечки  часовые, для других не проверял.

Например для инструментов SBER, GAZP
9 января: 12 часовая свечка имеет номер 3014, последняя вечерняя 3020
и так далее . . .
12 января: 12 часовая свечка тоже имеет номер 3014, последняя вечерняя опять 3020

Как будто нумерация всё время смещается. Это так задумано или это ошибка в данных ?

Упрощенный пример кода
ds, errortxt = CreateDataSource ("TQBR", "GAZP", INTERVAL_H1);
ds:SetUpdateCallback(UpdateCandle);

function UpdateCandle(ind)
 --  ind - номер последней изменившейся свечи, каждые сутки по кругу
end
Ошибка запуска "Unable to load..."
 
Периодически, а сейчас почти постоянно возникает ошибка при запуске скрипта
"Unable to load D:\PROJ\QuikLua\myscript.lua"
Раньше помогал перезапуск квика. Сейчас и это не срабатывает.
Quik-Junior 7.1.0.381
Кто сталкивался с подобной проблемой и как лечится ?
Виснет lua-индикатор
 
По мотивам https://forum.quik.ru/forum13/topic1576/  Аналогичную проблему наблюдаю третий день. Зависает lua-индикатор, который получает данные из другого источника.
Проблема как на 7й так и  на 6й версии.
Как на боевой базе так и на Quik-Junior (три дня назад джуниор ещё работал).
Как при подключенном состоянии так и без.
Катастрофически растёт info.log (сотни мегабайт за несколько минут).
Сначала грешил на  getCandlesByIndex().
Сейчас подозреваю, что проблема в работе функции OnCalculate. Раньше она у меня работала так - при старте отрабатывала все свечки от 1 до n, а затем каждый интервал - n+1, n+2 ит.д.
Сейчас она отрабатывает весь массив данных с сервера, независимо от настройки Параметров текущего окна\Диаграмма\ и не интервально, а по тикам.
Допустим настройка Последние 50 свечек и интервал 60мин.

Вот как отрабатывает:
Settings={
   Name = "SimpleLine"    
}
function Init()
   file = io.open(getScriptPath().."\\log.txt", "w")    
   return 1;    
end
function OnCalculate(index)        
   t = os.date();    
   file:write(t.." "..tostring(index).."\n");
   return 1;
end

Последние строки лога:
04/06/16 23:14:53 1849
04/06/16 23:14:53 1850
04/06/16 23:14:53 1851
04/06/16 23:14:53 1852
04/06/16 23:14:53 1853
04/06/16 23:14:53 1854
04/06/16 23:14:53 1855
04/06/16 23:14:53 1856
04/06/16 23:14:54 1856
04/06/16 23:14:56 1856
04/06/16 23:14:56 1856
04/06/16 23:14:57 1856
04/06/16 23:14:57 1856
04/06/16 23:14:59 1856
..... итд

По нескольку раз в секунду отрабатывает 1856я свечка! Если индикатор более сложный, то с такой частотой отрабатывает весь алгоритм, каждый раз получая данные из источника.
Неудивительно, терминал виснет на несколько минут. У других вообще падает...

Просьба помочь разобраться в проблеме.
Страницы: 1
Наверх