--[[ параметры: Procent - процент зигзага --]] Settings={ Name="ZIG_SMA", Procent=2, lim=20, div=2.0, line= { { Name = "ZIG_SMA", Type =TYPE_LINE, Width = 2, Color = RGB(0,0, 0) } } } function Init() y1 = nil y2 = nil x1 = 1 x2 = 1 return 1 end function OnCalculate(index) de = Settings.Procent lim = Settings.lim div = Settings.div vl = C(index) if index == 1 then y1 = vl y2 = vl else if C(index) > y1*(1+de/100) and y1 < y2 then x2 = x1 y2 = y1 x1 = index y1 = C(index) else if C(index) > y1 and y1 >= y2 then x1 = index y1 = C(index) end end if C(index) < y1*(1-de/100) and y1 > y2 then x2 = x1 y2 = y1 x1 = index y1 = C(index) else if C(index) < y1 and y1 <= y2 then x1 = index y1 = C(index) end end end per = math.floor((x1 - x2)/div) if per < lim then per = lim end ss = 0 k=0 for i = index - per, index do if i >= 1 then ss = ss + C(i) k=k+1 end end if k ~= 0 then vl=ss/k end return vl end