Create Screener based on angle of Standard deviation Channel
Forums › ProRealTime English forum › ProScreener support › Create Screener based on angle of Standard deviation Channel
- This topic has 5 replies, 2 voices, and was last updated 3 years ago by RubberToe.
-
-
10/26/2021 at 11:27 PM #180409
I use this SD channel indicator from the library and it’s very good:
I would like to be able to calculate the angle of the SD (like the Gann Line object), and then use that in a Screener, and maybe display it on the charts too. Is this possible? thx
10/27/2021 at 2:12 PM #180432This is the code for the SD channel. Can I extract the start and end points of the SD for a defined period? (say 120 periods on 1mn timeframe) A slope will be good enough if I can’t do angle and start and end point would give me that.
/PRC_Std and Ste LinRegChannel | indicator
//Standard Deviation and Standard Error
//Linear Regression Channel
//12.03.2019
//Nicolas @ http://www.prorealcode.com
//Sharing ProRealTime knowledgedefparam 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 settingssumx = 0
sumy = 0
sumxy = 0
sumx2 = 0for cmpt = lookback downto 0 do
tmpx = cmpt
tmpy = close[cmpt]
sumy = sumy+tmpy
sumx = sumx+tmpx
sumx2 = sumx2 + (tmpx*tmpx)
sumxy = sumxy + (tmpy*tmpx)
nextn = 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) / ndrawsegment(barindex[lookback],a[1]+b[1]*lookback,barindex,a[1]+b[1]*0) coloured(colorRed,colorGreen,colorBlue)style(dottedline,1)
//channel
if ChannelType = 1 then //Standard Deviation
dat = std[lookback]*NbDeviation
else
dat = ste[lookback]*NbDeviation
endif
drawsegment(barindex[lookback],(a[1]+b[1]*lookback)+dat[1],barindex,a[1]+b[1]*0+dat[1]) coloured(colorRed,colorGreen,colorBlue)style(line,1)
drawsegment(barindex[lookback],(a[1]+b[1]*lookback)-dat[1],barindex,a[1]+b[1]*0-dat[1]) coloured(colorRed,colorGreen,colorBlue)style(line,1)return
10/28/2021 at 11:08 AM #180457It’s a basic linear regression slope, you can get it with LINEARREGRESSIONSLOPE instruction.
1 user thanked author for this post.
11/07/2021 at 3:01 PM #181166So that does an OK job of putting things on my radar, but it would be better if I could do something more advanced. What I need is the calculation price for the upper an lower SD channel at any point in time, so that I can then create a formula where my price has come within say 1% of that SD channel, similar to how people use Bollinger Band percentages. Can I calculate that SD channel value for use in a formula?
11/08/2021 at 3:15 PM #18124211/09/2021 at 2:32 PM #181312123456789101112131415161718192021222324252627282930timeframe(1mn)il = ((LinearRegressionSlope[120](close))/close)*10000bollup = EndPointAverage[120](close) + (2 * STD[120](close))bolldn = EndPointAverage[120](close) - (2 * STD[120](close))if close crosses over bollup and il >1 thengo = 1elsego = 0endifif close crosses under bolldn and il <-1 thengo = -1endiftimeframe(daily)adv = average[5](volume)w1 = adv > 300000w2 = MedianPrice >2w3 = summation[1](volume)>50000timeframe(1mn)if go<>0 and w1 and w2 and w3 thenscreener (il as "x")endifSo this is my first attempt, but w3 seems not to be working right, and in my screener column the volume shows only small values like snapshots….
Also the 10000 multiplier is just to get a number easier to deal with for my mind.
-
AuthorPosts
Find exclusive trading pro-tools on