Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1345
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Müssen Sie auch hier das Präfix beim Laden der nächsten Kopie ändern?
Können Sie in Worten sagen, was der Zweck ist?
Schaltflächen können von außerhalb Ihres Fensters erstellt und gesteuert werden.
Was wird es sein?
Können Sie in Worten sagen, was der Zweck ist?
Die Schaltflächen können auch außerhalb Ihres Fensters erstellt und gesteuert werden.
Was könnte das sein?
Ich weiß es nicht, aber es sollte so sein: Erstellen Sie in Ihrem Unterfenster, und wenn Sie klicken, erhalten Sie die Nummer dieses Unterfensters. Sie brauchen nichts zu zeichnen, sondern nur eine Schaltfläche, die, wenn sie angeklickt wird, Informationen über die Nummer des Unterfensters in Alert anzeigt
Ich weiß es nicht, aber so geht's: Erstellen Sie in Ihrem Unterfenster, und wenn Sie darauf klicken, erhalten Sie die Nummer des Unterfensters. Sie brauchen nichts zu zeichnen, sondern nur eine Schaltfläche, die, wenn sie angeklickt wird, Informationen über die Nummer des Unterfensters in Alert anzeigt
meine erste Quelle überprüft:
leider ist alles so, wie Sie geschrieben haben - wenn Sie mehrere Kopien dieses Indikators mit Standardparametern ausführen, wird die Schaltfläche nur auf dem ersten Indikator in einem Unterfenster angezeigt
aber wenn Sie die Parameter während des Starts ändern, ist alles in Ordnung
im Allgemeinen ist die Situation unklar
Ich habe es bei meiner ersten Quelle überprüft:
leider ist alles so, wie Sie schreiben - wenn Sie mehrere Kopien dieses Indikators mit Standardparametern ausführen, wird die Schaltfläche nur auf dem ersten Indikator im Unterfenster angezeigt
aber wenn Sie die Parameter während des Starts ändern, ist alles in Ordnung
im Allgemeinen ist die Situation unklar
Hier also eine Frage: Wie kann man Parameter automatisch ändern, ohne in die Einstellungen zu gehen?
Nichts funktioniert bisher ...
---
P.S. Idealerweise, aber leider
Bis jetzt funktioniert es nicht ...
Und das wird es auch nicht:
eingefügt:
Ich setze einen Indikator - ich bekomme OnInit im Log, aber der nächste Indikator ist bereits still, d.h. nur eine Kopie des Indikators läuft wirklich, und die anderen Indikatoren sind nur eine grafische Hülle
und es wird nicht funktionieren:
eingefügt:
Ich setze den Indikator - ich bekomme OnInit im Protokoll, aber der nächste Indikator ist bereits still, d.h. nur eine Kopie des Indikators läuft wirklich, und die anderen Indikatoren sind nur eine grafische Hülle
So ist das nun einmal. Ich denke, die Architektur von mt5 ist nicht richtig. Das mt4-Terminal funktioniert einwandfrei.
Wenn Sie sich entschieden haben, dies in mt5 zu tun, würden Sie verbieten, Indikator-Kopien mit den gleichen Eingabeparametern auszuführen, weil es scheint, vorhanden zu sein, aber nicht vorhanden.
So ist es nun einmal. Die Architektur von mt5 muss ein Chaos sein. In mt4 funktioniert alles einwandfrei.
Wenn Sie sich dazu entschlossen haben, dies in mt5 zu tun, hätten Sie den Start von Indikatorkopien mit denselben Eingabeparametern verbieten sollen, denn er scheint vorhanden zu sein, ist es aber in Wirklichkeit nicht.
Der Berechnungsteil des Indikators ist nicht mit dem grafischen Teil identisch. Daher ist der Berechnungsteil für alle gleich. Es gibt mehrere grafische Versionen.
Können Sie nicht einfach alle Unterfenster in einem einzigen Indikator suchen und dort Etiketten mit der Nummer des Unterfensters einfügen? Zur gleichen Zeit in den Timer die Anzahl der Unterfenster des Diagramms zu fangen: erhöht - zu einem neuen Unterfenster Etikett hinzufügen. Suchen Sie aber auch nach dem Indikator, der darin platziert ist - wenn er anders ist, dann fügen Sie ihn nicht hinzu...
Nur eine ungetestete Idee.
ZS: Ich bin mit der "Krümmung" nicht einverstanden. Ein Berechnungsteil für 20 gleiche Indikatoren ist besser als 20 Berechnungsteile für 20 gleiche Indikatoren.
Der Berechnungsteil eines Indikators ist nicht dasselbe wie der grafische Teil. Daher ist der Berechnungsteil für alle gleich. Es gibt mehrere grafische Versionen.
Können wir nicht einfach nach allen Unterfenstern in einem Indikator suchen und Beschriftungen mit Unterfensternummern einfügen? Gleichzeitig wird im Timer die Anzahl der Unterfenster des Diagramms erfasst: wenn sie erhöht wird - wird ein neues Unterfensteretikett hinzugefügt. Suchen Sie aber auch nach dem Indikator, der darin platziert ist - wenn er anders ist, dann fügen Sie ihn nicht hinzu...
Nur eine ungetestete Idee.
ZS: Ich bin mit der "Krümmung" nicht einverstanden. Ein Berechnungsteil für 20 gleiche Indikatoren ist besser als 20 Berechnungsteile für 20 gleiche Indikatoren.
Hat, keine Reaktion auf die Schaltfläche - OnChartEvent Kopie nicht auslösen und nicht verstehen, die Subwindow-Nummer.
Wie auch immer, hier ist, was nicht funktioniert, und zusammen mit ihm der Rest des Codes
Forum für Handel, automatisierte Handelssysteme und Strategietests
FAQ von Anfängern MQL5 MT5 MetaTrader 5
Igor Makanu, 2021.09.12 21:53
Sie nicht:
hinzugefügt zu:
int OnInit() { Print(__FUNCTION__);
Ich setze einen Indikator - ich bekomme OnInit im Protokoll, aber der nächste Indikator ist bereits still, d.h. nur eine Kopie des Indikators läuft tatsächlich, und die anderen Indikatoren sind nur eine grafische Hülle
Getan, keine Reaktion auf Schaltfläche - OnChartEvent-Kopie funktioniert nicht und versteht keine Unterfensternummer.
Wie auch immer, hier ist, was nicht funktioniert und damit der Rest des Codes
ABER!!! Wenn ich eine Vorlage mit 2-3 dieser Indikatoren unter dem Namen "Debug.tpl" erstelle und mit dem Debugging des Indikators beginne, dann funktioniert OnInit() so wie es sollte.
Im Allgemeinen habe ich ein solches Experiment durchgeführt:
Ich habe #property auf sein Maximum in OnInit() übertragen, in der Hoffnung, dass der Indikator, solange er noch nicht erstellt wurde, OnInit() ausführen und einen kurzen Namen für den Indikator vergeben wird, abhängig von der Anzahl der Indikatoren im Fenster.
Aber es hat nicht geholfen:
Ich beginne die erste Kopie
Bezeichnung des Indikators 2.........
Ich starte die zweite Kopie - der Indikatorname ist immer noch 2 für beide Indikatoren
Ich starte das Debugging und was sehe ich! Der noch nicht geladene Indikator wird bereits gedruckt... lesen Sie die zweite und dritte Zeile...
Wie kann das sein?
Weiteres Debugging wurde beim Eintritt in OnInit() gestoppt, die Variable windows_total enthält Müll, short_name ist immer noch ein leerer String...
Hi......... aber es ist schon alles gedruckt... wie kommt das???
Und der Kurzname hat sich bereits geändert.
Nach dem vollständigen Laden des Indikators im Debug-Modus hat der Indikator daher folgende Namen
Vielleicht sollten wir die Entwickler auf solche Fehler aufmerksam machen...