Максим (Автор тем)

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

Страницы: 1
Баг приводит к закрытию Quik - код индикатора прилагается, Баг-репорт
 
Здравствуйте, уважаемые разработчики!

Я использую простой самописный индикатор "A" для отрисовки линии на графике. Значения для отрисовки этой линии индикатор берет из другого индикатора "Б" по его идентификатору. Оба индикатора расположены на разных графиках. Эти графики имеют разный таймфрейм и расположены в разных окнах одной вкладки.

Первый индикатор "A" копирует значения второго индикатора. Для отрисовки текущей свечки индикатор "A" берёт значение предыдущей свечки индикатора "Б".

В торговое время после запуска индикатора "A" может пройти от 20 минут до 4 часов и Quik стабильно зависает (в заголовке Quik появляется "программа не отвечает"). Приходится завершать процесс info.exe (не отвечает более 30 минут), размер потребляемой опер. памяти не увеличивается от нормы. Зависание происходит только когда включен индикатор "A". Баг проявляется, если в качестве индикатора "Б" использовать любой индикатор (например, встроенный индикатор простой скользящей средней).

Код индикатора "А" с комментариями:
Код
local t={}
local n=0
local l=0
local value=0

function OnCalculate(index)
   if index==1 then return end            --проверяем если первая свечка, расcчёт не ведется
   if getNumCandles(Settings.ID)==0 then         --Settings.ID содержит название идентификатора, которое задаёт пользователь
      return                  --проверяем если индикатор "Б" не содержит свечек, рассчёт не ведется
   else
      t,n,l=getCandlesByIndex(Settings.ID,0,index-1,1)
      if t[0].doesExist==1 then         --проверяем если свечки нет, рассчет не ведется
         if t[0].close~=1e10 then      --проверяем если новое значение свечки не получено, рассчет не ведется
            if t[0].close~=value then value=t[0].close end
            t[0].close=1e10
            return value
         end
      end
   end
end
Помогите определить почему после запуска индикатор "A" может работать от 20 минут до 4 часов в торговую сессию, а потом Quik зависает. Никаких ошибок в окне сообщений нет. Торгуемый инструмент USDRUB_TOM.

Версия Quik: 7.0.4.10 (англ. интерфейс)
Версия OS: Windows 7 SP1 (англ. интерфейс)
Страницы: 1
Наверх