По мотивам Аналогичную проблему наблюдаю третий день. Зависает 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я свечка! Если индикатор более сложный, то с такой частотой отрабатывает весь алгоритм, каждый раз получая данные из источника.
Неудивительно, терминал виснет на несколько минут. У других вообще падает...
Просьба помочь разобраться в проблеме.
Проблема как на 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я свечка! Если индикатор более сложный, то с такой частотой отрабатывает весь алгоритм, каждый раз получая данные из источника.
Неудивительно, терминал виснет на несколько минут. У других вообще падает...
Просьба помочь разобраться в проблеме.