Блог им. SerSer
Settings = { Name = "xBollinger_LinReg", period = 40, deviation=2, line= { { Name = "xBollinger_LinReg", Color = RGB(0, 0, 255), Type = TYPE_LINE, Width = 2 }, { Name = "xBollinger_LinReg", Color = RGB(192, 0, 0), Type = TYPE_LINE, Width = 2 }, { Name = "xBollinger_LinReg", Color = RGB(0, 128, 0), Type = TYPE_LINE, Width = 6 } } } function c_FF() local AMA={} local CC={} return function(ind, _p,_ddd) local period = _p local index = ind local vol = 0 local sigma = 0 local sigma2 = 0 local aav = 0 local bb = 0 local ZZZ = 0 if index == 1 then AMA={} CC={} CC[index]=(C(index)+H(index)+L(index))/3 AMA[index]=(C(index)+O(index))/2 return nil end ------------------------------ AMA[index]=AMA[index-1] CC[index]=(C(index)+H(index)+L(index))/3 if index < (_p) then return nil end period =_p if index < period then period = index end --------------- sigma=0 sigma2=0 aav=0 ZZZ=0 for i = 0, period-1 do ZZZ=CC[index+i-period+1] aav=aav+ZZZ sigma=sigma+ZZZ*(-(period-1)/2+i) sigma2=sigma2+(-(period-1)/2+i)^2 end bb=sigma/sigma2 aav=aav/period AMA[index]=aav+bb*((period-1)/2) sigma=0 sigma2=0 sigma3 = 0 for i = 0, period-1 do ZZZ=CC[index+i-period+1] sigma2=aav+bb*(-(period-1)/2+i) sigma=sigma+(ZZZ-sigma2)^2 end sigma=(sigma/period)^(1/2) return AMA[index]-sigma*_ddd,AMA[index]+sigma*_ddd, AMA[index] end end function Init() myFF = c_FF() return 3 end function OnCalculate(index) return myFF(index, Settings.period,Settings.deviation) end
черный/серый — стандартный болинджер квика,
красный/зеленый/синий — альтернативный индикатор болинджера
обычные средние (MA) отражают изменение тренда очень и очень постфактум, в отличии от линейной регрессии.
А проще (если у Вас квик) возьмите индикатор и протестируйте.
Причем тут опережение, когда сам боллинджер самодостаточен и показывает как раз то, что нужно — классическое стдв.
Среднее значение — является вырожденным частным случаем уравненения линейного тренда y=a+bx при b=0 ==> y=a. И Болинджер отражает отклонение от среднего значения, при предположении, что динамический ряд значений статичен и не имеет трендовой направленности.
В предлагаемом варианте Болинджера, отражается отклонение цены не от статичного значения вырожденной функции, а от направления тренда и в рамках его системы координат.
И извините, что путаю Ваши знания с пальцем.