Standard Deviation & Standard Error Linear Regression Channel

Category: Indicators By: Nicolas Created: March 12, 2019, 9:54 AM
March 12, 2019, 9:54 AM
Indicators
14 Comments

Here is the code for the linear regression channel of standard deviation and standard error. It is the same one than the tools of the platform.

You can change the lookback period which correspond of the amount of candlesticks for the linear regression calculation.

The ChannelType setting is used to change the calculation type of the upper and lower channel between the standard deviation and the standard error. You can also change the deviation multiplier which is set to 1 by default.

//PRC_Std and Ste LinRegChannel | indicator
//Standard Deviation and Standard Error 
//Linear Regression Channel
//12.03.2019
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge

defparam drawonlastbaronly=true
defparam calculateonlastbars=1000
// --- settings
lookback= 200 //channel period
ChannelType = 1 //1= Standard Deviation ; 2= Standard Erro
NbDeviation = 1 //Deviation multiplier 
colorRed = 255
colorGreen = 255
colorBlue = 0
// --- end of settings

sumx = 0
sumy = 0
sumxy = 0
sumx2 = 0

for cmpt = lookback downto 0 do
 tmpx = cmpt
 tmpy = close[cmpt]
 sumy = sumy+tmpy
 sumx = sumx+tmpx
 sumx2 = sumx2 + (tmpx*tmpx)
 sumxy = sumxy + (tmpy*tmpx)
next

n = lookback+1

if (sumx2 = sumx * sumx) then // protection to avoid infinite values
 b = sumxy - sumx * sumy
else
 b = (n * sumxy - sumx * sumy) / (n * sumx2 - sumx * sumx)
endif
a = (sumy - b * sumx) / n

drawsegment(barindex[lookback],a+b*lookback,barindex,a+b*0) coloured(colorRed,colorGreen,colorBlue)

//channel
if ChannelType = 1 then //Standard Deviation 
 dat = std[lookback]*NbDeviation
else
 dat = ste[lookback]*NbDeviation
endif
drawsegment(barindex[lookback],(a+b*lookback)+dat,barindex,a+b*0+dat) coloured(colorRed,colorGreen,colorBlue)
drawsegment(barindex[lookback],(a+b*lookback)-dat,barindex,a+b*0-dat) coloured(colorRed,colorGreen,colorBlue)

return

 

Download
Filename: PRC_Std-and-Ste-LinRegChannel.itf
Downloads: 489
Nicolas Master
I created ProRealCode because I believe in the power of shared knowledge. I spend my time coding new tools and helping members solve complex problems. If you are stuck on a code or need a fresh perspective on a strategy, I am always willing to help. Welcome to the community!
Author’s Profile

Comments

Logo Logo
Loading...