// Downloaded From https://www.WiseStockTrader.com _SECTION_BEGIN("R2"); /* System Based on R2 Indiator - Karthik Marar Indicator Adopted from Amibroker AFL Library */ /*To determine if the trend is statistically significant for a given x-period linear regression line, Plot the r-squared indicator and refer to the following table. This table shows the values of r-squared required for A 95% confidence level at various time periods. If the r-squared value is less than the critical values shown, you should assume that prices show no statistically significant trend. Number ofPeriods r-squaredCritical Value(95%confidence) 5 0.77 10 0.40 14 0.27 20 0.20 25 0.16 30 0.13 50 0.08 60 0.06 120 0.03 */ Title = ("R2 SYSTEM - " + Name()+" " + Date() +" "+Interval(2) +" "+ EncodeColor(colorLime)+",Open "+Open +" ,High "+H+" ,Low "+L+" ,Close "+C+" "+"{{VALUES}}"); s1=Param("Filter Tune 1",0.5,0.1,1,0.1); s2=Param("Filter Tune 2",2,1,3,0.5); RPDS=ParamList("R2 Period", "20|25|14|5|10|30|50|60|120" ); /*for automatic adjustments to the r2 critical value line use one of //the periods listed above*/ R2PDS=IIf(rpds=="5",5,IIf(rpds=="10",10,IIf(rpds=="14",14,IIf(rpds=="20",20,IIf(rpds=="25",25,IIf(rpds=="30",30,IIf(rpds=="50",50,IIf(rpds=="60",60,120)))))))); R2=Correlation(Cum( 1 ),C,r2pds)*Correlation(Cum( 1 ),C,r2pds); slope=LinRegSlope(C,r2pds); Crit=IIf(R2PDS==5,.77,IIf(R2PDS==10,.40,IIf(R2PDS==14,.27,IIf(R2PDS==20,.20,IIf(R2PDS==25,.16,IIf(R2PDS==30,.13,IIf(R2PDS==50,.08,IIf(R2PDS==60,.06,IIf(R2PDS==120,.03,0))))))))); r2color=IIf(r2>(s2*Crit) AND slope>s1,colorLime,IIf(slope>0 AND r2s2*Crit )OR (slope>s1 AND Cross(r2,(s2*Crit))); Sell=Cross(0,slope) OR (Cross(Crit,r2) AND slope<0); Short= Cross(r2,Crit) AND slope<-s1; Cover= Cross(slope,0); Buy=ExRem(Buy,Sell); Sell=ExRem(Sell,Buy); Short=ExRem(Short,Cover); Cover=ExRem(Cover,Short); PlotOHLC( Open, High, Low, Close, "", r2color, styleBar | styleThick ); shape = Buy * shapeUpArrow + Sell * shapeDownArrow + Short * shapeDownTriangle + Cover * shapeUpTriangle; PlotShapes( shape, IIf( Buy, colorGreen, IIf(Sell,colorYellow,IIf(Cover,colorLightOrange,colorRed ))),0, IIf( Buy, Low, IIf(Sell,High,IIf(Cover,Low,High) ) ) ); GraphXSpace = 5; dist = 1.5*ATR(10); for( i = 0; i < BarCount; i++ ) { if( Buy[i] ) PlotText( "Buy\n@" + C[ i ], i, L[ i ]-dist[i], colorGreen ); if( Sell[i] ) PlotText( "Sell\n@" + C[ i ], i, H[ i ]+dist[i], colorYellow); if( Short[i] ) PlotText( "Short\n@" + C[ i ], i, H[ i ]+dist[i], colorRed); if( Cover[i] ) PlotText( "cover\n@" + C[ i ], i, H[ i ]-dist[i], colorLightOrange); } _SECTION_END();