
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Crimson
#property indicator_color2 SteelBlue
#property indicator_color3 SteelBlue
#property indicator_color4 Crimson
#property indicator_color5 SteelBlue
#property indicator_color6 Crimson

extern int SignalPeriod = 9;
int Gi_80 = 4;
extern int SLpips = 200;
extern bool AlertON = false;
extern ENUM_BASE_CORNER SignalCorner = CORNER_RIGHT_UPPER;

int G_color_96 = Crimson;
int G_color_100 = DodgerBlue;
int Gi_104 = 234;
int Gi_108 = 233;
int G_fontsize_112 = 11;
string Gs_verdana_116 = "Impact";
string Gs_124;
datetime G_time_132;
int Gi_136 = 1;
int Gi_140 = 2;
int Gi_144 = 1;
int G_shift_148 = 999;
double G_ibuf_152[];
double G_ibuf_156[];
double G_ibuf_160[];
double G_ibuf_164[];
double G_ibuf_168[];
double G_ibuf_172[];
bool Gi_176 = FALSE;
bool Gi_180 = FALSE;

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   SetIndexBuffer(0, G_ibuf_152);
   SetIndexStyle(0, DRAW_NONE, STYLE_DASHDOTDOT, 0);
   SetIndexArrow(0, 159);
   SetIndexDrawBegin(0, SignalPeriod);
   SetIndexBuffer(1, G_ibuf_156);
   SetIndexStyle(1, DRAW_NONE, STYLE_DASHDOTDOT, 0);
   SetIndexArrow(1, 159);
   SetIndexDrawBegin(1, SignalPeriod);
   SetIndexBuffer(2, G_ibuf_160);
   SetIndexStyle(2, DRAW_ARROW, STYLE_SOLID, 1);
   SetIndexArrow(2, 158);
   SetIndexDrawBegin(2, SignalPeriod);
   SetIndexBuffer(3, G_ibuf_164);
   SetIndexStyle(3, DRAW_ARROW, STYLE_SOLID, 1);
   SetIndexArrow(3, 158);
   SetIndexDrawBegin(3, SignalPeriod);
   SetIndexBuffer(4, G_ibuf_168);
   SetIndexStyle(4, DRAW_LINE, STYLE_DASHDOTDOT, 2);
   SetIndexDrawBegin(4, SignalPeriod);
   SetIndexBuffer(5, G_ibuf_172);
   SetIndexStyle(5, DRAW_LINE, STYLE_DASHDOTDOT, 2);
   SetIndexDrawBegin(5, SignalPeriod);
 
   
   return (0);
}
	 		  	  	 					    				 	  	   	     	  	 			    	 	 		 		  	 			     	 	       		 	  	    			  	  			 				  	 	 	  	 	  		 	    		 			    		  	
// 52D46093050F38C27267BCE42543EF60
void deinit() {
   DeleteObjects("Arrow" + Gs_124);
   DeleteObjects("Text" + Gs_124);
   DeleteObjects("TextUp" + Gs_124);
   DeleteObjects("TextDn" + Gs_124);
}

void DeleteObjects(string prfx) {
   for(int i=ObjectsTotal()-1; i>=0; i--) {
      string nm=ObjectName(0,i);
      if(StringSubstr(nm,0,StringLen(prfx))==prfx)
         ObjectDelete(0,nm);
   }
}
			  		     	 		 	 		 		   			  		 	 		     	    							  		   		  	 	 	   	 	    				 	 	 		 	    		 	 	 	  		 				   	 		      		   		 	 		   	
// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   int Li_8;
   double Lda_12[25000];
   double Lda_16[25000];
   double Lda_20[25000];
   double Lda_24[25000];
   double Ld_28;
   double close_36;
   for (int shift_4 = G_shift_148; shift_4 > 0; shift_4--) {
      G_ibuf_152[shift_4] = 0;
      G_ibuf_156[shift_4] = 0;
      G_ibuf_160[shift_4] = 0;
      G_ibuf_164[shift_4] = 0;
      G_ibuf_168[shift_4] = EMPTY_VALUE;
      G_ibuf_172[shift_4] = EMPTY_VALUE;
   }
   for (shift_4 = G_shift_148 - SignalPeriod - 1; shift_4 > 0; shift_4--) {
      Lda_12[shift_4] = iBands(NULL, 0, SignalPeriod, Gi_80, 0, PRICE_CLOSE, MODE_UPPER, shift_4);
      Lda_16[shift_4] = iBands(NULL, 0, SignalPeriod, Gi_80, 0, PRICE_CLOSE, MODE_LOWER, shift_4);
      if (Close[shift_4] > Lda_12[shift_4 + 1]) Li_8 = 1;
      if (Close[shift_4] < Lda_16[shift_4 + 1]) Li_8 = -1;
      if (Li_8 > 0 && Lda_16[shift_4] < Lda_16[shift_4 + 1]) Lda_16[shift_4] = Lda_16[shift_4 + 1];
      if (Li_8 < 0 && Lda_12[shift_4] > Lda_12[shift_4 + 1]) Lda_12[shift_4] = Lda_12[shift_4 + 1];
      Lda_20[shift_4] = Lda_12[shift_4] + (Gi_136 - 1) / 2.0 * (Lda_12[shift_4] - Lda_16[shift_4]);
      Lda_24[shift_4] = Lda_16[shift_4] - (Gi_136 - 1) / 2.0 * (Lda_12[shift_4] - Lda_16[shift_4]);
      if (Li_8 > 0 && Lda_24[shift_4] < Lda_24[shift_4 + 1]) Lda_24[shift_4] = Lda_24[shift_4 + 1];
      if (Li_8 < 0 && Lda_20[shift_4] > Lda_20[shift_4 + 1]) Lda_20[shift_4] = Lda_20[shift_4 + 1];
      if (Li_8 > 0) {
         if (Gi_140 > 0 && G_ibuf_152[shift_4 + 1] == -1.0) {
            G_ibuf_160[shift_4] = Lda_24[shift_4];
            G_ibuf_152[shift_4] = Lda_24[shift_4];
            if (Gi_144 > 0) G_ibuf_168[shift_4] = Lda_24[shift_4];
            if (AlertON == TRUE && shift_4 == 1 && (!Gi_176)) {
               Ld_28 = Low[1];
               if (Low[2] < Ld_28) Ld_28 = Low[2];
               if (Low[3] < Ld_28) Ld_28 = Low[3];
               if (Low[4] < Ld_28) Ld_28 = Low[4];
               Ld_28 -= SLpips * Point;
               close_36 = Close[1];
               f0_5("Buy ALERT", 0, Ld_28, close_36);
               Gi_176 = TRUE;
               Gi_180 = FALSE;
            }
         } else {
            G_ibuf_152[shift_4] = Lda_24[shift_4];
            if (Gi_144 > 0) G_ibuf_168[shift_4] = Lda_24[shift_4];
            G_ibuf_160[shift_4] = -1;
         }
         if (Gi_140 == 2) G_ibuf_152[shift_4] = 0;
         G_ibuf_164[shift_4] = -1;
         G_ibuf_156[shift_4] = -1.0;
         G_ibuf_172[shift_4] = EMPTY_VALUE;
      }
      if (Li_8 < 0) {
         if (Gi_140 > 0 && G_ibuf_156[shift_4 + 1] == -1.0) {
            G_ibuf_164[shift_4] = Lda_20[shift_4];
            G_ibuf_156[shift_4] = Lda_20[shift_4];
            if (Gi_144 > 0) G_ibuf_172[shift_4] = Lda_20[shift_4];
            if (AlertON == TRUE && shift_4 == 1 && (!Gi_180)) {
               Ld_28 = High[1];
               if (High[2] > Ld_28) Ld_28 = High[2];
               if (High[3] > Ld_28) Ld_28 = High[3];
               if (High[4] > Ld_28) Ld_28 = High[4];
               Ld_28 += SLpips * Point;
               close_36 = Close[1];
               f0_5("Sell ALERT", 0, Ld_28, close_36);
               Gi_180 = TRUE;
               Gi_176 = FALSE;
            }
         } else {
            G_ibuf_156[shift_4] = Lda_20[shift_4];
            if (Gi_144 > 0) G_ibuf_172[shift_4] = Lda_20[shift_4];
            G_ibuf_164[shift_4] = -1;
         }
         if (Gi_140 == 2) G_ibuf_156[shift_4] = 0;
         G_ibuf_160[shift_4] = -1;
         G_ibuf_152[shift_4] = -1.0;
         G_ibuf_168[shift_4] = EMPTY_VALUE;
      }
      if (G_ibuf_168[shift_4 + 1] == EMPTY_VALUE)
         if (!(G_ibuf_168[shift_4] == EMPTY_VALUE)) f0_1(Time[shift_4], G_ibuf_168[shift_4]);
      if (G_ibuf_172[shift_4 + 1] == EMPTY_VALUE)
         if (!(G_ibuf_172[shift_4] == EMPTY_VALUE)) f0_2(Time[shift_4], G_ibuf_172[shift_4]);
   }
   if (!(G_ibuf_168[1] == EMPTY_VALUE))
      if (G_ibuf_172[1] == EMPTY_VALUE) f0_0(0);
   if (!(G_ibuf_172[1] == EMPTY_VALUE))
      if (G_ibuf_168[1] == EMPTY_VALUE) f0_0(1);
   return (0);
}
		     		 	 		  						  	 			 		 			   		 	 						 		   	  	 		   		  	 	 		  			  		 	 						 		 				 	       	 	 	 		 		   					   	  								 
