//+------------------------------------------------------------------+ 
//|                                               BrainTrend1Sig.mq4 | 
//|                                     BrainTrading Inc. System 7.0 | 
//|                                      http://www.braintrading.com | 
//+------------------------------------------------------------------+ 
#property copyright "BrainTrading Inc. System 7.0" 
#property link      "http://www.braintrading.com" 

#property indicator_chart_window 
#property indicator_buffers 2 
#property indicator_color1 Magenta 
#property indicator_color2 Aqua 
//---- input parameters 
extern int       NumBars=5000; 
extern int       EnableAlerts=0; 
extern int       SignalID=0; 
//---- buffers 
double ExtMapBuffer1[]; 
double ExtMapBuffer2[]; 
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         | 
//+------------------------------------------------------------------+ 
int init() 
  { 
//---- indicators 
   SetIndexStyle(0,DRAW_ARROW); 
   SetIndexArrow(0,108); 
   SetIndexBuffer(0,ExtMapBuffer1); 
   SetIndexEmptyValue(0,0.0); 
   SetIndexStyle(1,DRAW_ARROW); 
   SetIndexArrow(1,108); 
   SetIndexBuffer(1,ExtMapBuffer2); 
   SetIndexEmptyValue(1,0.0); 
//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| Custor indicator deinitialization function                       | 
//+------------------------------------------------------------------+ 
int deinit() 
  { 
//---- 
    
//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| Custom indicator iteration function                              | 
//+------------------------------------------------------------------+ 
int start() 
  { 
   int    counted_bars=IndicatorCounted(); 
//---- 

double    value2=0; 
double    value3=0; 
double    value11=0; 
double    x1=0; 
double    x2=0; 
double    Range=0; 
double    val1=0; 
double    val2=0; 
int    shift=0; 
double    abrs=0; 
double    s=1.5; 
double    p=0; 
double    r=0; 
double    r1=0; 
double    value21=0; 
double    prev=0; 
double    d=2.3; 
double    f=7; 
double    h11=0; 
double    h12=0; 
double    h13=0; 
double    const=0; 
double    orig=0; 
double    st=0; 
double    h2=0; 
double    h1=0; 
double    h10=0; 
double    sxs=0; 
double    sms=0; 
double    temp=0; 
double    a1=0; 
double    per1=0; 
double    a1x=0; 
double    h5=0; 
double    tsig=0; 
double    r1s=0; 
double    r2s=0; 
double    r3s=0; 
double    r4s=0; 
double    pt=0; 
double    pts=0; 
double    r2=0; 
double    r3=0; 
double    r4=0; 
double    tt=0; 

st=1; 
if (st == 1) 
   { 
   value11 = 9; 
   x1 = 53; 
   x2 = 47; 
   if (Bars < NumBars) abrs = Bars - 11; else abrs = NumBars - 11; 
    
  shift=abrs; 

while(shift>=0) 

      { 
      Range = iATR(NULL,0,f,shift); 
      value2 = iStochastic(NULL,0,value11,value11,1,0,0,0,shift); 
      val1 = 0; 
      val2 = 0; 
      if (value2 < x2 && MathAbs(Close[shift] - Close[shift + 2]) > Range / d) 
         { 
         if (p == 2 || p == 0) 
            { 
            value3 = High[shift] + Range * s / 4; 
            val1 = value3; 
            p = 1; 
            } 
         } 
      if (value2 > x1 && MathAbs(Close[shift] - Close[shift + 2]) > Range / d) 
         { 
         if (p == 1 || p == 0 ) 
            { 
            value3 = Low[shift] - Range * s / 4; 
            val2 = value3; 
            p = 2; 
            } 
         } 
           ExtMapBuffer1[shift]=val1; 
      ExtMapBuffer2[shift]=val2;  
    
       shift--; 
      } 
   } 

if (EnableAlerts == 1) 
   { 
   if (val1 > 0 && tsig != 1) 
      { 
      tsig = 1; 
      a1 = FileOpen("alert1" + SignalID,";"); 
      FileWrite(a1,"Sell " ,Symbol() ," at ", Close[0] , " S/L " , val1 , " BT1 M" ,Period()); 
      FileClose(a1); 
      } 
   if (val2 > 0 && tsig != 2) 
      { 
      tsig = 2; 
      a1 = FileOpen("alert1" + SignalID,";"); 
      FileWrite(a1,"Buy " , Symbol() , " at " ,Close[0] ," S/L " ,val2 ," BT1 M" , Period()); 
      FileClose(a1); 
      } 
   } 

//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+