Vertical line Indicator For MT5
Table Of Contents:
- Vertical line Indicator For MT5
- Instalar la Vertical line Indicator For MT5
- Parámetros de la Vertical line Indicator For MT5
- Buffers of the Vertical line Indicator For MT5
- Partes principales del código
El Vertical line Indicator For MT5 dibuja una línea vertical a una hora específica del día real. Si el día cambia, se dibujará una nueva línea para el día real. Puede usar la línea para varios propósitos, como una advertencia para las próximas noticias o cualquier otro uso donde necesite ver un horario específico en el gráfico (piense en los fines de semana).
Instalar la Vertical line Indicator For MT5
Después de descargar el indicador a través del formulario anterior, debe descomprimir el archivo zip. Luego, debe copiar el archivo Vertical_line.mq5 en la carpeta MQL5Indicators de su instalación MT5 . Después de eso, reinicie MT5 y luego podrá ver el indicador en la lista de indicadores.
Parámetros de la Vertical line Indicator For MT5
Vertical line Indicator For MT5 tiene parámetros 5 para configurar.
input datetime InpTime = D 2017.05.22 18:40:00 ; // Use only Hours and minutes input string InpName = "Vertical line"; // Line name input color InpColor = clrRed; // Line color input ENUM_LINE_STYLE InpStyle = STYLE_DASH; // Line style input int InpWidth = 3; // Line width
Buffers of the Vertical line Indicator For MT5
Vertical line Indicator For MT5 proporciona buffers 0 .
Partes principales del código
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- MqlDateTime str_to_draw; TimeToStruct(TimeCurrent(),str_to_draw); 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); } MqlDateTime str_prev_date; TimeToStruct(prev_date,str_prev_date); if(str_to_draw.day==str_prev_date.day) // today the vertical line has already been drawn return(rates_total); else { 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 value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnTimer() { //--- protection against unauthorized deletion if(ObjectFind(0,InpName) lt 0) { prev_date=0; VLineCreate(0,InpName,0,0.0,InpColor,InpStyle,InpWidth); } } //+------------------------------------------------------------------+ //| Create the vertical line | //+------------------------------------------------------------------+ bool VLineCreate(const long chart_ID=0, // chart s ID const string name="VLine", // line name const int sub_window=0, // subwindow index datetime time=0, // line time const color clr=clrRed, // line color const ENUM_LINE_STYLE style=STYLE_SOLID, // line style const int width=1/*, // line width const bool back=false, // in the background const bool selection=true, // highlight to move const bool ray=true, // line s continuation down const bool hidden=true, // hidden in the object list const long z_order=0*/) // priority for mouse click { //--- if the line time is not set, draw it via the last bar if(!time) time=TimeCurrent(); //--- reset the error value ResetLastError(); //--- create a vertical line if(!ObjectCreate(chart_ID,name,OBJ_VLINE,sub_window,time,0)) { Print(__FUNCTION__, ": failed to create a vertical line! Error code = ",GetLastError()); return(false); } //--- set line color ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); //--- set line display style ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style); //--- set line width ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width); //--- successful execution return(true); } //+------------------------------------------------------------------+ //| Move the vertical line | //+------------------------------------------------------------------+ bool VLineMove(const long chart_ID=0, // chart s ID const string name="VLine", // line name datetime time=0) // line time { //--- if line time is not set, move the line to the last bar if(!time) time=TimeCurrent(); //--- reset the error value ResetLastError(); //--- move the vertical line if(!ObjectMove(chart_ID,name,0,time,0)) { Print(__FUNCTION__, ": failed to move the vertical line! Error code = ",GetLastError()); return(false); } //--- successful execution return(true); } //+------------------------------------------------------------------+ //| Delete the vertical line | //+------------------------------------------------------------------+ bool VLineDelete(const long chart_ID=0, // chart s ID const string name="VLine") // line name { //--- reset the error value ResetLastError(); //--- delete the vertical line if(!ObjectDelete(chart_ID,name)) { Print(__FUNCTION__, ": failed to delete the vertical line! Error code = ",GetLastError()); return(false); } //--- successful execution return(true); } //+------------------------------------------------------------------+