//+------------------------------------------------------------------+
//|                                                      tc_hilo.mq4 |
//|                                   Copyright © 2010, Thomas Liles |
//|                                       http://www.trendchaser.org |
//|                        need something coded? tomhliles@yahoo.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Thomas Liles"
#property link      "http://www.trendchaser.org"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 DeepSkyBlue
#property indicator_color2 DeepSkyBlue
#property indicator_color3 Orange
#property indicator_color4 Orange
//-------------------------------------------------------------------+
extern string trend_ma ="trend ma settings";
extern int    time_frame           = 60;
extern int    trend_period=8;
extern int    shift=0;
extern int    method=0;
extern int    price=0;

extern string upper ="upper ma";
extern int    hi_period=2;
extern int    hi_shift=0;
extern int    hi_method=1;
 int    hi_price=2;

extern string lower ="lower ma";
extern int    lo_period=2;
extern int    lo_shift=0;
extern int    lo_method=1;
 int    lo_price=3;
 
extern string DSS ="Robby DSS Bressert";
 bool      AlertOn = False;
extern int       EMA_period=21;
extern int       Stochastic_period=34;

extern string cci ="cci settings ma";
extern int    cci_period=55;
extern int    cci_price=0;
extern int    cci_upper=100;
extern int    cci_lower=-100;
 
extern bool   play_sound    = false; 
extern bool   popup    = false;
extern bool   mail    = false;

//-------------------------------------------------------------------+
int bar;
bool long=true,short=true;
static double h1[];
static double h2[];
static double h3[];
static double h4[];
//-------------------------------------------------------------------+
int init()
  {
   IndicatorShortName("hi lo");
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexStyle(2,DRAW_HISTOGRAM);
   SetIndexStyle(3,DRAW_HISTOGRAM);
   SetIndexBuffer(0,h1);
   SetIndexBuffer(1,h2);
   SetIndexBuffer(2,h3);
   SetIndexBuffer(3,h4);
   SetIndexLabel(0,"h1");
   SetIndexLabel(1,"h2");
   SetIndexLabel(2,"h3");
   SetIndexLabel(3,"h4");
   SetIndexDrawBegin(0,0);
   SetIndexDrawBegin(1,0);
   SetIndexDrawBegin(2,0);
   SetIndexDrawBegin(3,0);
   return(0);
  }
//-------------------------------------------------------------------+
int deinit()
  {

   return(0);
  }
//-------------------------------------------------------------------+
int start()
  {
   int counted_bars = IndicatorCounted();
   if(counted_bars < 0) return(-1);
   if(counted_bars > 0) counted_bars--;
   int limit = Bars - counted_bars;
   for(int i=limit; i>=0; i--)
     {  
       int bar_shift = iBarShift(NULL,time_frame,Time[i]);
 long=false;short=false;
if(
iStochastic(NULL,time_frame,8,3,4,MODE_SMA,0,MODE_MAIN,bar_shift)>iStochastic(NULL,time_frame,8,3,4,MODE_SMA,0,MODE_SIGNAL,bar_shift)
&&iStochastic(NULL,0,8,3,4,MODE_SMA,0,MODE_MAIN,i)>iStochastic(NULL,0,8,3,4,MODE_SMA,0,MODE_SIGNAL,i)
&&iStochastic(NULL,0,8,3,4,MODE_SMA,0,MODE_MAIN,i)<80
&&iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i)>iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,i)
 ){
long=true;
short=false;
}
if(
iStochastic(NULL,time_frame,8,3,4,MODE_SMA,0,MODE_MAIN,bar_shift)<iStochastic(NULL,time_frame,8,3,4,MODE_SMA,0,MODE_SIGNAL,bar_shift)
&&iStochastic(NULL,0,8,3,4,MODE_SMA,0,MODE_MAIN,i)<iStochastic(NULL,0,8,3,4,MODE_SMA,0,MODE_SIGNAL,i)
&&iStochastic(NULL,0,8,3,4,MODE_SMA,0,MODE_MAIN,i)>20
&&iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i)<iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,i)
){
long=false;short=true;
}
 if(long){
   h1[i] = iLow(NULL,0,i);
   h2[i] = iHigh(NULL,0,i);
   }
 if(short){
    h3[i] =iLow(NULL,0,i);
    h4[i] = iHigh(NULL,0,i);
    }
         if (bar<iBarShift(NULL,0,0)&&i==0)
     {
     if (play_sound)PlaySound("alert.wav");
     if (popup)Alert("jiva signal", Close[0],"!!!");
     if (mail)SendMail("jiva signal", "Price "+DoubleToStr(Bid,Digits));
     bar=iBarShift(NULL,0,0);
     }
     }

   return(0);
  }
//-------------------------------------------------------------------+

