Добрый день. Заметил такую особенность. При добавлении своего индикатора, OnCalculate, как и положено, "проходит" по всем свечкам. Но при изменении свойств индикатора, происходит два "прохода". Первый со старыми свойствами, второй с новыми. Так и должно быть? Квик в офлайне.
Код
Settings=
{
Name = "Example1" ,
Mult = 1
}
function Init()
OnCalcCo unt=0
return 1
end
function OnCalculate(index)
OnCalcCo unt=OnCalcCount+1
PrintDbgStr("[QLUA] " .. tostring(OnCalcCount) .. " Mult " .. tostring(Settings.Mult))
return index*Settings.Mult
-- return nil
end
После добавления (счетчик увеличился на количество свечек) Счетчик соответствует количеству свечей. При изменении свойств счетчик вырос на двойное число свечей (два прохода)
Так и задумано. К INIT() вопросов нет. Все что я сделал, это : 1. Добавил индикатор (приложил скрин). Счетчик вырос на число свечек. 2. Один раз изменил его свойства, Mult менял на 2 (второй скрин).
После шага 2 счетчик должен вырасти на число баров,а фактически вырос на (число баров)*2
Settings=
{
Name = "Example1" ,
Mult = 1
}
function Init()
OnCalcCo unt=0
return 1
end
function OnCalculate(index)
if index==1 then message ("Index= " .. tostring(index) .." Mult= " .. tostring(Settings.Mult)) end
return index*Settings.Mult
end
Добавляю индикатор - получаю одно окно сообщений. Меняю в свойствах индикатора Mult, получаю еще два окна!
я тоже замечал, что OnCalculate прогоняет все свечи при удалении индикатора. Я предположил, что это для того, чтобы стереть старый график, хотя мне это показалось очень странным и бессмысленным