
#property copyright "Limited Maintenance Trading"
#property link      "http://www.lmt-forex-forula.com"

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 Silver

extern int FastEMA = 5;
extern int SlowEMA = 13;
extern int SignalSMA = 1;
double gda_88[];
double g_ibuf_92[];
double g_ibuf_96[];
double g_ibuf_100[];

int init() {
   SetIndexStyle(0, DRAW_HISTOGRAM);
   SetIndexStyle(1, DRAW_HISTOGRAM);
   SetIndexStyle(2, DRAW_LINE);
   SetIndexDrawBegin(1, SignalSMA);
   IndicatorDigits(Point + 1.0);
   SetIndexBuffer(0, g_ibuf_92);
   SetIndexBuffer(1, g_ibuf_96);
   SetIndexBuffer(2, g_ibuf_100);
   IndicatorShortName("Trigger");
   SetIndexLabel(0, "MACD UP");
   SetIndexLabel(1, "MACD DN");
   SetIndexLabel(2, "Signal");
   return (0);
}

int start() {
   int li_4 = IndicatorCounted();
   if (li_4 > 0) li_4--;
   int li_0 = Bars - li_4;
   int li_8 = li_0;
   if (li_8 < Bars - 5) li_8 += 5;
   ArrayResize(gda_88, li_8);
   ArraySetAsSeries(gda_88, TRUE);
   for (int li_12 = 0; li_12 < li_8; li_12++) gda_88[li_12] = (iMA(NULL, 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, li_12) - iMA(NULL, 0, SlowEMA, 0, MODE_EMA, PRICE_CLOSE, li_12)) / Point;
   for (li_12 = 0; li_12 < li_0; li_12++) {
      for (int li_16 = li_12 + 1; gda_88[li_12] == gda_88[li_16] && li_16 - li_12 <= 5; li_16++) {
      }
      if (gda_88[li_12] > gda_88[li_16]) {
         g_ibuf_92[li_12] = gda_88[li_12];
         g_ibuf_96[li_12] = 0;
      } else {
         g_ibuf_96[li_12] = gda_88[li_12];
         g_ibuf_92[li_12] = 0;
      }
   }
   for (li_12 = 0; li_12 < li_0; li_12++) g_ibuf_100[li_12] = iMAOnArray(gda_88, Bars, SignalSMA, 0, MODE_SMA, li_12);
   return (0);
}