Виснет lua-индикатор

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

Просьба помочь разобраться в проблеме.
 
Вадим, добрый день!
 В функции OnCalculate(index), index - это посути номер текущей свечи и он приходит каждый тик. На текущей свече (от минуты до...) index ,будет иметь одинаковое значение. Если надо рассчитать индикатор лишь раз по приходу свечи, делаю примерно так:
Код
old_index=-1
function OnCalculate(index)
if index~=old_index then
--
--
--
-- рассчитываю
--
end
old_index=index
return---что рассчитал
end
Если работать только в текущей свече ( с подключение к брокеру) то if index==old_index... и расчет будет вестись каждый тик
 
Здравствуйте,
OnCalculate срабатывает на каждое изменение текущей (последней) свечи и это нормально.
Поэтому пока последняя не сформировалась она будет появляться в OnCalculate столько раз сколько изменится.
 
...Можно приделать счетчик на приход index,
или через Т() засекать интервал времени.
У меня чуть другая история: индикатор работает сам по себе, но подключаю скрипт берущий свечки сграфика цены в окне, где этот индикатор и Квик падает.
 
Цитата
Павел Сыроешкин написал:
Квик падает.
Пришлите для анализа архив всей папки с терминалом QUIK (без ключей доступа) созданный сразу после падения и скрипт индикатора который приводит к падению
 
Цитата
Sergey Gorokhov написал:
Цитата
Пришлите для анализа архив всей папки с терминалом QUIK (без ключей доступа) созданный сразу после падения и скрипт индикатора который приводит к падению
Спасибо, Отправил на quiksupport@arqatech.com. Скрипты тестовые там же. Обсуждали эту тему и здесь https://forum.quik.ru/forum13/topic1576/.
 
Так, с функцией понятно. Значит был неправ.
А что с настройкой "Последние 50 свечек" ? Она работает для lua-индикаторов или нет ?
 
Цитата
Вадим написал:
Так, с функцией понятно. Значит был неправ.
А что с настройкой "Последние 50 свечек" ? Она работает для lua-индикаторов или нет ?

Параметр "Последние ... интервалов" не влияет на обычные и на Lua индикаторы.
Влияет только "Фильтр по времени"
 
Цитата
Павел Сыроешкин написал:
Цитата
Sergey Gorokhov   написал:
Цитата
Пришлите для анализа архив всей папки с терминалом QUIK (без ключей доступа) созданный сразу после падения и скрипт индикатора который приводит к падению
Спасибо, Отправил на  quiksupport@arqatech.com . Скрипты тестовые там же. Обсуждали эту тему и здесь  https://forum.quik.ru/forum13/topic1576/ .
Спасибо, что разобрались с зависанием. Ждем обновлений.
Страницы: 1
Читают тему
Наверх