// Downloaded From https://www.WiseStockTrader.com
Plot(C,"Price",colorWhite,64);
FM = ParamToggle("FM", "No|Yes", 1 ); 
MP = Param("MP", 10, 1, 100 );; 
DP1 = Param("DP1", 5, 1, 100 ); 
DP2 = Param("DP2", 8, 1, 100 );; 
DP3 = Param("DP3", 13, 1, 100 ); 
AP = Param("AP", 20, 1, 1, 100 ); 
EN = Param("EN", 1, 1, 3, 1 ); 
MD = 3; 
Capital = Param("CaperTrd", 25000, 10000, 250000, 1000 ); 

M = IIf( FM, StochK( MP, 1 ), StochK( MP, 3 ) ); 

PSlp1 = LinRegSlope(Close,DP1); 
MSlp1 = LinRegSlope(M,DP1); 
DB1 = PSlp1 > 0 AND MSlp1 < 0; 
DS1 = PSlp1 < 0 AND MSlp1 > 0; 

PSlp2 = LinRegSlope(Close,DP2); 
MSlp2 = LinRegSlope(M,DP2); 
DB2 = PSlp2 > 0 AND MSlp2 < 0; 
DS2 = PSlp2 < 0 AND MSlp2 > 0; 

PSlp3 = LinRegSlope(Close,DP3); 
MSlp3 = LinRegSlope(M,DP3); 
DB3 =  PSlp3 > 0 AND MSlp3 < 0; 
DS3 = PSlp3 < 0 AND MSlp3 > 0; 

NB = DB1 + DB2 + DB3; 
NS = DS1 + DS2 + DS3; 

NPSlpUp = ( PSlp1 >= 0 ) + ( PSlp2 >= 0 ) + ( PSlp3 >= 0 ); 
NPSlpDn = ( PSlp1 < 0 ) + ( PSlp2 < 0 ) + ( PSlp3 < 0 ); 

NMSlpup = ( MSlp1 >= 0 ) + ( MSlp2 >= 0 ) + ( MSlp3 >= 0 ); 
NMSlpDn = ( MSlp1 < 0 ) + ( MSlp2 < 0 ) + ( MSlp3 < 0 ); 

GetOut = ( NPSlpUp == MD AND NMSlpUp == MD) OR ( NPSlpDn == MD AND NMSlpDn == MD);  
Cover = Sell = GetOut; // GetOut of all Trd Positions 

Buy = NB >= EN; 
Short = NS >= EN; 

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

BuyPrice=ValueWhen(Buy,C,1);
ShortPrice=ValueWhen(Short,C,1);
SellPrice=ValueWhen(Sell,C,1);
CoverPrice=ValueWhen(Cover,C,1);

PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorBrightGreen,0,BuyPrice);
PlotShapes(IIf(Sell,shapedownArrow,shapeNone),colorRed,0,SellPrice);
PlotShapes(IIf(Short,shapedownArrow,shapeNone),colorYellow,0,ShortPrice);
PlotShapes(IIf(Cover,shapeUpArrow,shapeNone),colorTurquoise,0,CoverPrice);


Title = EncodeColor(colorPink)+  Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) +
 "  - " + Date() +" - "+"\n" +EncodeColor(colorYellow) +"Op-"+O+"  "+"Hi-"+H+"  "+"Lo-"+L+"  "+
"Cl-"+C+"  "+ "Vol= "+ WriteVal(V)+"\n";

SetOption("ReverseSignalForcesExit", True ); // Continuous Trading

SetPositionSize( Capital, spsValue );