Fehler, Irrtümer, Fragen - Seite 1506

 
DV2010:

Bitte entschuldigen Sie unvollständige Informationen.

1. Die Informationen befinden sich auf der Registerkarte Protokoll:

(2) Der getestete Indikator, der entfernt werden soll, ist der Standard-Bollinger-Band:

- Die Indikator-Datei befindet sich unter C:\Programmdateien\Alpari Limited MT5\MQL5\Indikatoren\Beispiele\BB.ex5;

- Die kompilierte Datei wird dem Diagramm manuell hinzugefügt;

- Beide Dateien sind an diesen Beitrag angehängt.

3. Vollständiger Expert Advisor-Code, der den Indikator entfernt und bei dem der Fehler entdeckt wird:

   void OnInit(){
      ChartIndicatorDelete(0,0,"Bollinger Bands");
   } 

Testergebnis:

Nachdem Sie einen solchen "Expert Advisor" (in der Anwendung - DeleteInd.ex5) auf den Chart gezogen haben

Manuell zum Diagramm hinzugefügte Bollinger-Bänder werden gelöscht, aber das Diagramm wird danach nicht mehr skaliert, wenn sich die Diagrammgröße ändert.

Vielen Dank für diese ausführliche und gut formulierte Frage (so etwas hat schon lange niemand mehr geschrieben!).

Was ich habe, ist Folgendes:

  1. Ich füge den BB-Indikator manuell aus der Datei ...\MQL5\Indicators\Examples\BB.mq5 hinzu.
  2. Ich lasse den Expert Advisor auf demselben Chart laufen. Ich habe den Expert Advisor selbst hinzugefügt:
    //+------------------------------------------------------------------+
    //|                                                      ProjectName |
    //|                                      Copyright 2012, CompanyName |
    //|                                       http://www.companyname.net |
    //+------------------------------------------------------------------+
    void OnInit()
      {
       ResetLastError();
       if(!ChartIndicatorDelete(0,0,"Bollinger Bands"))
          Print("Error delete BB ",GetLastError());
      }
    //+------------------------------------------------------------------+
    Ich erhalte eine Fehlermeldung

    ERR_CHART_INDICATOR_CANNOT_DEL

    4115

    Fehler beim Löschen des Indikators aus dem Diagramm


Dieser Fehler tritt auf, weil nach dem Löschen des Indikators aus dem EA, das Chart-Fenster, wo BB war, obwohl wir es sehen können, aber in der Tat ist es bereits gelöscht. Um dies zu überprüfen, wechseln Sie nach dem Ausführen des Expert Advisors im Terminal zu einem anderen Profil und kehren Sie dann zum alten Profil zurück, um festzustellen, dass der Chart wie eine Kuh gespült wurde.

Meine Konfiguration:

2016.02.11 18:47:04.915 Terminal        MetaTrader 5 x64 build 1241 started (MetaQuotes Software Corp.)
2016.02.11 18:47:04.915 Terminal        Windows 10 Pro (x64 based PC), IE 11.63, UAC, Intel Core i3-3120 M  @ 2.50 GHz, RAM: 785 / 3981 Mb, HDD: 68822 / 233310 Mb, GMT+02:00
2016.02.11 18:47:04.915 Terminal        C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\43 B472C43247368C5B97C7F22A1AE963
Dateien:
DeleteInd.mq5  1 kb
 
Karputov Vladimir:

Vielen Dank für diese ausführliche und gut formulierte Frage (es ist lange her, dass jemand so etwas geschrieben hat!).

Es geht um Folgendes:

  1. Ich füge den BB-Indikator manuell aus der Datei ...\MQL5\Indicators\Examples\BB.mq5 hinzu.
  2. Ich lasse den Expert Advisor auf demselben Diagramm laufen. Ich habe einige Änderungen an dem Expert Advisor vorgenommen:
    Ich erhalte eine Fehlermeldung

    ERR_CHART_INDICATOR_CANNOT_DEL

    4115

    Fehler beim Löschen des Indikators aus dem Diagramm


Dieser Fehler tritt auf, weil nach dem Löschen des Indikators aus dem EA, das Chart-Fenster, wo BB war, obwohl wir es sehen können, aber in der Tat ist es bereits gelöscht. Um dies zu überprüfen, wechseln Sie nach dem Ausführen des Expert Advisors im Terminal zu einem anderen Profil und kehren Sie dann zum alten Profil zurück, um festzustellen, dass der Chart wie eine Kuh gespült wurde.

Meine Konfiguration:

Wenn ich Ihren Code ausführe, erhalte ich im Protokoll nur:

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

Wenn ich jedoch zu einem anderen Profil wechsle und zurückkomme, ist das Fenster nicht mehr vorhanden (obwohl sich die Anführungszeichen darin nach dem Hinzufügen eines Expert Advisors geändert hatten).

Bedeutet dies, dass es sich um einen Fehler handelt? Soweit ich weiß, sollte die Funktion ChartIndicatorDelete() nicht zu einem solchen anormalen Verhalten eines Diagramms führen. Ist es möglich, dies zu beheben?

 
DV2010:

Wenn ich Ihren Code ausführe, erscheint er nur im Logbuch:

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

Aber nachdem ich zu einem anderen Profil gewechselt habe und zurückkam, war das Fenster nicht mehr da (obwohl sich die Kurse darin nach dem Hinzufügen des Expert Advisors geändert hatten).

Bedeutet dies, dass es sich um einen Fehler handelt? Soweit ich verstanden habe, sollte die Funktion ChartIndicatorDelete() nicht zu einem solchen abnormalen Verhalten eines Diagramms führen. Ist es möglich, dies zu beheben?

Ich habe das Problem bereits an den Service Desk gemeldet.
 
Sie schlugen vor, den Modus des Expert Advisors zwischen Expert Advisor und Indikator zu wechseln, um eine einzige Datei zu erhalten. Das gleiche Produkt wird auf verschiedenen Terminals installiert.

Ich habe einen Wechsel vorgenommen. Aber was passiert ist, ist das folgende: wenn ich die mq4-Datei in den Ordner Experts kompilieren, das Programm funktioniert nur als EA, als Indikator (wenn ich es in den Ordner Indicators kopieren) ist es nicht einmal auf dem Chart gesetzt. Aber wenn ich es in diesem Ordner neu kompiliere, ist alles in Ordnung. Dasselbe gilt für den EA, er wird nicht installiert, wenn er im Ordner Indicators kompiliert wurde. Bitte sagen Sie mir, was der Grund dafür ist? Der Kompilierungsmodus ist strict, es treten keine Fehler auf.

 

Im neuesten Build von MT5 1241 bringt die Funktion ChartIndicatorDelete den Chart "durcheinander". Das Diagramm wird nicht neu gezeichnet, wenn die Größe geändert wird, das Diagramm wird nicht gespeichert, wenn das Terminal geschlossen wird, usw.

Dies wurde bereits behoben. Bitte warten Sie auf den nächsten Build

 
Igor Ramensky:
Desk wies darauf hin, dass es nur eine Datei geben sollte,
Können Sie die Antragsnummer beim Service Desk erfragen?
 
Liebe Entwickler, können Sie mir sagen, ob die Rekursion von Funktionen und Klassenmethoden in MQL erlaubt ist? Ich rufe eine rekursive Methode auf und erhalte einen Stapelüberlauf.
 
coderex:
Liebe Entwickler, können Sie uns mitteilen, ob die Rekursion von Klassenfunktionen und Methoden in MQL erlaubt ist? Ich rufe eine rekursive Methode auf und erhalte einen Stapelüberlauf.

Natürlich ist das erlaubt. Andernfalls käme es nicht zu einem Stapelüberlauf.

Und was haben Sie erwartet?

Können Sie die Rekursionstiefe in irgendeiner Weise steuern?

 
Slawa:

Natürlich ist das erlaubt. Andernfalls käme es nicht zu einem Stapelüberlauf.

Was haben Sie erwartet?

Können Sie die Tiefe der Rekursion irgendwie steuern?

Ich habe es schon herausgefunden :) natürlich tut es mir leid, dass ich gestolpert bin, ich habe schon lange keine Rekursion mehr benutzt und ich habe die Tiefenkontrolle der Rekursion vergessen...
 
Wie oft können Aktivierungen durchgeführt werden? Oder wie lange dauert es nach einer Aktivierung, bis die nächste Aktivierung erfolgen kann?