/*
   Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
   Website: http://purebeam.biz
   E-mail : purebeam@gmail.com
*/
#property copyright "Copyright © 2009 Irishtrader"
#property link      "Irishtrader"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_color2 Aqua

double g_ibuf_76[];
double g_ibuf_80[];
extern int FasterEMA = 5;
extern int SlowerEMA = 13;
extern int RSIPeriod = 21;
extern bool Alerts = FALSE;
bool gi_100 = FALSE;
bool gi_104 = FALSE;
bool gi_108 = FALSE;
bool gi_112 = FALSE;
int gi_116 = 0;
int gi_120 = 0;
int gi_124 = 0;

int init() {
   SetIndexStyle(0, DRAW_ARROW, EMPTY);
   SetIndexArrow(0, SYMBOL_ARROWUP);
   SetIndexBuffer(0, g_ibuf_76);
   SetIndexStyle(1, DRAW_ARROW, EMPTY);
   SetIndexArrow(1, SYMBOL_ARROWDOWN);
   SetIndexBuffer(1, g_ibuf_80);
   return (0);
}

int deinit() {
   return (0);
}

int start() {
   int li_0;
   double l_ima_4;
   double l_ima_12;
   double l_ima_20;
   double l_ima_28;
   double l_ima_36;
   double l_ima_44;
   double l_irsi_52;
   double l_irsi_60;
   double l_irsi_68;
   double ld_76;
   double ld_84;
   int li_92 = IndicatorCounted();
   if (li_92 < 0) return (-1);
   if (li_92 > 0) li_92--;
   int li_96 = Bars - li_92;
   for (int li_100 = 0; li_100 <= li_96; li_100++) {
      li_0 = li_100;
      ld_76 = 0;
      ld_84 = 0;
      for (li_0 = li_100; li_0 <= li_100 + 9; li_0++) ld_84 += MathAbs(High[li_0] - Low[li_0]);
      ld_76 = ld_84 / 10.0;
      l_ima_4 = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, li_100);
      l_ima_20 = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, li_100 + 1);
      l_ima_36 = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, li_100 - 1);
      l_ima_12 = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, li_100);
      l_ima_28 = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, li_100 + 1);
      l_ima_44 = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, li_100 - 1);
      l_irsi_52 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, li_100);
      l_irsi_60 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, li_100 + 1);
      l_irsi_68 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, li_100 - 1);
      if (l_irsi_52 > 50.0 && l_irsi_60 < 50.0 && l_irsi_68 > 50.0) {
         gi_104 = TRUE;
         gi_112 = FALSE;
      }
      if (l_irsi_52 < 50.0 && l_irsi_60 > 50.0 && l_irsi_68 < 50.0) {
         gi_104 = FALSE;
         gi_112 = TRUE;
      }
      if (l_ima_4 > l_ima_12 && l_ima_20 < l_ima_28 && l_ima_36 > l_ima_44) {
         gi_100 = TRUE;
         gi_108 = FALSE;
      }
      if (l_ima_4 < l_ima_12 && l_ima_20 > l_ima_28 && l_ima_36 < l_ima_44) {
         gi_100 = FALSE;
         gi_108 = TRUE;
      }
      if (gi_100 == TRUE && gi_104 == TRUE && gi_116 != 1) {
         g_ibuf_76[li_100] = Low[li_100] - 1.3 * ld_76;
         if (li_100 <= 2 && Alerts && !gi_120) {
            Alert(Symbol(), " ", Period(), "M  EMACross UP ");
            gi_120 = TRUE;
            gi_124 = FALSE;
         }
         gi_116 = 1;
      } else {
         if (gi_108 == TRUE && gi_112 == TRUE && gi_116 != 2) {
            g_ibuf_80[li_100] = High[li_100] + 1.3 * ld_76;
            if (li_100 <= 2 && Alerts && !gi_124) {
               Alert(Symbol(), " ", Period(), "M  EMACross DOWN ");
               gi_124 = TRUE;
               gi_120 = FALSE;
            }
            gi_116 = 2;
         }
      }
   }
   return (0);
}
