Блог им. autotrade
Settings={ Name="MNKA_ANGLE", period=200, line= { { Name = "cur1", Type =TYPE_LINE, Width = 1, Color = RGB(255, 0, 0) }, { Name = "cur2", Type =TYPE_LINE, Width = 1, Color = RGB(0, 0, 0) } } } --[[ описание свойств: period - период, за каротрый делается расчет назначение: построение угла наклона тенденции использовался: метод наименьших квадратов (аппроксимация линией) --]] function Init() a10 = 0 a20 = 0 a30 = 0 a40 = 0 a1 = 0 a2 = 0 a3 = 0 a4 = 0 return 2 end function OnCalculate(index) sz = Size() n = Settings.period if index == 1 then a10 = 0 a20 = 0 a30 = 0 a40 = 0 a1 = 0 a2 = 0 a3 = 0 a4 = 0 end if index > 0 then i = index; a10 = a10+i*C(i) a20 = a20+i a30 = a30+C(i) a40 = a40+i*i end a = nil if index-n > 0 then i = index-n; a1 = a1+i*C(i) a2 = a2+i a3 = a3+C(i) a4 = a4+i*i if((n*(a40-a4) - (a20-a2)*(a20-a2)) ~= 0) then a = (n*(a10-a1) - (a20-a2)*(a30-a3))/(n*(a40-a4) - (a20-a2)*(a20-a2)) --[[ b = ((a30-a3) - a*(a20-a2))/n if sz==index then for j=index-n+1, index do y = a*j + b SetValue(j, 1, y) end end--]] end end return a, 0 end
Для этого нужны ДЛЛ, база данных, типа SQLite, чтобы меньше грузить Квик, и Python.
В обозримом будущем руки вряд ли дойдут.