Lines HiLo_ Periodical





//+------------------------------------------------------------------+
//|                                                        Lines_HiLo_Periodical.mq4 |
//|                      
//|                                      
//+------------------------------------------------------------------+
#property copyright "TradeForex"
#property link      ""

#property indicator_chart_window




//extern int Lookback_Period = 1
extern int Days_into_Curr_Week = 1;
extern int Days_into_Curr_Mnth = 1;
extern int Days_into_Curr_Year = 109;
extern int _Days_into_Curr_Year_To_May31_ = 109;
extern int No_of_Days_in_Prev_Wk = 5;
extern int Days_in_Prev_Month = 23;
extern int Days_in_Prev_Year = 245;







//int DayOfYear();
//double Curr_Yr_Daily_Bars_To_Today = 0;


double Daily_Period_Low=0;
double Daily_Period_High=0;
double Daily_Period_Low_Line;
double Daily_Period_High_Line;



double Curr_Wk_Period_High = 0;
double Curr_Wk_Period_Low = 0;
double Prev_Wk_Period_High = 0;
double Prev_Wk_Period_Low = 0;

double Curr_Wk_Period_High_Line;
double Curr_Wk_Period_Low_Line;

double Prev_Wk_Period_High_Line;
double Prev_Wk_Period_Low_Line;


double Curr_Month_Period_Low=0;
double Curr_Month_Period_High=0;
double Curr_Month_Period_Low_Line;
double Curr_Month_Period_High_Line;

double Prev_Month_Period_Low=0;
double Prev_Month_Period_High=0;
double Prev_Month_Period_Low_Line;
double Prev_Month_Period_High_Line;

double Curr_Year_Period_Low=0;
double Curr_Year_Period_High=0;
double Curr_Year_Period_Low_Line;
double Curr_Year_Period_High_Line;

double Prev_Year_Period_Low=0;
double Prev_Year_Period_High=0;
double Prev_Year_Period_Low_Line;
double Prev_Year_Period_High_Line;




//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+

   
int init()
  {


   return(0);
  }

//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{
        return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{


        Daily_Period_High =High[Highest(NULL,0,MODE_HIGH,1,1)];
        Daily_Period_Low =Low[Lowest(NULL,0,MODE_LOW,1,1)];
        Daily_Period_Low_Line =  (Daily_Period_Low );
        Daily_Period_High_Line =  (Daily_Period_High );
        
        Curr_Wk_Period_High =High[Highest(NULL,0,MODE_HIGH,Days_into_Curr_Week,0 )];    
        Curr_Wk_Period_Low =Low[Lowest(NULL,0,MODE_LOW,Days_into_Curr_Week,0 )];
   
        Prev_Wk_Period_High =High[Highest(NULL,0,MODE_HIGH,No_of_Days_in_Prev_Wk,Days_into_Curr_Week)];
        Prev_Wk_Period_Low =Low[Lowest(NULL,0,MODE_LOW,No_of_Days_in_Prev_Wk,Days_into_Curr_Week)];
      
      
        Curr_Wk_Period_High_Line =  (Curr_Wk_Period_High );      
        Curr_Wk_Period_Low_Line =  (Curr_Wk_Period_Low );
      
        Prev_Wk_Period_High_Line =  (Prev_Wk_Period_High );
        Prev_Wk_Period_Low_Line =  (Prev_Wk_Period_Low );
         
        Curr_Month_Period_High =High[Highest(NULL,0,MODE_HIGH,Days_into_Curr_Mnth,0)];
        Curr_Month_Period_Low =Low[Lowest(NULL,0,MODE_LOW,Days_into_Curr_Mnth,0)];
        Curr_Month_Period_Low_Line =  (Curr_Month_Period_Low );
        Curr_Month_Period_High_Line =  (Curr_Month_Period_High ); 
        
        Prev_Month_Period_High =High[Highest(NULL,0,MODE_HIGH,Days_in_Prev_Month,Days_into_Curr_Mnth)];
        Prev_Month_Period_Low =Low[Lowest(NULL,0,MODE_LOW,Days_in_Prev_Month,Days_into_Curr_Mnth)];
        Prev_Month_Period_Low_Line =  (Prev_Month_Period_Low );
        Prev_Month_Period_High_Line =  (Prev_Month_Period_High );
        
        Curr_Year_Period_High =High[Highest(NULL,0,MODE_HIGH,Days_into_Curr_Year,0)];
        Curr_Year_Period_Low =Low[Lowest(NULL,0,MODE_LOW,Days_into_Curr_Year,0)];
        Curr_Year_Period_Low_Line =  (Curr_Year_Period_Low );
        Curr_Year_Period_High_Line =  (Curr_Year_Period_High );    
        
        Prev_Year_Period_High =High[Highest(NULL,0,MODE_HIGH,Days_in_Prev_Year,Days_into_Curr_Year)];
        Prev_Year_Period_Low =Low[Lowest(NULL,0,MODE_LOW,Days_in_Prev_Year,Days_into_Curr_Year)];
       
        Prev_Year_Period_Low_Line =  (Prev_Year_Period_Low );
        Prev_Year_Period_High_Line =  (Prev_Year_Period_High );          

   {
      
      
      SetLevel("Current Week High", Curr_Wk_Period_High_Line, Salmon); //Green
      SetLevel("Current Week Low", Curr_Wk_Period_Low_Line , Salmon); //G      
      SetLevel("Previous Week High", Prev_Wk_Period_High_Line, LightSalmon); //Green
      SetLevel("Previous Week Low", Prev_Wk_Period_Low_Line, LightSalmon); //G
      
      SetLevel("Current Months High", Curr_Month_Period_High_Line, Green); //Green
      SetLevel("Current Months Low", Curr_Month_Period_Low_Line, Green); //G
      
      SetLevel("Previous Months High", Prev_Month_Period_High_Line, LightGreen); //Green
      SetLevel("Previous Months Low", Prev_Month_Period_Low_Line, LightGreen); //G
      
      SetLevel("Current Year High", Curr_Year_Period_High_Line, Gold); //Green
      SetLevel("Current Year Low", Curr_Year_Period_Low_Line, Gold); //G
      SetLevel("Previous Year High", Prev_Year_Period_High_Line, Beige); //Green
      SetLevel("Previous Year Low", Prev_Year_Period_Low_Line, Beige); //G
      
      SetLevel("Yesterdays High", Daily_Period_High_Line, Blue); //Blue
      SetLevel("Yesterdays Low", Daily_Period_Low_Line, Blue); //Blue
      
       }
   

  
   return(0);
}

void SetLevel(string text, double level, color col1)
{
   string labelname= text + " Label";
   string linename= text + " Line";

   if (ObjectFind(labelname) != 0) {
      ObjectCreate(labelname, OBJ_TEXT, 0, Time[20], level);
      ObjectSetText(labelname, " " + text, 8, "Arial", White);
   }
   else {
      ObjectMove(labelname, 0, Time[20], level);
   }
   
   if (ObjectFind(linename) != 0) {
      ObjectCreate(linename, OBJ_HLINE, 0, Time[40], level);
      ObjectSet(linename, OBJPROP_STYLE, STYLE_SOLID);
      ObjectSet(linename,OBJPROP_LEVELWIDTH, 5);
      ObjectSet(linename, OBJPROP_COLOR, col1);
      
      }
   else {
      ObjectMove(linename, 0, Time[40], level);
      
   }
}
      



Sample





Analysis



Market Information Used:

Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Series array that contains open time of each bar


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: