Блог им. 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


★30
8 комментариев
на картинке ничего не понятно. Можно расшифровку нормальную сделать? И пояснить чем «информативнее»…
avatar
Суслик, 
черный/серый — стандартный болинджер квика,
красный/зеленый/синий — альтернативный индикатор болинджера
обычные средние (MA) отражают изменение тренда очень и очень постфактум, в отличии от линейной регрессии.
А проще (если у Вас квик) возьмите индикатор и протестируйте.
Каналы Келтнера еще информативнее.
avatar
Helias, Кельтнер использует скользящую среднюю, а значит априори отстает от линейной регрессии
пока не очень понятно в чем они информативней и интересней, но все равно большое спасибо Вам Сергей! заставляете думать и искать)
avatar
Stoic, а попробуйте классическую стратегию торговли для болинджера (пробитие верхней/нижней границы) на данном индикаторе
Вот делают непонятно что, путают жопу с пальцем и пишут о какой-то информативности. Боллинджер понятно что показывает — отклонения от среднего значения за выбранный период, а эта херь что показывает? надобно пояснять
Причем тут опережение, когда сам боллинджер самодостаточен и показывает как раз то, что нужно — классическое стдв.
avatar
Максим Дмитриевский, Добрый день.
Среднее значение — является вырожденным частным случаем уравненения линейного тренда y=a+bx при b=0 ==> y=a. И Болинджер отражает отклонение от среднего значения, при предположении, что динамический ряд значений статичен и не имеет трендовой направленности.
В предлагаемом варианте Болинджера, отражается отклонение цены не от статичного значения вырожденной функции, а от направления тренда и в рамках его системы координат.
И извините, что путаю Ваши знания с пальцем.

теги блога Маркин Павел

....все тэги



UPDONW
Новый дизайн