Не работает код индикатора на lua при попытке обратиться к переменной объявленной в функции Init()
Но всё бы ничего, если в одном коде индикатора он работает, а в другом не работает.
Вот код индикатора в котором обращение к переменной VuEma Не работает как ожидается:
(переменная VuEma в message() выводит 4 раза сообщения вместо мною ожидаемой 1 один раз.:
VuEma = 1
VuEma = -nan(ind)
VuEma = -nan(ind)
VuEma = -nan(ind)
Как я понимаю индикатор пересчитывается зачем то 4 раза, и лишь первый раз он работает как мне нужно, но в итоге отрисовывается только первые две линии на экране.
Но всё бы ничего, если в одном коде индикатора он работает, а в другом не работает.
Вот код индикатора в котором обращение к переменной VuEma Не работает как ожидается:
(переменная VuEma в message() выводит 4 раза сообщения вместо мною ожидаемой 1 один раз.:
VuEma = 1
VuEma = -nan(ind)
VuEma = -nan(ind)
VuEma = -nan(ind)
Как я понимаю индикатор пересчитывается зачем то 4 раза, и лишь первый раз он работает как мне нужно, но в итоге отрисовывается только первые две линии на экране.
Код |
---|
Settings = {} Settings = { Name = "KEZ_Casper", period = 28, period2 = 28, line = {{ Name = "Casper", Color = RGB(255, 0, 0), Type = TYPE_LINE, Width = 1 }, { Name = "A", Color = RGB(0, 100, 100), Type = TYPE_LINE, Width = 1 }, { Name = "B", Color = RGB(100, 100, 0), Type = TYPE_LINE, Width = 1 }} } function Init() VuEma = 1 Vu = 0 Pu = 0 Pd = 0 F = 0 return #Settings.line end function OnCalculate(index) if index == 1 then message("VuEma = " .. VuEma) end if O(index) < C(index) then -- положительная свеча Pu = H(index) - L(index) Pd = H(index) - C(index) + O(index) - L(index) else -- отрицательная свеча Pu = H(index) - O(index) + C(index) - L(index) Pd = H(index) - L(index) end Vd = (Pd * V(index)) / (Pu + Pd) Vu = V(index) - Vd F = 2 / (Settings.period + 1) VuEma = Vu * F + VuEma * (1 - F) return Vu, -Vd, VuEma end |