Блог им. autotrade

Settings={
Name="MNKM",
period=200,
line=
{
{
Name = "cur1",
Type =TYPE_LINE,
Width = 1,
Color = RGB(255,0, 0)
}
}
}
--[[
описание свойств:
period - период, за каротрый делается расчет
назначение:
построение кривой, у которой сумма квадратов расстояний
от цен закрытия до нее минимальна
таким образом, кривая показвает общую тенденцию
движения цены
использовался метод:
метод наименьших квадратов (аппроксимация линией)
--]]
function Init()
return 1
end
function OnCalculate(index)
sz = Size()
n = Settings.period
if index == 1 then
a1_0 = 0
a2_0 = 0
a3_0 = 0
a4_0 = 0
a1_1 = 0
a2_1 = 0
a3_1 = 0
a4_1 = 0
end
i = index
a1_1 = a1_1+i*C(i)
a2_1 = a2_1+i
a3_1 = a3_1+C(i)
a4_1 = a4_1+i*i
y = nil
if index-n > 0 then
i = index-n
a1_0 = a1_0+i*C(i)
a2_0 = a2_0+i
a3_0 = a3_0+C(i)
a4_0 = a4_0+i*i
a1 = a1_1-a1_0
a2 = a2_1-a2_0
a3 = a3_1-a3_0
a4 = a4_1-a4_0
if((n*a4 - a2*a2) ~= 0) then
a = (n*a1 - a2*a3)/(n*a4 - a2*a2)
b = (a3 - a*a2)/n
y = a*index + b
end
end
return y
end
