//+------------------------------------------------------------------+
//|                                      Auto Regression Channel v2.mq4 |
//|                                 Copyright © 2011, Michael Edward |
//|                                              kingooofx@yahoo.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Michael Edward"
#property link      "kingooofx@yahoo.com"

#property indicator_chart_window

extern color small_color=Maroon;
extern color big_color=MidnightBlue;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
ObjectsDeleteAll(0, OBJ_REGRESSION);

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
ObjectsDeleteAll(0, OBJ_REGRESSION);

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
ObjectsDeleteAll(0, OBJ_REGRESSION);

   int    counted_bars=IndicatorCounted();
//----
//for 1Hr
      draw_1("1hr_small", iTime(Symbol(),PERIOD_D1,1), iTime(Symbol(),PERIOD_D1,0) ,small_color);
      draw_1("1hr_big", iTime(Symbol(),PERIOD_D1,2), iTime(Symbol(),PERIOD_D1,0) ,big_color);
//for 4Hr
      draw_4("4hr_small", Time[iBarShift(Symbol(), PERIOD_H4, iTime(Symbol(),PERIOD_W1,1))-1], Time[iBarShift(Symbol(), PERIOD_H4, iTime(Symbol(),PERIOD_W1,0))-1] ,small_color);
      draw_4("4hr_big", Time[iBarShift(Symbol(), PERIOD_H4, iTime(Symbol(),PERIOD_W1,2))-1], Time[iBarShift(Symbol(), PERIOD_H4, iTime(Symbol(),PERIOD_W1,0))-1] ,big_color);
//for Daily
      draw_daily("daily_small", iTime(Symbol(),PERIOD_MN1,1), iTime(Symbol(),PERIOD_MN1,0) ,small_color);
      draw_daily("daily_big", iTime(Symbol(),PERIOD_MN1,2), iTime(Symbol(),PERIOD_MN1,0) ,big_color);
//for 30MIN.
if (Hour()>=12)
{
draw_half("half_small", iTime(Symbol(),PERIOD_D1,0), Time[iBarShift(Symbol(), PERIOD_M30, iTime(Symbol(),PERIOD_D1,0))-24] ,small_color);
draw_half("half_big", Time[iBarShift(Symbol(), PERIOD_M30, iTime(Symbol(),PERIOD_D1,0))+24], Time[iBarShift(Symbol(), PERIOD_M30, iTime(Symbol(),PERIOD_D1,0))-24] ,big_color);
}
if (Hour()<12)
{
draw_half("half_small", Time[iBarShift(Symbol(), PERIOD_M30, iTime(Symbol(),PERIOD_D1,0))+24], iTime(Symbol(),PERIOD_D1,0) ,small_color);
draw_half("half_big", iTime(Symbol(),PERIOD_D1,1), iTime(Symbol(),PERIOD_D1,0) ,big_color);
}
//for 15MIN.
if (Hour()<6)
{
draw_quart("quart_small", Time[iBarShift(Symbol(), PERIOD_M15, iTime(Symbol(),PERIOD_D1,0))+24], iTime(Symbol(),PERIOD_D1,0) ,small_color);
draw_quart("quart_big", Time[iBarShift(Symbol(), PERIOD_M15, iTime(Symbol(),PERIOD_D1,0))+48], iTime(Symbol(),PERIOD_D1,0) ,big_color);
}
if (Hour()>=6 && Hour()<12)
{
draw_quart("quart_small", iTime(Symbol(),PERIOD_D1,0), Time[iBarShift(Symbol(), PERIOD_M15, iTime(Symbol(),PERIOD_D1,0))-24] ,small_color);
draw_quart("quart_big", Time[iBarShift(Symbol(), PERIOD_M15, iTime(Symbol(),PERIOD_D1,0))+24], Time[iBarShift(Symbol(), PERIOD_M15, iTime(Symbol(),PERIOD_D1,0))-24] ,big_color);
}
if (Hour()>=12 && Hour()<18)
{
draw_quart("quart_small", Time[iBarShift(Symbol(), PERIOD_M15, iTime(Symbol(),PERIOD_D1,0))-24], Time[iBarShift(Symbol(), PERIOD_M15, iTime(Symbol(),PERIOD_D1,0))-48] ,small_color);
draw_quart("quart_big", iTime(Symbol(),PERIOD_D1,0), Time[iBarShift(Symbol(), PERIOD_M15, iTime(Symbol(),PERIOD_D1,0))-48] ,big_color);
}
if (Hour()>=18)
{
draw_quart("quart_small", Time[iBarShift(Symbol(), PERIOD_M15, iTime(Symbol(),PERIOD_D1,0))-48], Time[iBarShift(Symbol(), PERIOD_M15, iTime(Symbol(),PERIOD_D1,0))-72] ,small_color);
draw_quart("quart_big", Time[iBarShift(Symbol(), PERIOD_M15, iTime(Symbol(),PERIOD_D1,0))-24], Time[iBarShift(Symbol(), PERIOD_M15, iTime(Symbol(),PERIOD_D1,0))-72] ,big_color);
}

//----
   return(0);
  }
  

//---------------------------------------------------------------------------------------------------------
void draw_quart(string name,datetime T1,datetime T2,color Coloree)
    {
         ObjectCreate(name, OBJ_REGRESSION, 0,T1,0,T2,0);
         ObjectSet(name, OBJPROP_COLOR, Coloree);
         ObjectSet(name, OBJPROP_BACK, true);
          ObjectSet(name, OBJPROP_RAY, true);
          ObjectSet(name,OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15);
    }  

void draw_half(string name,datetime T1,datetime T2,color Coloree)
    {
         ObjectCreate(name, OBJ_REGRESSION, 0,T1,0,T2,0);
         ObjectSet(name, OBJPROP_COLOR, Coloree);
         ObjectSet(name, OBJPROP_BACK, true);
          ObjectSet(name, OBJPROP_RAY, true);
          ObjectSet(name,OBJPROP_TIMEFRAMES, OBJ_PERIOD_M30);
    }  

void draw_1(string name,datetime T1,datetime T2,color Coloree)
    {
         ObjectCreate(name, OBJ_REGRESSION, 0,T1,0,T2,0);
         ObjectSet(name, OBJPROP_COLOR, Coloree);
         ObjectSet(name, OBJPROP_BACK, true);
          ObjectSet(name, OBJPROP_RAY, true);
          ObjectSet(name,OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1);
    }  

void draw_4(string name,datetime T1,datetime T2,color Coloree)
    {
         ObjectCreate(name, OBJ_REGRESSION, 0,T1,0,T2,0);
         ObjectSet(name, OBJPROP_COLOR, Coloree);
         ObjectSet(name, OBJPROP_BACK, true);
          ObjectSet(name, OBJPROP_RAY, true);
          ObjectSet(name,OBJPROP_TIMEFRAMES, OBJ_PERIOD_H4);
    }  

void draw_daily(string name,datetime T1,datetime T2,color Coloree)
    {
         ObjectCreate(name, OBJ_REGRESSION, 0,T1,0,T2,0);
         ObjectSet(name, OBJPROP_COLOR, Coloree);
         ObjectSet(name, OBJPROP_BACK, true);
          ObjectSet(name, OBJPROP_RAY, true);
          ObjectSet(name,OBJPROP_TIMEFRAMES, OBJ_PERIOD_D1);
    }  
//+------------------------------------------------------------------+