Fragen von Anfängern in MQL5. Fachleute kommen nicht vorbei. - Seite 5

 

Wie kann ich erreichen, dass einige Indikatorpuffer nicht auf dem Diagramm gezeichnet werden, sondern ihre Werte im"Datenfenster" des Indikators angezeigt werden?

Das tue ich:

#property indicator_label1  "Buff"
#property indicator_type1   DRAW_NONE

int OnInit ()
{
  PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_NONE);
}


aber trotzdem zeichnet der Indikator einen Puffer.

 
_o0O:

Wie kann ich erreichen, dass einige Indikatorpuffer nicht auf dem Diagramm gezeichnet werden, sondern ihre Werte im"Datenfenster" des Indikators angezeigt werden?

Das tue ich:


aber dennoch zeichnet der Indikator einen Puffer.

Ich hab's, er macht das:

#property indicator_label1  "Buff"
#property indicator_type1   DRAW_NONE

brauchen dies nicht zu tun.

Und seltsamerweise sollte dieser Puffer in #property indicator_plots angegeben werden... Obwohl es logischerweise nicht sollte, weil es in #property indicator_buffers angegeben ist und es nicht gezeichnet werden muss.


JEDOCH wird der Name des Puffers im Datenfenster jetzt falsch angezeigt....die Angabe des Namens mit PlotIndexSetString(0, PLOT_LABEL, "Buff") hilft nicht... Wie auch immer, ich bitte um Hilfe.

 

Guten Tag.

Ich mache gerade meine ersten Schritte in mql5. Ich habe einen EA erstellt, der auf den Indikatoren RSI M5 und RSI M15 basiert. Können Sie mir bitte sagen, wie ein Geschäft ausgeführt werden kann, wenn beide Signale gleichzeitig ausgelöst werden? Die Gewichtung für beide ist 1. Wenn ich 0,5 einstelle, werden überhaupt keine Trades ausgeführt. Parameter Signalschwellenwert zum Öffnen = 90.

 
_o0O:

es stellt sich heraus, dass es das ist:

nicht zu tun brauchen.

Seltsamerweise sollte dieser Puffer in #property indicator_plots angegeben werden... Aber logischerweise sollte es nicht, weil es in #property indicator_buffers angegeben ist und Zeichnung ist nicht erforderlich.


JEDOCH wird der Name des Puffers im Datenfenster jetzt falsch angezeigt...., wenn man ihn mit PlotIndexSetString(0, PLOT_LABEL, "Buff") angibt, hilft das nicht... Wie auch immer, ich bitte um Hilfe.

Hilfe? Welche Art von Hilfe...?

Nun, alles was Sie tun müssen, ist anzugeben

#property indicator_label1  "Buff"

und alle, wird der Puffer in der Daten-Fenster benannt werden, wird es die Werte zeigen und ermöglichen, diese Werte aus dem EA zu erhalten, und zeichnen Sie die Werte nicht (sehr bequem, um zusätzliche Informationen zu speichern und nicht überladen das Diagramm mit Pufferlinien).

 
_o0O:

es stellt sich heraus, dass es das ist:

nicht zu tun brauchen.

Seltsamerweise sollte dieser Puffer in #property indicator_plots angegeben werden... Obwohl es logischerweise nicht sein sollte, weil es in #property indicator_buffers angegeben ist und nicht gezeichnet werden muss.


SZY, aber jetzt wird der falsche Puffername im Datenfenster angezeigt, die Angabe des Namens mit PlotIndexSetString(0, PLOT_LABEL, "Buff") hilft nicht... Wie auch immer, ich bitte um Hilfe.

Die Farbe clr_NONE sollte anstelle des Typs DRAV_NONE verwendet werden.

Hier ist der Testcode

#property indicator_separate_window

#property indicator_buffers 2
#property indicator_plots   2
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrRed
#property indicator_width1  2
#property indicator_label1  "clrRed"
#property indicator_type2   DRAW_HISTOGRAM
#property indicator_color2  clrNONE
#property indicator_width2  2
#property indicator_label2  "clrNONE"

/****************indicator buffers****************/
double buf1[], buf2[];
/**************Custom indicator initialization function**************/
int OnInit()
{
    SetIndexBuffer(0, buf1, INDICATOR_DATA);
    SetIndexBuffer(1, buf2, INDICATOR_DATA);
   return(INIT_SUCCEEDED);
}/*******************************************************************/

/****************Custom indicator iteration function*****************/
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[])
{
 int i, limit = rates_total-prev_calculated; // Это тупо для примера. В нормальном индикаторе так делать нельзя!
 for(i = 0; i < limit; i++)
  {
   if(i%2 > 0)
    buf1[i] = 1;
   else
    buf2[i] = 1;
  }
 
   return(rates_total);
}/*******************************************************************/
 
Alexey Viktorov:

Sie müssen nicht den Typ DRAV_NONE, sondern die Farbe clr_NONE angeben.

Hier ist der Testcode

all dies ist unnötig, Sie müssen nur die Bezeichnung angeben

#property indicator_label1  "Buff"
 
_o0O:

das ist alles überflüssig, Sie müssen nur die Bezeichnung angeben

Wenn Sie so klug sind, warum haben Sie dann die Frage gestellt?

 
Alexey Viktorov:

Wenn Sie so klug sind, warum haben Sie dann die Frage gestellt?

der Kluge ist nicht derjenige, der keine Fragen stellt....

Jeder Forumsbesucher kann zu den Antworten auf seine Fragen gelangen, aber was zum Teufel ist der Zweck dieses Forums, wenn nicht, so schnell wie möglich Antworten zu finden?

Mein Weg ist einfacher und prägnanter, verwenden Sie ihn.

ZS Hör auf, Fremde zu "stoßen", du Schlaumeier.

 
_o0O:

der Kluge ist nicht derjenige, der keine Fragen stellt....

Jeder Forumsbesucher kann zu den Antworten auf seine Fragen gelangen, aber was zum Teufel ist der Zweck dieses Forums, wenn nicht, so schnell wie möglich Antworten zu finden?

Mein Weg ist einfacher und prägnanter, nutzen Sie ihn.

Du liegst so falsch. Weit, weit davon entfernt.

 
Alexey Viktorov:

Oh, du liegst so falsch. Weit, weit davon entfernt.

Und erst recht nicht irgendjemand, so dass alle Fragen willkommen sind.

In der Hilfe gibt es keine solche Nuance. DRAW_NONE funktioniert nicht entweder #property oder in PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_NONE), PlotIndexSetString(0, PLOT_LABEL, "Buff") funktioniert auch nicht, also was genau ist die Logik hinter der Angabe von clrNONE, um das Ziel zu erreichen?