//+------------------------------------------------------------------+
//|                                           Market_Open_VLines.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, AG_FX"
#property indicator_chart_window

extern string   Sydney_Open    = "00:00";
extern color    LineColor_Sydney  = Tomato;
extern string   Tokyo_Open     = "02:00";
extern color    LineColor_Tokyo   = Green;
extern string   Frankfurt_Open = "09:00";
extern color    LineColor_Frankfurt = Red;
extern string   London_Open    = "10:00";
extern color    LineColor_London    = Yellow;
extern string   NY_Open        = "15:00";
extern color    LineColor_NY      = Blue;

extern int      LabelPipOffset = 100;
extern int      LabelFontSize  = 9;



//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   /* Delete our objects */
	ObjectDelete("SydOpen");
	ObjectDelete("SydOpen_Label");
	ObjectDelete("TokOpen");
	ObjectDelete("TokOpen_Label");
	ObjectDelete("LonOpen");
	ObjectDelete("LonOpen_Label");
	ObjectDelete("NYOpen");
	ObjectDelete("NYOpen_Label");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   
   /* If period > 1hr, don't draw open lines */
   if (Period() > PERIOD_H4) return(0);
   
   /* Draw the market open lines */
  DrawOpenLine("SydOpen","Sydney Open",Sydney_Open,LineColor_Sydney );
  DrawOpenLine("TokOpen","Tokyo Open",Tokyo_Open,LineColor_Tokyo);
  DrawOpenLine("TokOpen","Tokyo Open",Tokyo_Open,LineColor_Frankfurt);
  DrawOpenLine("LonOpen","London Open",London_Open,LineColor_London);
  DrawOpenLine("NYOpen","NY Open",NY_Open,LineColor_NY);

  
//----
   return(0);
  }
  
  void DrawOpenLine(string ObjName, string ObjText, string OpenTime,color LineColor)
  
  { /* Convert the open time string to datetime */
   datetime t = StrToTime(OpenTime);
   
   /* Create the vertical open line */
      
   ObjectCreate(ObjName,OBJ_VLINE,0,t,0);
   ObjectSet(ObjName,OBJPROP_BACK,true); 
   ObjectSet(ObjName,OBJPROP_COLOR,LineColor);
   ObjectSet(ObjName,OBJPROP_STYLE,STYLE_DOT);
   
     
   /* Determine the vertical position of the label object */
   double p = High[iHighest(NULL,0,MODE_HIGH,WindowBarsPerChart(),1)];
    p = p-(LabelPipOffset*Point);
   
   /* Draw the label object */
   ObjectCreate(ObjName+"_Label",OBJ_TEXT,0,t,p);
   ObjectSetText(ObjName+"_Label",ObjText,LabelFontSize);
   ObjectSet(ObjName+"_Label",OBJPROP_ANGLE,90);
   ObjectSet(ObjName+"_Label",OBJPROP_COLOR,LineColor);
   
     return(0);
}


//+------------------------------------------------------------------+