
Вариант по 4м точкам:
d1 = P(i) — P(i-1)
d2 = P(i-1) — P(i-2)
d3 = P(i-2) — P(i-3)
d4 = P(i-3) — P(i-4)
y(i) =
(
[
P(i) + d1 +
P(i-1) + d2 +
P(i-2) + d3 +
P(i-3) + d4
] / 4 +
[
[ P(i) + P(i-1) ] / 2 +
[ P(i-1) + P(i-2) ] / 2 +
[ P(i-2) + P(i-3) ] / 2 +
[ P(i-3) + P(i-4) ] / 2
] / 4
)/2
Формула похожа по содержанию на SMA+MO (средняя + моментум)

--[[
индикатор: SMA+MO
параметры:
--]]
Settings={
Name="SMA_MO_v1",
proc=2.0,
xdelta = 500,
line=
{
{
Name = "cur1",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0, 0, 0)
},
{
Name = "cur2",
Type =TYPE_LINE,
Width = 2,
Color = RGB(255, 0, 0)
},
{
Name = "cur3",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0, 255, 0)
}
}
}
function Init()
return 3
end
function OnCalculate(index)
val = nil
if index > 4 then
val = O(index) - O(index-3) + ( O(index-3) + O(index-2) + O(index-1) + O(index) )/4
end
return val
end
Сам этот индикатор:

--[[
индикатор: индикатор прижимной к цене
параметры:
--]]
Settings={
Name="SMA_MO_ind_v1",
line=
{
{
Name = "cur1",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0, 0, 0)
},
{
Name = "cur2",
Type =TYPE_LINE,
Width = 2,
Color = RGB(255, 0, 0)
},
{
Name = "cur3",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0, 255, 0)
}
}
}
function Init()
return 3
end
function OnCalculate(index)
val = nil
if index > 4 then
val = (O(index) - O(index-4) + ( O(index-4)/2 + O(index-3) + O(index-2) + O(index-1) + O(index)/2 )/4+
( O(index-3) + O(index-2) + O(index-1) + O(index) )/4 )/2
end
return val
end
По четырем точкам будет запаздывать, каждый бар надо отслеживать, тогда более менее правдивая картинка будет рисоваться по моделькам.
Плюс если смотрим м5, то отслеживаем рисуем с Н1.