/*
   G e n e r a t e d  by ex4-to-mq4 decompiler FREEWARE 4.0.509.5
   Website: h T Tp : / /w wW . me t AQ uo T Es . n et
   E-mail : s uP poRT @ m et A QUO t E S. net
*/

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 White
#property indicator_color2 Yellow

extern int N = 9;
extern int N1 = 9;
extern int mode = 1;
double G_ibuf_88[];
double G_ibuf_92[];
int Gi_96 = 0;
int Gi_100 = 0;

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   string Ls_unused_0;
   IndicatorBuffers(6);
   SetIndexStyle(0, DRAW_LINE);
   SetIndexBuffer(0, G_ibuf_88);
   SetIndexStyle(1, DRAW_LINE);
   SetIndexBuffer(1, G_ibuf_92);
   IndicatorShortName("XMA(" + N + ")");
   Gi_96 = N;
   Gi_100 = Gi_96 + N1;
   SetIndexDrawBegin(0, Gi_96);
   SetIndexDrawBegin(1, Gi_100);
   return (0);
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   double Ld_0;
   int Li_8 = IndicatorCounted();
   if (Bars <= Gi_100) return (0);
   if (Li_8 < 1) {
      for (int Li_12 = 1; Li_12 <= Gi_96; Li_12++) G_ibuf_88[Bars - Li_12] = 0;
      for (Li_12 = 1; Li_12 <= Gi_100; Li_12++) G_ibuf_92[Bars - Li_12] = 0;
   }
   if (Li_8 > 0) Li_8--;
   int Li_16 = Bars - Li_8 + MathMax(N, N1) + 2.0;
   for (Li_12 = Li_16; Li_12 >= 0; Li_12--) {
      if (Li_12 >= (N - 1) / 2) {
         Ld_0 = 0;
         for (int Li_20 = Li_12 + (N - 1) / 2; Li_20 >= Li_12 - (N - 1) / 2; Li_20--) Ld_0 += f0_0(Li_20, mode);
         G_ibuf_88[Li_12] = Ld_0 / N;
      } else {
         Ld_0 = 0;
         for (Li_20 = Li_12 + (N - 1) / 2; Li_20 >= 0; Li_20--) Ld_0 += f0_0(Li_20, mode);
         G_ibuf_88[Li_12] = (Ld_0 + Ld_0 * ((N - 1) / 2 - Li_12) / ((N - 1) / 2 + Li_12 + 1)) / N;
      }
   }
   for (Li_12 = Li_16; Li_12 >= 0; Li_12--) {
      if (Li_12 >= (N1 - 1) / 2) {
         Ld_0 = 0;
         for (Li_20 = Li_12 + (N1 - 1) / 2; Li_20 >= Li_12 - (N1 - 1) / 2; Li_20--) Ld_0 += G_ibuf_88[Li_20];
         G_ibuf_92[Li_12] = Ld_0 / N1;
      } else {
         Ld_0 = 0;
         for (Li_20 = Li_12 + (N1 - 1) / 2; Li_20 >= 0; Li_20--) Ld_0 += G_ibuf_88[Li_20];
         G_ibuf_92[Li_12] = (Ld_0 + Ld_0 * ((N1 - 1) / 2 - Li_12) / ((N1 - 1) / 2 + Li_12 + 1)) / N1;
      }
   }
   return (0);
}

// 0867F43E27585E019C13F7F4B7C4AB6B
double f0_0(int Ai_0, int Ai_4) {
   double Ld_ret_8 = 0;
   switch (Ai_4) {
   case 0:
      Ld_ret_8 = Open[Ai_0];
      break;
   case 1:
      Ld_ret_8 = Close[Ai_0];
      break;
   case 2:
      Ld_ret_8 = High[Ai_0];
      break;
   case 3:
      Ld_ret_8 = Low[Ai_0];
   }
   return (Ld_ret_8);
}
