

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 DeepSkyBlue
#property indicator_color2 Red
#property indicator_color3 Red

extern string s1 = "Settings";
extern bool AlertMessage = TRUE;
extern bool AlertEmail = TRUE;
double g_period_92 = 14.0;
extern int gi_100 = 80;
extern int gi_104 = 20;
extern bool gi_unused_108 = TRUE;
double g_ibuf_112[];
double g_ibuf_116[];
double g_ibuf_120[];

int init() {
   SetIndexStyle(0, DRAW_ARROW);
   SetIndexArrow(0, 221);
   SetIndexBuffer(0, g_ibuf_112);
   SetIndexEmptyValue(0, 0.0);
   SetIndexStyle(1, DRAW_ARROW);
   SetIndexArrow(1, 222);
   SetIndexBuffer(1, g_ibuf_116);
   SetIndexEmptyValue(1, 0.0);
   SetIndexStyle(2, DRAW_LINE);
   SetIndexBuffer(2, g_ibuf_120);
   SetIndexEmptyValue(1, 0.0);
   return (0);
}

int deinit() {
   return (0);
}

int start() {
   double lda_8[3];
   double l_istochastic_12;
   double l_iatr_0 = iATR(Symbol(), 0, 50, 1);
   for (int l_shift_20 = 0; l_shift_20 < Bars; l_shift_20++) {
      g_ibuf_112[l_shift_20] = 0.0;
      g_ibuf_116[l_shift_20] = 0.0;
      l_istochastic_12 = iStochastic(Symbol(), 0, 80, 10, 10, MODE_SMA, 0, MODE_MAIN, l_shift_20);
      for (int l_index_24 = 0; l_index_24 < 3; l_index_24++) lda_8[l_index_24] = iRSI(Symbol(), 0, g_period_92, PRICE_CLOSE, l_shift_20 + l_index_24);
      if (lda_8[0] > gi_104 && lda_8[1] < gi_104 && lda_8[2] > gi_104 && l_istochastic_12 < 20.0) {
         g_ibuf_112[l_shift_20] = Low[l_shift_20] - l_iatr_0 / 2.0;
         g_ibuf_120[l_shift_20] = Low[l_shift_20] - l_iatr_0;
         g_ibuf_120[l_shift_20 + 1] = g_ibuf_120[l_shift_20];
         g_ibuf_120[l_shift_20 - 1] = g_ibuf_120[l_shift_20];
      }
      if (lda_8[0] < gi_100 && lda_8[1] > gi_100 && lda_8[2] < gi_100 && l_istochastic_12 > 80.0) {
         g_ibuf_116[l_shift_20] = High[l_shift_20] + l_iatr_0 / 2.0;
         g_ibuf_120[l_shift_20] = High[l_shift_20] + l_iatr_0;
         g_ibuf_120[l_shift_20 + 1] = g_ibuf_120[l_shift_20];
         g_ibuf_120[l_shift_20 - 1] = g_ibuf_120[l_shift_20];
      }
   }
   if (g_ibuf_112[2] == 0.0 && g_ibuf_112[1] != 0.0 && Open[0] == Low[0] && Open[0] == High[0] && Open[0] == Close[0]) {
      if (AlertMessage) Alert("DeltaForce Signal: Long Trade at " + Symbol() + ", Stop Loss at " + g_ibuf_120[0]);
      if (AlertEmail) SendMail("DeltaForce Signal: Long Trade", "DeltaForce Signal: Long Trade at " + Symbol() + ", Stop Loss at " + g_ibuf_120[0]);
   }
   if (g_ibuf_116[2] == 0.0 && g_ibuf_116[1] != 0.0 && Open[0] == Low[0] && Open[0] == High[0] && Open[0] == Close[0]) {
      if (AlertMessage) Alert("DeltaForce Signal: Short Trade at " + Symbol() + ", Stop Loss at " + g_ibuf_120[0]);
      if (AlertEmail) SendMail("DeltaForce Signal: Short Trade", "DeltaForce Signal: Short Trade at " + Symbol() + ", Stop Loss at " + g_ibuf_120[0]);
   }
   return (0);
}