
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red

int Gi_76 = 0;
double Gd_80 = 40.0;
int G_period_88 = 12;
double Gd_92 = 2.224;
double G_ibuf_100[];
double G_ibuf_104[];
double G_ibuf_108[];

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   IndicatorBuffers(3);
   SetIndexStyle(0, DRAW_LINE);
   SetIndexBuffer(0, G_ibuf_100);
   SetIndexEmptyValue(1, 0);
   SetIndexBuffer(1, G_ibuf_104);
   SetIndexBuffer(2, G_ibuf_108);
   SetIndexEmptyValue(2, 0);
   return (0);
}
				  		   				  	  	 	     		 	 			  	 					 	 		    	   		 		 								 		  		 			    			  			     	   	  	 		 		 		 	  		 			 									 		 				
// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   double Ld_0;
   int Li_8 = 2020;
   int Li_12 = 6;
   int Li_16 = 18;
   string Ls_20 = Li_8 + "." + Li_12 + "." + Li_16;
   int Li_28 = IndicatorCounted();
   if (Li_28 < 0) return (-1);
   if (Li_28 > 0) Li_28--;
   int Li_32 = Bars - 2 * G_period_88 - 1;
   if (Li_28 >= G_period_88) Li_32 = Bars - Li_28 - 1;
   if (Li_32 < 0) Li_32 = 0;
   if (Gi_76 == 0) {
      for (int Li_36 = Li_32 + G_period_88 + 1; Li_36 >= 0; Li_36--) G_ibuf_104[Li_36] = iATR(NULL, 0, G_period_88, Li_36);
      for (Li_36 = Li_32; Li_36 >= 0; Li_36--) G_ibuf_108[Li_36] = iMAOnArray(G_ibuf_104, 0, G_period_88, 0, MODE_SMMA, Li_36);
   } else Ld_0 = Gd_80;
   for (int Li_40 = Li_32; Li_40 >= 0; Li_40--) {
      if (Gi_76 == 0) Ld_0 = G_ibuf_108[Li_40] * Gd_92;
      else Ld_0 = Gd_80 * Point;
      if (Close[Li_40] == G_ibuf_100[Li_40 + 1]) G_ibuf_100[Li_40] = G_ibuf_100[Li_40 + 1];
      else {
         if (Close[Li_40 + 1] <= G_ibuf_100[Li_40 + 1] && Close[Li_40] < G_ibuf_100[Li_40 + 1]) G_ibuf_100[Li_40] = MathMin(G_ibuf_100[Li_40 + 1], Close[Li_40] + Ld_0);
         else {
            if (Close[Li_40 + 1] >= G_ibuf_100[Li_40 + 1] && Close[Li_40] > G_ibuf_100[Li_40 + 1]) G_ibuf_100[Li_40] = MathMax(G_ibuf_100[Li_40 + 1], Close[Li_40] - Ld_0);
            else {
               if (Close[Li_40] > G_ibuf_100[Li_40 + 1]) G_ibuf_100[Li_40] = Close[Li_40] - Ld_0;
               else G_ibuf_100[Li_40] = Close[Li_40] + Ld_0;
            }
         }
      }
   }
   return (0);
}