Если в область 1 окна включить 1-минутный график SRH8, а в область 2 включить график волатильности опциона SR028250BO8 и запустить мой индикатор CountValidBars, то при смене тайм-фрейма (например, на 2 минуты) число непустых баров в графике ValidNo = Size().
При повторном пуске индикатора (по OK в диалоге "Редактирование настроек графика" для индикатора) оказывается Size() > ValidNo.
Предлагаю изменить работу Quik'а так, чтобы подсчёт количества баров давал одинаковые результаты при обоих вариантах запуска индикатора CountValidBars.
При повторном пуске индикатора (по OK в диалоге "Редактирование настроек графика" для индикатора) оказывается Size() > ValidNo.
Предлагаю изменить работу Quik'а так, чтобы подсчёт количества баров давал одинаковые результаты при обоих вариантах запуска индикатора CountValidBars.
Код |
---|
-- Индикатор Подсчёт непустых баров. IniSize = 0 PreIdx = 0 ValidNo = 0 Settings = { Name = "*CountValidBars" ,line = { {Name = "CountValidBars" ,Color = RGB(255,255,0) -- Жёлтый ,Type = TYPE_DASH ,Width = 1} } } function Init() return #Settings.line end function OnCalculate (index) if index == 1 then IniSize = Size() PreIdx, ValidNo = 0, 0 message("IniSize ".. IniSize) end if PreIdx ~= index then if C(index) and C(index) > 0 then ValidNo = ValidNo + 1 end if index == IniSize then local ds = getDataSourceInfo() message ("interval ".. ds.interval .." index ".. index .." ValidNo ".. ValidNo) end end PreIdx = index return nil end -- OnCalculate() |