Создал свой индикатор зигзаг
Предлагаю его для ознакомления
при установке имя индикатора будет Zigzag
параметр delta задает в % плечо индикатора
цель данного индикатора — помочь быстро найти значимые уровни
планирую этот совместить с предыдущим: https://smart-lab.ru/blog/528924.php
и сделать адаптивный STATDIV
в дальнейшем в зигзаг добавлю отображение уровней
файл индикатора:
https://dropmefiles.com/WyjM2
сам код индикатора:
Settings= { Name = "Zigzag", -- название индикатора delta=3, -- параметр индикатора line= { { Name = "zigzagline", Type =TYPE_LINE, Width = 1, Color = RGB(120,90, 140) } } } function Init() vMin = 0 vMax = 0 vMinindex = 0 vMaxindex = 0 voldMinindex = 0 voldMaxindex = 0 return 1 end function OnCalculate(index) if index == 1 then vMin = C(index) vMax = C(index) vMinindex = index vMaxindex = index voldMinindex = index voldMaxindex = index v = C(index) else if voldMaxindex >= voldMinindex then if C(index) > (1 + Settings.delta/100)*vMin then vMin = C(index) vMax = C(index) vMaxindex = index voldMinindex = vMinindex vFrom = vMinindex else if vMin > C(index) then vMin = C(index) vMinindex = index vFrom = voldMaxindex else vFrom = vMinindex end end else if voldMaxindex <= voldMinindex then if C(index) < (1 - Settings.delta/100)*vMax then vMax = C(index) vMin = C(index) vMinindex = index voldMaxindex = vMaxindex vFrom = vMaxindex else if vMax < C(index) then vMax = C(index) vMaxindex = index vFrom = voldMinindex else vFrom = vMaxindex end end end end for i = vFrom, index do k = (C(index)- C(vFrom))/(index- vFrom); v = i*k + C(index) - index*k SetValue(i, 1, v) end end end