Vertical line Indicator For MT5
Table Of Contents:
- Vertical line Indicator For MT5
- Installera Vertical line Indicator For MT5
- Parametrar för Vertical line Indicator For MT5
- Buffertar från Vertical line Indicator For MT5
- Huvuddelar i koden
Vertical line Indicator For MT5 drar en vertikal linje vid en viss tidpunkt för den faktiska dagen. Om dagen förändras dras en ny rad för den faktiska dagen. Du kan använda linjen för flera ändamål, som en varning för kommande nyheter eller andra användningsområden där du behöver se en viss tid på diagrammet (tänk på helger).
Installera Vertical line Indicator For MT5
När du har laddat ner indikatorn via formuläret ovan måste du packa upp zip-filen. Sedan måste du kopiera filen Vertical_line.mq5 till mappen MQL5Indicators för din MT5 installation. Efter det kan du starta om MT5 så kan du se indikatorn i listan över indikatorer.
Parametrar för Vertical line Indicator For MT5
Vertical line Indicator For MT5 har parametrar för 5 att konfigurera.
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
Buffertar från Vertical line Indicator For MT5
Vertical line Indicator For MT5 tillhandahåller 0 buffertar.
Huvuddelar i koden
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); } //+------------------------------------------------------------------+