Блог им. autotrade
--[[ параметры: Procent - процент зигзага --]] Settings={ Name="ZIG_MA_v2", Procent=2.0, ln=50, line= { { Name = "ZIG_MA", Type =TYPE_LINE, Width = 2, Color = RGB(0,0, 0) }, { Name = "ZIG_MA2", Type =TYPE_LINE, Width = 1, Color = RGB(0,0, 255) } } } function Init() ema = {} y1 = nil y2 = nil x1 = 1 x2 = 1 return 2 end function OnCalculate(index) de = Settings.Procent ln = Settings.ln if index <= 1 then ema[index] = C(index) else ema[index] = (ema[index-1]*(ln-1) + C(index))/ln end if ln==0 then pr = C(index) else pr = C(index)-ema[index] end vl = C(index) if index == 1 then y1 = vl y2 = vl else if pr > y1+C(index)*de/100 and y1 < y2 then x2 = x1 y2 = y1 x1 = index y1 = pr else if pr > y1 and y1 >= y2 then x1 = index y1 = pr end end if pr < y1-C(index)*de/100 and y1 > y2 then x2 = x1 y2 = y1 x1 = index y1 = pr else if pr < y1 and y1 <= y2 then x1 = index y1 = pr end end end if x1 ~= index then curfrom = x1 curto = index else curfrom = x2 curto = x1 end if curto ~= curfrom and curfrom ~= nil and curto ~= nil then if C(curto) ~= nil and C(curfrom) ~= nil then k = (C(curto)- C(curfrom))/(curto- curfrom) for i = curfrom, index do curv = i*k + C(curto) - curto*k SetValue(i, 1, curv) end end end return vl, ema[index] end
а будущее показывает?
Как зигзаг практически используется?
Это зигзаг чем то отличается от предыдущего?
Она будет проходить не по экстремумам, а по середине канала.