Доброго времени суток.
Вот код примитивного индикатора.
Вопрос такой:
Если на график предварительно добавить этот индикатор, то при запуске терминала функция OnCalculate трижды пробегает по всем свечам.
Если при запущенном терминале добавить этот индикатор на график, функция OnCalculate пробегает по всем свечам дважды.
Функция OnInit всегда запускается один раз.
Это баг, фича или где-то настройки какие-то есть?
Какие возможны варианты для расчета показателя только один раз?
С уважением, Илья
Вот код примитивного индикатора.
| Код |
|---|
name="light"
Settings = {}
Settings.Name = name;
Settings.line = {};
Settings.step = 0
Settings.secId = ''
Settings.size = 0
function OnCalculate(index)
local _ds = nil
if index == 1 then
_ds = getDataSourceInfo()
Settings.secId = _ds.sec_code
Settings.size = getNumCandles(Settings.secId)
Settings.step = Settings.step + 1
end
PrintDbgStr('OnCalculate. Settings.secId '..Settings.secId..' Index '..index..' . Step : '..Settings.step..' size : '..Settings.size)
return 0
end
--------
function Init()
local t = Settings.line;
t[#t+1] = { Name = 'zero', Color = RGB(0,128,255), Type = 0, Width = 1}
return #t
end
|
Если на график предварительно добавить этот индикатор, то при запуске терминала функция OnCalculate трижды пробегает по всем свечам.
Если при запущенном терминале добавить этот индикатор на график, функция OnCalculate пробегает по всем свечам дважды.
Функция OnInit всегда запускается один раз.
Это баг, фича или где-то настройки какие-то есть?
Какие возможны варианты для расчета показателя только один раз?
С уважением, Илья