// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("zigExplorer");

//z_ZigZagValid
// ******** CHARTING 
PercentChange = Param("Zig1",1.50,0,5,0.05);

ZZ = Zig(H,LastValue(PercentChange)) ; 

//Plot ZigZag
//Plot(ZZ,"ZigZag", colorLightGrey,styleLine|styleThick|styleNoLabel);
//Plot(ZZ," ", BarColors,styleDots|styleNoLine);
//Plot(ROC(ZZ,1),"ZZ",colorRed,styleLine|styleOwnScale);
PivotLow = Ref(IIf(Ref(ROC(ZZ,1),-1) < 0 AND ROC(ZZ,1) > 0, 1, Null),1);
PivotHigh = Ref(IIf(Ref(ROC(ZZ,1),-1) > 0 AND ROC(ZZ,1) < 0, 1, Null),1);

/*
Buy_Valid = IIf(C>(1+(LastValue(PercentChange)/100))*(ValueWhen(PivotLow, C,1))
AND ROC(ZZ,1) > 0,1,0); 
Sell_Valid = IIf(C<(1-(LastValue(PercentChange)/100))*(ValueWhen(PivotHigh, C,1))
AND ROC(ZZ,1) < 0,1,0); 
*/

Buy_Valid = IIf(C>(1+(PercentChange/100))*(ValueWhen(PivotLow, C,1))
AND ROC(ZZ,1) > 0,1,0); 
Sell_Valid = IIf(C<(1-(PercentChange/100))*(ValueWhen(PivotHigh, C,1))
AND ROC(ZZ,1) < 0,1,0); 

Buy_Valid = ExRem(Buy_Valid,Sell_Valid);
Sell_Valid = ExRem(Sell_Valid,Buy_Valid);

//Plots the arrows
PlotShapes( shapeSmallUpTriangle*Buy_Valid, colorGreen,0, L, -12); 
PlotShapes( shapeSmallDownTriangle*Sell_Valid, colorRed,0,H, -12) ;





BarColors = 
IIf(BarsSince(Buy_Valid) < BarsSince(Sell_Valid) 
AND BarsSince(Buy_Valid)!=0, colorGreen,
IIf(BarsSince(Sell_Valid) < BarsSince(Buy_Valid)
AND BarsSince(Sell_Valid)!=0,  colorRed, colorBlue));

//Plot the Candlestick charts
Plot(C, "Close", BarColors,  styleCandle ) ; 


Title = Name() + " " + Date() + " Op=" + Open + " Hi=" + High + " Lo=" + Low + " C=" + Close + WriteIf(PivotLow, " Up Pivot
","")+WriteIf(PivotHigh," Down Pivot ","")+ WriteIf(Buy_Valid, " Buy Point ",
"") + WriteIf(Sell_Valid, " Sell Point ", "") ;
_SECTION_END();