//+------------------------------------------------------------------+
//|                                                   tonyTRENDS.mq4 |
//|                                  Copyright © 2009, Qwikisoft.com |
//|                                         http://www.qwikisoft.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Qwikisoft.com"
#property link      "http://www.qwikisoft.com"

#property indicator_chart_window

extern int bars         =  20;
extern bool showHigh    =  true;
extern color high_color =  Blue;
extern bool showLow     =  true;
extern color low_color  =  Red;   

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   Comment("Bars watched:",bars);
      ObjectsDeleteAll();
   if (showHigh)
      draw_high_trend();
   if (showLow)
      draw_low_trend();
//----
   return(0);
  }
//+------------------------------------------------------------------+
void draw_high_trend()
   {
   double h1,left_high,right_high,h2;
   int high_shift,left_shift,right_shift,h2_shift;
   datetime h1_time,h2_time;
       
   high_shift=iHighest(Symbol(),0,MODE_HIGH,bars,0);
   h1=iHigh(Symbol(),0,high_shift);
   
   if (high_shift<(bars-1))
      {
         left_shift=iHighest(Symbol(),0,MODE_HIGH,(bars-high_shift),(high_shift+1));
         left_high=iHigh(Symbol(),0,left_shift);
      }
   else  
      {
         left_high=0;
      }      
   if (high_shift>1)
      { 
         right_shift=iHighest(Symbol(),0,MODE_HIGH,(high_shift-1),0);
         right_high=iHigh(Symbol(),0,right_shift);
      }
   else
      {
         right_high=0;
      }            
   
   if (left_high>right_high)
      {
         h2=left_high;
         h2_shift=left_shift;
      }
   else
      {
         h2=right_high;
         h2_shift=right_shift;
      }
      
   h1_time=iTime(Symbol(),0,high_shift);
   h2_time=iTime(Symbol(),0,h2_shift);         
   
   //Comment ("high :",high_shift,"\n","left high :",left_shift,"\n","right high :",right_shift,"\n","high =",h1,"\n","Second high =",h2);
   
   ObjectCreate("high_trend",OBJ_TREND,0,h1_time,h1,h2_time,h2);
   ObjectSet("high_trend",OBJPROP_COLOR,high_color);
   
   }
   
   
//+------------------------------------------------------------------+
 
void draw_low_trend()
   {
   double l1,left_low,right_low,l2;
   int low_shift,low_left_shift,low_right_shift,l2_shift;
   datetime l1_time,l2_time;
       
   low_shift=iLowest(Symbol(),0,MODE_LOW,bars,0);
   l1=iLow(Symbol(),0,low_shift);
   
   if (low_shift<(bars-1))
      {
         low_left_shift=iLowest(Symbol(),0,MODE_LOW,(bars-low_shift),(low_shift+1));
         left_low=iLow(Symbol(),0,low_left_shift);
      }
   else  
      {
         left_low=0;
      }      
   if (low_shift>1)
      { 
         low_right_shift=iLowest(Symbol(),0,MODE_LOW,(low_shift-1),0);
         right_low=iLow(Symbol(),0,low_right_shift);
      }
   else
      {
         right_low=0;
      }            
   
   if (left_low>right_low)
      {
         l2=left_low;
         l2_shift=low_left_shift;
      }
   else
      {
         l2=right_low;
         l2_shift=low_right_shift;
      }
      
   l1_time=iTime(Symbol(),0,low_shift);
   l2_time=iTime(Symbol(),0,l2_shift);         
   
   
   ObjectCreate("low_trend",OBJ_TREND,0,l1_time,l1,l2_time,l2);
   ObjectSet("low_trend",OBJPROP_COLOR,low_color);
   
   }   
//+------------------------------------------------------------------+   