Если в область 1 окна включить 1-минутный график SRH8, а в область 2 включить график волатильности опциона SR028250BO8 и запустить мой индикатор CountValidBars, то при смене тайм-фрейма (например, на 2 минуты) число непустых баров в графике ValidNo = Size().
При повторном пуске индикатора (по 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()
|