Fehler, Irrtümer, Fragen - Seite 3153

 

Fehler - Indikator Phantom-Code

Es gibt einen Indikator, und es arbeitet ein Experte daran. Der Code des Indikators wird geändert. Sie wird neu kompiliert, und die Änderungen der Indikatoren sind auf dem Diagramm deutlich zu erkennen. Der Expert Advisor wird im Tester ausgeführt, aber es sieht so aus, als ob der Code nicht geändert wurde. Das Ergebnis ist das gleiche.

Sie können sogar ex5 des Indikators löschen. Sie können den Experten im Prüfprogramm weiterlaufen lassen (das gelöschte ex5 ist darin deutlich gekennzeichnet), als ob nichts geschehen wäre. Woher bekommt er die Datei zur Ausführung, von ether????

Wenn Sie das Terminal neu starten und den Tester danach ausführen, wird er den neuen Code sehen. (und gibt einen Fehler aus, wenn ex5 fehlt)


Ich habe verschiedene Möglichkeiten ausprobiert, damit der neue Code angezeigt wird - ich habe das Terminal neu eingeloggt (ohne Neustart) und das Espert selbst neu kompiliert. Geänderte Expertenparameter im Prüfgerät. Nichts hilft, außer einem Neustart des Terminals

 
Max B #:

Fehler - Indikator Phantom-Code

Es gibt einen Indikator, und es arbeitet ein Experte daran. Der Code des Indikators wird geändert. Sie wird neu kompiliert, und die Änderungen der Indikatoren sind auf dem Diagramm deutlich zu erkennen. Der Expert Advisor wird im Tester ausgeführt, aber es sieht so aus, als ob der Code nicht geändert wurde. Das Ergebnis ist das gleiche.

Sie können sogar ex5 des Indikators löschen. Sie können den Experten im Prüfprogramm weiterlaufen lassen (das gelöschte ex5 ist darin deutlich gekennzeichnet), als ob nichts geschehen wäre. Woher bekommt er die Datei zur Ausführung, von ether????

Wenn Sie das Terminal neu starten und den Tester danach ausführen, wird er den neuen Code sehen. (und gibt einen Fehler aus, wenn ex5 fehlt)


Ich habe verschiedene Möglichkeiten ausprobiert, damit der neue Code angezeigt wird - ich habe das Terminal neu eingeloggt (ohne Neustart) und das Espert selbst neu kompiliert. Geänderte Expertenparameter im Prüfgerät. Nichts hilft außer einem Neustart des Terminals.

Sie haben bereits Ihre eigene Frage beantwortet. Wenn Sie etwas löschen und es erscheint, bedeutet das, dass es irgendwo gespeichert wird))). Wenn Sie das Terminal booten, wird die gesamte Umgebung aus dem Profil des letzten Zustands gezogen. Es ist, als ob Sie alle Expert Advisors und Indikatoren im Terminalfenster mit voreingestellten Parametern zurückgesetzt hätten. In Ihrem Fall muss der Expert Advisor neu kompiliert werden oder er kann entfernt und neu geladen werden. Er (der EA) hat bereits die Handles und Daten der alten Version gezogen und berechnet sie nicht neu.

 
Valeriy Yastremskiy #:

Sie selbst haben Ihre eigene Frage beantwortet. Wenn Sie etwas löschen und es erscheint, muss es irgendwo gespeichert sein). Wenn Sie das Terminal laden, wird die gesamte Umgebung aus dem Profil des letzten Zustands gezogen. Es ist, als ob Sie alle Expert Advisors und Indikatoren im Terminalfenster mit voreingestellten Parametern zurückgesetzt hätten. In Ihrem Fall muss der Expert Advisor neu kompiliert werden oder er kann entfernt und neu geladen werden. Er (der EA) hat bereits Handles und Daten der alten Version gezogen und berechnet sie nicht neu.

Der Expert Advisor im Terminal hängt an nichts, nur der Strategietester lässt ihn rein. Der Expert Advisor selbst hat ein Deinit, in dem ich IndicatorRelease(handle_mtf_Sys) habe; ich habe versucht, den EA neu zu kompilieren - es hilft nicht. Er nimmt immer noch irgendwie den Phantom-Code

 
Max B #:

Der Expert Advisor im Terminal hängt sich an nichts auf, nur der Strategietester erlaubt es. Der Expert Advisor selbst hat ein Deinit, wo ich IndicatorRelease(handle_mtf_Sys); Ich habe versucht, es neu zu kompilieren - es hilft nicht. Es nimmt immer noch irgendwie Phantom-Code

Im Testgerät gibt es neben der Registerkarte Einstellungen auch eine Registerkarte Einstellungen. Überprüfen Sie diese, vielleicht gibt es alte Standardwerte. Wenn es das nicht auch ist, dann ist es ein Fehler, ich hatte das gleiche vor etwa 2 Monaten, dann ging es weg, ich weiß nicht, woran es lag.
 
Max B #:

Der Expert Advisor im Terminal hängt sich an nichts auf, nur der Strategietester erlaubt es. Der Expert Advisor selbst hat ein Deinit, wo ich IndicatorRelease(handle_mtf_Sys) habe; ich habe versucht, den EA neu zu kompilieren - es hilft nicht. Er nimmt immer noch irgendwie Phantom-Code

Erst kompilieren Sie den Indikator, dann den EA? Und der EA übernimmt die Daten des alten Indikators? Wenn ja, muss es sich um einen Fehler handeln. Der Expert Advisor bleibt nicht hängen, er funktioniert im Chart-Fenster des Terminals. Und das normale Schließen merkt sich den Zustand aller Karten und speichert ihn. Vielleicht hat sie sogar physische Akten. Ich weiß es nicht. Aber dem Fehler nach zu urteilen ist es möglich.

