Four horizontal lines Indicator For MT5
Table Of Contents:
- Four horizontal lines Indicator For MT5
- Installation des Four horizontal lines Indicator For MT5
- Parameter des Four horizontal lines Indicator For MT5
- Puffer des Four horizontal lines Indicator For MT5
- Hauptteile des Codes
Der Four horizontal lines Indicator For MT5 zeichnet 4 horizontale Linien (2 rote und 2 grüne Linien) auf der Karte. Eine rote Linie wird oberhalb und eine rote Linie unterhalb einer Kerze mit einem konfigurierbaren Abstand von der tatsächlichen Kerze gezeichnet.
Installation des Four horizontal lines Indicator For MT5
Nachdem Sie den Indikator über das obige Formular heruntergeladen haben, müssen Sie die Zip-Datei entpacken. Anschließend müssen Sie die Datei Four horizontal lines.mq5 in den Ordner MQL5Indicators Ihrer MT5 Installation kopieren. Starten Sie danach MT5 neu und Sie können den Indikator in der Liste der Indikatoren sehen.
Parameter des Four horizontal lines Indicator For MT5
Der Four horizontal lines Indicator For MT5 verfügt über 10 zu konfigurierende Parameter.
input color InpColorHighLow = clrRed; // HighLow: Line color input color InpColorDifference = clrLimeGreen; // Difference: Line color input ENUM_LINE_STYLE InpStyle = STYLE_SOLID; // Line style input int InpWidth = 2; // Line width input bool InpBack = false; // Background line input bool InpSelection = false; // Highlight to move input bool InpHidden = true; // Hidden in the object list input long InpZOrder = 0; // Priority for mouse click input int InpBarNumber = 1; // Bar number input int InpShiftHighLowUP = 20; // Shift
Puffer des Four horizontal lines Indicator For MT5
Der Four horizontal lines Indicator For MT5 stellt 0 Puffer bereit.
Hauptteile des Codes
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[]) { //--- if(prev_calculated==0 || rates_total!=prev_calculated) { //--- Move horizontal line double high_1=high[rates_total-1-InpBarNumber]; double low_1=low[rates_total-1-InpBarNumber]; HLineMove(0,ExtNameHighLowUP,high_1+ExtInpShiftHighLowUP); HLineMove(0,ExtNameHighLowDOWN,low_1-ExtInpShiftHighLowUP); HLineMove(0,ExtNameDifferenceUP,high_1+(high_1-low_1)-ExtInpShiftHighLowUP/2.0); HLineMove(0,ExtNameDifferenceDOWN,low_1-(high_1-low_1)+ExtInpShiftHighLowUP/2.0); } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| Create the horizontal line | //+------------------------------------------------------------------+ bool HLineCreate(const long chart_ID=0, // chart s ID const string name="HLine", // line name const int sub_window=0, // subwindow index double price=0, // line price 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 hidden=true, // hidden in the object list const long z_order=0) // priority for mouse click { //--- if the price is not set, set it at the current Bid price level if(!price) price=SymbolInfoDouble(Symbol(),SYMBOL_BID); //--- reset the error value ResetLastError(); //--- create a horizontal line if(!ObjectCreate(chart_ID,name,OBJ_HLINE,sub_window,0,price)) { Print(__FUNCTION__, ": failed to create a horizontal 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); //--- display in the foreground (false) or background (true) ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); //--- enable (true) or disable (false) the mode of moving the line by mouse //--- when creating a graphical object using ObjectCreate function, the object cannot be //--- highlighted and moved by default. Inside this method, selection parameter //--- is true by default making it possible to highlight and move the object ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection); //--- hide (true) or display (false) graphical object name in the object list ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); //--- set the priority for receiving the event of a mouse click in the chart ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); //--- successful execution return(true); } //+------------------------------------------------------------------+ //| Move horizontal line | //+------------------------------------------------------------------+ bool HLineMove(const long chart_ID=0, // chart s ID const string name="HLine", // line name double price=0) // line price { //--- if the line price is not set, move it to the current Bid price level if(!price) price=SymbolInfoDouble(Symbol(),SYMBOL_BID); //--- reset the error value ResetLastError(); //--- move a horizontal line if(!ObjectMove(chart_ID,name,0,0,price)) { Print(__FUNCTION__, ": failed to move the horizontal line! Error code = ",GetLastError()); return(false); } //--- successful execution return(true); } //+------------------------------------------------------------------+ //| Delete a horizontal line | //+------------------------------------------------------------------+ bool HLineDelete(const long chart_ID=0, // chart s ID const string name="HLine") // line name { //--- reset the error value ResetLastError(); //--- delete a horizontal line if(!ObjectDelete(chart_ID,name)) { Print(__FUNCTION__, ": failed to delete a horizontal line! Error code = ",GetLastError()); return(false); } //--- successful execution return(true); } //+------------------------------------------------------------------+