Доброго времени суток.
Вот код примитивного индикатора.
Вопрос такой:
Если на график предварительно добавить этот индикатор, то при запуске терминала функция 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 всегда запускается один раз.
Это баг, фича или где-то настройки какие-то есть?
Какие возможны варианты для расчета показателя только один раз?
С уважением, Илья