Four horizontal lines Indicator For MT5
Table Of Contents:
- Four horizontal lines Indicator For MT5
- Four horizontal lines Indicator For MT5 installeren
- Parameters van het Four horizontal lines Indicator For MT5
- Buffers van het Four horizontal lines Indicator For MT5
- Hoofddelen van de code
De Four horizontal lines Indicator For MT5 tekent 4 horizontale lijnen (2 rode en 2 groene lijnen) op de kaart. Een rode lijn is hierboven getekend en een rode lijn is getekend onder een kaars met een configureerbare afstand tot de eigenlijke kaars.
Four horizontal lines Indicator For MT5 installeren
Nadat u de indicator via het bovenstaande formulier heeft gedownload, moet u het zip-bestand uitpakken. Vervolgens moet u het bestand Four horizontal lines.mq5 naar de map MQL5Indicators van uw MT5 installatie kopiëren. Start daarna MT5 opnieuw op en dan kunt u de indicator zien in de lijst met indicatoren.
Parameters van het Four horizontal lines Indicator For MT5
Het Four horizontal lines Indicator For MT5 moet de parameters 10 configureren.
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
Buffers van het Four horizontal lines Indicator For MT5
Het Four horizontal lines Indicator For MT5 biedt 0 buffers.
Hoofddelen van de code
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); } //+------------------------------------------------------------------+