Wenn Sie einen Exechanger gelöscht haben, aber eine mcl-Datei haben, dann werden alle mcl-Dateien mit fehlenden Exechangern kompiliert, wenn das Terminal geladen wird. Dies ist eine der Möglichkeiten, mcl-Dateien ohne Meta-Editor zu kompilieren und zu erhalten - um das Terminal neu zu laden.

 
Wizard #:
Im Strategy Tester gibt es neben der Registerkarte Einstellungen auch die Registerkarte Einstellungen. Überprüfen Sie sie, vielleicht sind die alten Werte standardmäßig vorhanden. Wenn es nicht das gleiche ist, dann ja, das ist ein Fehler, vor 2 Monaten war ich das gleiche, dann verschwand, ich weiß nicht, was es war.

Die Parameter sind dort gespeichert - aber sie ändern sich nicht und sind in diesem Fall auch nicht von Bedeutung. Es ist der Code innerhalb des Indikators, der sich ändert. Im Allgemeinen ist der Fehler unangenehm - jedes Mal, bevor der Tester ausgeführt wird, muss das Terminal neu geladen werden.

Valeriy Yastremskiy #:

Zuerst kompilieren Sie den Indikator, dann den Expert Advisor, und der Expert Advisor übernimmt die Daten des alten Indikators? Wenn ja, muss es sich um einen Fehler handeln. Der Expert Advisor bleibt nicht hängen, er funktioniert im Chart-Fenster des Terminals. Und das normale Schließen merkt sich den Zustand aller Karten und speichert ihn. Vielleicht hat sie sogar physische Akten. Ich weiß es nicht. Aber nach der Wanze zu urteilen, könnte es so sein.

Die Sache ist die, dass unser EA nicht auf irgendeinem Chart sitzt. Sie ist nur im Strategietester ausgewählt. Ich bin besorgt über das Debugging im Strategietester, nicht im Terminal. Sie sollte nirgendwo zwischengespeichert werden.

Beim Starten des Strategy Testers sollte die letzte kompilierte Version des Indikators und des EA geladen werden, nicht das unbekannte Phantom aus unbekannten Quellen. Ergibt das einen Sinn?

 
Max B #:

Die Parameter sind dort gespeichert - aber sie ändern sich nicht und sind in diesem Fall auch nicht von Bedeutung. Es ist der Code innerhalb des Indikators, der sich ändert. Generell ist dieser Fehler unangenehm - jedes Mal, bevor ich den Tester starte, muss ich das Terminal neu starten.

Die Sache ist die, dass unser EA zu keinem Chart gehört. Sie ist nur im Strategietester enthalten. Ich möchte das Debugging im Strategietester durchführen, nicht im Terminal. Sie sollte nirgendwo zwischengespeichert werden.

Beim Starten des Strategy Testers sollte die letzte kompilierte Version des Indikators und des EA geladen werden, nicht das unbekannte Phantom aus unbekannten Quellen. Ergibt das einen Sinn?

Erstellen Sie ein reproduzierbares Beispiel eines Fehlers und posten Sie es hier mit dem Code und der Reihenfolge der Aktionen. Vielleicht werden die Entwickler aufmerksam).
 

Ich möchte eine Dropdown-Liste von Währungspaaren und Instrumenten (meine Paare) im EA-Eingabefenster erstellen. Wie kann ich das tun?

Zweite Frage: Wie wäre es korrekt, zu schreiben...

Zum Beispiel so:

double stop = SymbolInfoDouble(_Symbol, SYMBOL_ASK) - NormalizeDouble(100*_Point, _Digits);

Oder so:

double stop = NormalizeDouble(SymbolInfoDouble(_Symbol, SYMBOL_ASK) - 100*_Point, _Digits);

???

Dritte Frage. Ist es möglich, die Preise 2-3 Mal hintereinander zu normalisieren? Wird sich das nicht auf den Job auswirken?

Ich weiß, die Fragen sind dumm, aber es sind die kleinen Dinge, die mich im Moment plagen, auch wenn beide Optionen funktionieren. Sie müssen wissen, wie man es richtig macht.

 
Wizard #:

Ich möchte eine Dropdown-Liste von Währungspaaren und Instrumenten (meine Paare) im EA-Eingabefenster erstellen. Wie kann ich das tun?

Zweite Frage: Wie wäre es korrekt, zu schreiben...

Zum Beispiel so:

Oder so:

???

Dritte Frage. Ist es möglich, die Preise 2-3 Mal hintereinander zu normalisieren? Wird sich das nicht auf den Job auswirken?

Ich weiß, die Fragen sind dumm, aber es sind die kleinen Dinge, die mich im Moment plagen, auch wenn beide Optionen funktionieren. Sie müssen wissen, wie man es richtig macht.

Dieses NormalizeDouble-Konstrukt sollte nach Möglichkeit vermieden werden, da es schwer zu handhaben ist.

 
Vitaly Muzichenko #:

Diese NormalizeDouble-Konstruktion sollte nach Möglichkeit vermieden werden, da sie schwer zu handhaben ist.

Ich hab's. Und wenn ich die Funktion NormalizePrice der CSymbolInfo-Klasse nicht verwenden möchte (ich versuche, Bibliotheken nach Möglichkeit zu vermeiden), gibt es eine Alternative?

Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo
  • www.mql5.com
CSymbolInfo - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Grund der Beschwerde: