Vertical line – indicator MetaTrader 5

The indicator draws a vertical line (OBJ_VLINE) and then moves it to the specified time (hours and minutes).

Input parameters :

Vertical line, inputs

Only hours and minutes are used from the “Use only Hours and minutes” parameter. 

The vertical line is drawn for the current day. If a new day begins, the line is moved to this new day, and is set at the specified hour and minute.

Video:

https://www.youtube.com/watch?v=FVMx6YT1AP4

The indicator has a built-in protection against accidental deletion of the vertical line: the timer periodically checks the existence of the line on the chart. If the vertical line (OBJ_VLINE) is not found, the static variable “prev_date” declared at the global program level is reset to zero:

  Fibonacci Expansion with Custom Values - script MetaTrader 5
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//--- protection against unauthorized deletion
   if(ObjectFind(0,InpName)<0)
     {
      prev_date=0;
      VLineCreate(0,InpName,0,0.0,InpColor,InpStyle,InpWidth);
     }
  }

This will cause the creation of a new vertical line in OnCalculate():

   if(prev_date==0) // first start
     {
      MqlDateTime str_input;
      TimeToStruct(InpTime,str_input);
      str_to_draw.hour=str_input.hour;
      str_to_draw.min=str_input.min;
      str_to_draw.sec=0;

      prev_date=StructToTime(str_to_draw);
      VLineMove(0,InpName,prev_date);

      return(rates_total);
     }


📈 ROBOTFX MetaTrader Expert Advisors and Indicators to maximize profits and minimize the risks