// 1766072510E73215188615125158E669
void f0_1(int A_datetime_0, double Ad_4) {
   if (ObjectFind("TextUp" + A_datetime_0) == -1)
      if (ObjectCreate("TextUp" + A_datetime_0, OBJ_TEXT, 0, A_datetime_0, f0_4(Ad_4 - 90.0 * Point))) ObjectSetText("TextUp" + A_datetime_0, "Buy", G_fontsize_112, Gs_verdana_116, G_color_100);
}
	 	      	  		 	   			 	 	 		 	 	  	     	  			   			  	 			 					 	  		 	 	  	  				 		   			   	 			  			     	 		 			  	  		   	  	 	   				 	
// 19A22DE79C4D9918CAE5716DD276D91A
void f0_2(int A_datetime_0, double Ad_4) {
   if (ObjectFind("TextDn" + A_datetime_0) == -1)
      if (ObjectCreate("TextDn" + A_datetime_0, OBJ_TEXT, 0, A_datetime_0, f0_4(Ad_4 + 230.0 * Point))) ObjectSetText("TextDn" + A_datetime_0, "Sell", G_fontsize_112, Gs_verdana_116, G_color_96);
}
		 	      				 	 		 		 	  	 	 	 			       					  	  	  	     				 	   		  	   	     	 		 		 		    	 		  	  	    		   			 	 	 		  	 	 	 	 		 			 	
// 0F4E1AAABD074689B7D3EAD824D1EE8E
void f0_0(int Ai_0) {
   color color_4 = CLR_NONE;
   string text_8 = "";
   string text_16 = "";
   if (Ai_0 == 0) {
      color_4 = G_color_100;
      text_8 = CharToString(Gi_108);
      text_16 = "Trend Up - BUY";
   }
   if (Ai_0 == 1) {
      color_4 = G_color_96;
      text_8 = CharToString(Gi_104);
      text_16 = "Trend Dn - SELL ";
   }
   if (ObjectFind("Arrow" + Gs_124) == -1) ObjectCreate("Arrow" + Gs_124, OBJ_LABEL, 0, 0, 0);
   ObjectSet("Arrow" + Gs_124, OBJPROP_CORNER, SignalCorner);
   ObjectSet("Arrow" + Gs_124, OBJPROP_YDISTANCE, 50);
   ObjectSet("Arrow" + Gs_124, OBJPROP_XDISTANCE, 20);
   ObjectSetText("Arrow" + Gs_124, text_8, G_fontsize_112 * 2, "WingDings", color_4);
   if (ObjectFind("Text" + Gs_124) == -1) ObjectCreate("Text" + Gs_124, OBJ_LABEL, 0, 0, 0);
   ObjectSet("Text" + Gs_124, OBJPROP_CORNER, SignalCorner);
   ObjectSet("Text" + Gs_124, OBJPROP_YDISTANCE, 30);
   ObjectSet("Text" + Gs_124, OBJPROP_XDISTANCE, 20);
   ObjectSetText("Text" + Gs_124, text_16, G_fontsize_112, Gs_verdana_116, color_4);
}
				 		    		 		 	  	 		    		  		   		    		    		 				  	    		    	 	     	    	 		 	 	  	 	     	 	 	 		 		 			    	 			     			  		 	  	   	
// AA82CF3A41CEBBF1D981F099A58AD043
void f0_5(string As_0, double Ad_8, double Ad_16, double Ad_24) {
   string Ls_32;
   string Ls_40;
   string Ls_48;
   string Ls_56;
   string Ls_64;
   if (Time[0] != G_time_132) {
      G_time_132 = Time[0];
      if (Ad_24 != 0.0) Ls_48 = " at price " + DoubleToString(Ad_24, 5);
      else Ls_48 = "";
      if (Ad_8 != 0.0) Ls_40 = ", TakeProfit at " + DoubleToString(Ad_8, 5);
      else Ls_40 = "";
      if (Ad_16 != 0.0) Ls_32 = ", StopLoss at " + DoubleToString(Ad_16, 5);
      else Ls_32 = "";
      Alert(" XCODE: " + As_0 + Ls_48 + Ls_40 + Ls_32 + " ", Symbol(), ", ", Period(), " min chart");
      Ls_56 = " XCODE - " + As_0 + Ls_48;
      Ls_64 = " XCODE: " + As_0 + Ls_48 + Ls_40 + Ls_32 + " " + Symbol() + ", " + Period() + " min chart";
      
   }
}
		   			  	 	 	  				 	   				 					 			  	 	  	 	 				    	    	 		 	    		 	 	   			   				 		  			 			    					 	     	     	 	    	  				  		
// 97232B4EF533E52610C5F05277BD8245
double f0_4(double Ad_0) {
   return (NormalizeDouble(Ad_0, Digits));
}
	 				  		 	   		      			   		     		  		 	  	 	 	  	 				 	 		 	  						  			 			  				       		       					    	 	 			 			 	 	 			  		     	  