Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1343

 

Dem Code hinzugefügt, druckt nicht die zweite und weitere Kopien der Indikatoren

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[])
{
  OnInit();
   for(int i = prev_calculated == 0 ? 0 : prev_calculated - 1; i < rates_total; i++)
   {
      Label1Buffer[i] = close[i];
   }
   return(rates_total);
}

---

Was getan wurde:

Ich habe 3 Kopien des Indikators installiert, die Datei kompiliert und den Ausdruck der ersten Kopie erhalten

2021.09.12 18:30:40.975 Create_button (BTCUSD,M30)      INIT SUCCEEDED: 1
 
Vitaly Muzichenko #:

Aber wenn Sie die Eingabeparameter ändern, dann funktioniert es.

Ich habe solche Meldungen im Forum gesehen. Soweit ich verstanden habe, führt das Terminal nicht zwei Kopien des Indikators mit denselben Parametern auf demselben Chart aus.

 
Igor Makanu #:

Ich habe solche Meldungen im Forum gesehen. Soweit ich verstanden habe, startet das Terminal nicht zwei Kopien des Indikators mit denselben Parametern auf demselben Chart.

Wie kann ich es zum Laufen bringen, ohne die Eingabeparameter zu ändern?

Ich muss mehrere Kopien installieren, das ist leider sehr mühsam.

 
Vitaly Muzichenko #:

Wie kann ich es zum Laufen bringen, ohne die Eingabeparameter zu ändern, vielleicht etwas aus define hinzufügen?

Müssen Sie mehrere Kopien einstellen, ist dies leider eine solche Aufgabe.

Geben Sie einen gefälschten Parameter ein. Und weisen Sie ihm 1, 2, 3 ... zu.

 
Vitaly Muzichenko #:

Wie kann ich es zum Laufen bringen, ohne die Eingabeparameter zu ändern, vielleicht etwas aus define hinzufügen?

Es müssen mehrere Kopien erstellt werden, das ist leider eine große Herausforderung.

haben gesehen und getestet, wie man zwei Unterfenster durch Bearbeiten einer Vorlage erstellen kann - ein Unterfenster im oberen Teil des Diagramms, das zweite im Untergeschoss

Versuchen Sie, eine Vorlage mit Ihrem Indikator zu speichern, und wenn es auch mit Vorlagen so funktioniert, fügen Sie eine Kopie des Indikators in den Text der Vorlage ein.

 
Igor Makanu #:

haben gesehen und getestet, wie man zwei Unterfenster mit Hilfe der Vorlagenbearbeitung erstellen kann - ein Unterfenster oben auf dem Diagramm, das zweite im Untergeschoss

Versuchen Sie, eine Vorlage mit Ihrem Indikator zu speichern und wenn es funktioniert, diesen Trick auch mit Vorlagen anzuwenden - fügen Sie eine Kopie des Indikators in den Text der Vorlage ein

Das Problem ist, dass sie in unterschiedlichen Mengen nach dem Zufallsprinzip geworfen werden müssen, so dass es nicht auf eine feste Art und Weise funktionieren wird.

 
Igor Makanu #:

haben gesehen und getestet, wie man zwei Unterfenster mit Hilfe der Vorlagenbearbeitung erstellen kann - ein Unterfenster oben auf dem Diagramm, das zweite im Untergeschoss

Versuchen Sie, eine Vorlage mit Ihrem Indikator zu speichern, und wenn es mit den Vorlagen funktioniert, fügen Sie eine Kopie des Indikators in den Vorlagentext ein.

Ich habe 3 Kopien heruntergeladen, OnInit hat einmal funktioniert.

Ändern des Eingabewertes - der zweite Indikator wird ausgelöst

Ich habe die Farbe in der dritten geändert - es hat auch funktioniert


Aber wie kann ich das automatisieren?

 

dann weiß ich nicht, ich halte nur die Lösung von @Vladimir Karputov für akzeptabel

einen langen Eingabeparameter zu erstellen und nach dem Zufallsprinzip aufzurufen und nach dem Zufallsprinzip einen großen Parameter zu erzeugen, d. h. long

 
Igor Makanu #:

dann weiß ich nicht, ich halte nur die Lösung von @Vladimir Karputov für akzeptabel

einen langen Eingabeparameter zu erstellen und nach dem Zufallsprinzip aufzurufen und nach dem Zufallsprinzip einen großen Parameter zu erzeugen, d. h. long

So habe ich mir das vorgestellt, aber wie kann ich es umsetzen?

Bitte zeigen Sie mir den Code!

 
Vitaly Muzichenko #:

Das ist in etwa das, was ich mir vorgestellt habe, aber wie kann man es umsetzen?

Bitte zeigen Sie mir den Code!

auf keinen Fall

Wenn Sie die Funktion programmatisch aufrufen, können Sie einen Parameter zufällig generieren

Und Sie müssen es manuell ausführen, Sie müssen noch die Eingabeparameter ändern.


Versuchen Sie zu sehen, was in vordefinierten Makrosubstitutionen ist, es gab __COUNT___ und jetzt gibt es etwas mit random, ich habe nicht überprüft, wie __COUNT___ funktioniert - es stellt sich heraus, statisch, es hat wenig Wirkung, vielleicht können Sie random für Ihre Aufgabe verwenden