Diskussion zum Artikel "Erstellung eines Dashboards zur Anzeige von Daten in Indikatoren und EAs" - Seite 3
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
Bisher habe ich herausgefunden, dass dies die Art und Weise ist, wie das Ereignis CHARTEVENT_CHART_CHANGE(9) behandelt wird.
Es ist also ganz natürlich, dass sich die Größe des Diagrammfensters ändert, wenn der Fokus weggenommen wird.
Hier ist die Verarbeitung:
Sie sollten versuchen, den Fokus des Diagramms zu kontrollieren und nicht auf Änderungen zu reagieren, wenn das Diagrammfenster nicht mehr im Fokus ist. Oder etwas anderes in dieser Richtung. Leider kann ich das Programm noch nicht ausführen und testen, um die genauen Ursachen und die Methode zur Behebung des Problems herauszufinden.
Ich habe das Forum durchsucht. Das Problem wurde bereits diskutiert. Zum Beispiel. Ich habe eine solche Prüfung in den Code eingefügt:
Der Fehler scheint verschwunden zu sein.
Ein weiteres Problem. Das Ausklappen des Panel-Fensters wird nicht verarbeitet, nachdem der Indikator zuerst aus dem Chart entfernt und das Panel minimiert wurde und dann wieder im Chart gestartet wurde.
Morgen werde ich versuchen, herauszufinden, was der Fehler ist....
Artem, ein weiteres Beispiel aus dem nachfolgenden Artikel über Oszillatoren stört ebenfalls, wenn das Fenster minimiert und das Programm dann aus dem Chart gelöscht wird. Es handelt sich nicht um einen Indikator, sondern um einen Expert Advisor. Hier:
Ein weiteres Problem. Das Ausklappen des Panel-Fensters wird nicht gehandhabt, nachdem der Indikator zunächst aus dem Chart entfernt, das Panel minimiert und dann wieder im Chart gestartet wurde.
Morgen werde ich versuchen herauszufinden, was der Fehler ist....
Hier können Sie die Ursache der Deinitialisierung überprüfen und den Status des Panels nicht in globalen Terminalvariablen speichern, wenn Sie einen Expert Advisor (oder Indikator) aus dem Chart entfernen. Dies ist keine Lösung für das Problem, sondern seine Verschleierung. Das ist natürlich nicht gut. Aber für eine schnelle Lösung ist es ausreichend.
Oder Sie müssen sich mit diesem Verhalten auseinandersetzen. Leider habe ich im Moment nur wenig Zeit.
Ich habe das Forum durchsucht. Das Problem wurde bereits diskutiert. Zum Beispiel. Ich habe eine solche Prüfung in den Code eingefügt:
Der Fehler scheint verschwunden zu sein.
Ich danke Ihnen. Ich werde diese Panel-Klasse später zu meinem Code hinzufügen. Übrigens, von Artikel zu Artikel, in dem dieses Panel verwendet wurde, gab es alle möglichen Verbesserungen. Ich glaube, hier ist der letzte Artikel, in dem das Panel verwendet wurde. Ich weiß aber nicht mehr, ob ich es noch verfeinert habe.
Ich habe den Code der Panel-Klasse hier angehängt.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Diskussion über den Artikel "Erstellung eines Informationspanels zur Anzeige von Daten in Indikatoren und Expert Advisors"
Denis Kirichenko, 2024.09.23 22:26
Ein weiteres Problem. Es funktioniert nicht, wenn das Panel-Fenster aufgeklappt wird, nachdem der Indikator aus dem Chart entfernt und das Panel minimiert wurde, und dann wieder im Chart gestartet wird....
Ja, in der neuesten Version von Dashboard.mqh gibt es diesen Fehler nicht. Sie funktioniert.
Ja, in der neuesten Version von Dashboard.mqh gibt es keinen solchen Fehler. Es funktioniert.
Die neue Lätzchen hat auch einen Fehler. Wenn Sie das Panel auf einem Diagramm starten und dann mit der Größe des Diagrammfensters spielen, klebt das Panel am unteren Teil, wenn das Fenster wiederhergestellt wird. Und es will nicht mehr raus ((
Artem, ich habe eine Frage. In der Methode void CDashboard::Move(int x, int y) gibt es so etwas:
Insbesondere bin ich an diesem Block interessiert. D.h. wenn die Höhe des Panels kleiner ist als die des Diagrammfensters, und wenn sein Y-Punkt (obere linke Ecke) niedriger ist als die Differenz zwischen der Fensterhöhe und der Panelhöhe, korrigiert um 2 Pixel, dann wird dem oberen Punkt des Panels der Wert dieser Differenz zugewiesen. Warum ist das so, was ist der Grund dafür?
Kurz gesagt, es liegt an der Methode CDashboard::Move(int x, int y), dass es zum Hängenbleiben kommt. Wenn Sie versuchen, das Panel zu verschieben, nachdem Sie die Größe des Diagramms geändert haben, werden die Koordinaten ständig korrigiert und Sie können das Panel-Fenster nicht frei verschieben...