// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("ZeroLag RSI with Buy/Sell");
/*ZeroLag RSI V2*/
/*Code adapted from ZeroLag Williams %R Indicator */
/* Additional params added for change of RSI periods and EMA1&2 */

GraphXSpace = 3;

RSIPeriod=Param("RSI Period Length", 30, 3 , 500, 1);
R = RSI(RSIperiod);

MaxGraph=10;
Period1=Param("Period 1", 20, 1, 500, 1);
Period2=Param("Period 2", 10, 1, 500, 1);
ZLfactorUP = Param("ZeroLagBuy", 60,30,100,1);
ZLfactorDOWN = Param("ZeroLagShort", 40,20,100,1);
EMA1= EMA(R,Period1);
EMA2= EMA(EMA1,Period2);
Difference= EMA1 - EMA2;
ZeroLagEMA= EMA1 + Difference;
PR=abs(ZeroLagEMA); 
B1 = PR > ZLfactorUP; 
S1 = PR < ZLfactorUP;
Sh1 = PR < ZLfactorDOWN;
Cv1 = PR > ZLfactorDOWN;

Graph0=PR;

MoveAvg=MA(PR,5);  

// Graph1=MoveAvg;          Remove the // if you want a Crossover MA to plot
// Graph1Color=colorTan;

Graph0Style=4;
upbar= PR>= MoveAvg AND PR>= Ref(PR,-1) ;
downbar=(PR < MoveAvg) OR PR>= MoveAvg AND PR< Ref(PR,-1) ;
barcolor = IIf( downbar,colorRed, IIf( upbar, colorBrightGreen, 7));
Graph0BarColor = ValueWhen( barcolor != 0, barcolor );
Graph2=50;
Graph3=50;

Graph2Style=Graph3Style=Graph4Style=1;
Graph4Color=2;
Graph2Color=5;
Graph3Color=4;

Graph5=0;
Graph6=100;
Graph5Style=Graph6Style=1;
Graph5Color=Graph6Color=2;

_SECTION_END();

 



 
Buy =  B1 >= 1;
Sell = S1 >= 1; 
Short = Sh1 >=1;
Cover = Cv1 >=1;

Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy); 
Short = ExRem(Short,Cover);
Cover = ExRem(Cover,Short);

PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorGreen, 0); 
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorRed, 0); 
/* PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorBlue, 0); */