Diskussion zum Artikel "Verbessern Sie Ihre Handelscharts durch interaktiven GUI's in MQL5 (Teil II): Ein bewegliches GUI (II)"
Hallo!
Irgendwie habe ich dein zweites Posting verpasst; ich habe es erst gestern gesehen. Gute Arbeit. Ich habe deine Basis genommen und sie erweitert, um das DashBoard funktionaler zu machen. Ich habe meine CreatePael Funktion hinzugefügt und die zusätzlichen Parameter in dein Creat DashBoard kopiert, um die Einstellung der Hintergrundfarbe und der Rahmenfarbe und des Stils zu ermöglichen. Anbei der Screenshot, die mq5 und mqh Dateien.
Darf ich Ihnen einen Vorschlag machen: Erstellen Sie eine Textklasse, die Funktionen für Beschriftungen, Schaltflächen, Textfelder usw. enthält. Die Benutzer könnten die Klasse Test direkt verwenden, aber noch wichtiger ist, dass Ihre Klasse Moveable DashBoard die Textklasse erben könnte, und dann hätte jede Instanz alle Textfunktionen zur Verfügung.Wenn eine bestimmte Funktion auf dem Dashboard platziert wird, wird sie mit der Bewegung des Dashboards verknüpft. Ich füge eine GUI-Header-Datei bei, die ich nicht als Beispiel verwendet habe. Sie sollten wahrscheinlich versuchen, die neueste Version zu finden, oder vielleicht existiert bereits eine in MQL5
Danke, ich freue mich schon auf Ihren nächsten Artikel.
Cape Coddah
Ich würde gerne mehrere "Dashboards" dynamisch erstellen, indem ich mit der linken Maustaste auf das Diagramm klicke. Mit jedem Klick würde ein neues Dashboard erstellt werden. Könnten Sie mir einen Hinweis geben, wie Ihr Code geändert werden sollte, um dies zu erreichen?
Ich danke Ihnen
Ich danke Ihnen
Hallo!
es freut mich sehr, dass Ihnen mein Artikel gefallen hat! Vielen Dank für Ihr Feedback.
Ich glaube nicht, dass Sie meinen Code ändern müssen, um das zu erreichen, was Sie anstreben, denn Ihr Ziel scheint sich von dem zu unterscheiden, wofür mein Code ursprünglich entwickelt wurde. Sie können jedoch meinen Code verwenden, um Ihre dynamisch erstellten Dashboards beweglich zu machen.
Um Mausklicks auf das Diagramm zu erkennen, könnten Sie das ChartEvent verwenden, insbesondere CHARTEVENT_CLICK. Dieses Ereignis liefert die Koordinaten des Mausklicks und ermöglicht es Ihnen, ein neues Dashboard an dieser Stelle zu erstellen. Sie könnten dann meinen Code anwenden, um dieses neu erstellte Dashboard beweglich zu machen.
Wenn Sie mehr über ChartEvent erfahren möchten, empfehle ich Ihnen den ersten Teil dieser Serie, insbesondere den Abschnitt mit dem Titel"Decoding Chart Events": Die Bausteine der beweglichen GUI".
Darüber hinaus empfehle ich dringend die Verwendung von Klassen, da diese bei richtiger Verwendung Ihre Aufgabe vereinfachen werden. Wenn Sie mit dem Konzept der Klassen nicht vertraut sind, können Sie sich in meinem Artikel'Understanding the Concept of Classes' über die Grundlagen informieren.
Ich hoffe, das hilft Ihnen!
- www.mql5.com
Ich danke Ihnen
Hallo CapeCoddah,
Ihr Feedback freut mich wirklich sehr. Der genaue Zweck meiner Texte ist es, Leser wie Sie zu inspirieren, die Konzepte zu übernehmen und sie auf Ihre eigene Weise zu erweitern. Die Tatsache, dass Sie genau das getan haben, bestätigt den Nutzen meiner Artikel.
Was Ihren Vorschlag zur Erstellung einer Textklasse betrifft, die Etikett, Schaltfläche, Textfeld usw. umfasst, so ist es interessant festzustellen, dass mein nächster Artikel tatsächlich in eine ähnliche Richtung geht. Ich bin dabei, ein funktionales Handels-Dashboard zu erstellen, das Kauf- und Verkaufsbefehle ausführen und Losgrößen abfragen kann, und ja, es wird auch beweglich sein und alle Elemente enthalten, genau wie Sie es vorgeschlagen haben.
Ich bin jedoch der Meinung, dass die Erstellung einer Textklasse angesichts der unterschiedlichen Bedürfnisse der einzelnen Benutzer nicht von allgemeinem Nutzen sein kann. Stattdessen möchte ich die Leser ermutigen, Klassen zu erstellen, die auf ihre spezifischen Anforderungen zugeschnitten sind.
Bei der Durchsicht Ihrer Dateien stellte ich fest, dass Ihre Benutzeroberfläche zufällig genau dem entspricht, was ich für Teil 3 geplant habe. Ich freue mich schon auf die bevorstehende Veröffentlichung.
Hier ist ein kleiner Vorgeschmack auf den nächsten Artikel:

Ja, das ist ein bewegliches Armaturenbrett mit all seinen Elementen!
Bleiben Sie dran und vielen Dank für Ihre aktive Beteiligung und Ihr Feedback.
Viel Spaß beim Coding!
Hallo CapeCoddah,
Ihr Feedback freut mich wirklich sehr. Der genaue Zweck meiner Texte ist es, Leser wie dich zu inspirieren, die Konzepte zu übernehmen und sie auf deine eigene Weise zu erweitern. Die Tatsache, dass Sie genau das getan haben, bestätigt den Nutzen meiner Artikel.
Was Ihren Vorschlag zur Erstellung einer Textklasse betrifft, die Etikett, Schaltfläche, Textfeld usw. umfasst, so ist es interessant festzustellen, dass mein nächster Artikel tatsächlich in eine ähnliche Richtung geht. Ich bin dabei, ein funktionales Handels-Dashboard zu erstellen, das Kauf- und Verkaufsbefehle ausführen und Losgrößen anfordern kann, und ja, es wird auch beweglich sein und alle Elemente enthalten, genau wie Sie es vorgeschlagen haben.
Ich bin jedoch der Meinung, dass die Erstellung einer Textklasse angesichts der unterschiedlichen Bedürfnisse der einzelnen Benutzer nicht von allgemeinem Nutzen sein kann. Stattdessen möchte ich die Leser ermutigen, Klassen zu erstellen, die auf ihre spezifischen Anforderungen zugeschnitten sind.
Bei der Durchsicht Ihrer Dateien stellte ich fest, dass Ihre Benutzeroberfläche zufällig genau dem entspricht, was ich für Teil 3 geplant habe. Ich bin sehr gespannt auf die bevorstehende Veröffentlichung.
Hier ein kleiner Vorgeschmack auf das, was im nächsten Artikel kommt:
Ja, das ist ein bewegliches Armaturenbrett mit all seinen Elementen!
Bleiben Sie dran, und vielen Dank für Ihre aktive Beteiligung und Ihr Feedback.
Viel Spaß beim Coding!
Hallo CapeCoddah,
Dein Feedback freut mich wirklich sehr. Der genaue Zweck meiner Texte ist es, Leser wie dich zu inspirieren, die Konzepte zu übernehmen und sie auf deine eigene Weise zu erweitern. Die Tatsache, dass Sie genau das getan haben, bestätigt den Nutzen meiner Artikel.
Was Ihren Vorschlag zur Erstellung einer Textklasse betrifft, die Etikett, Schaltfläche, Textfeld usw. umfasst, so ist es interessant festzustellen, dass mein nächster Artikel tatsächlich in eine ähnliche Richtung geht. Ich bin dabei, ein funktionales Handels-Dashboard zu erstellen, das Kauf- und Verkaufsbefehle ausführen und Losgrößen anfordern kann, und ja, es wird auch beweglich sein und alle Elemente enthalten, genau wie Sie es vorgeschlagen haben.
Ich bin jedoch der Meinung, dass die Erstellung einer Textklasse angesichts der unterschiedlichen Bedürfnisse der einzelnen Benutzer nicht von allgemeinem Nutzen sein kann. Stattdessen möchte ich die Leser ermutigen, Klassen zu erstellen, die auf ihre spezifischen Anforderungen zugeschnitten sind.
Bei der Durchsicht Ihrer Dateien stellte ich fest, dass Ihre Benutzeroberfläche zufällig genau dem entspricht, was ich für Teil 3 geplant habe. Ich bin sehr gespannt auf die bevorstehende Veröffentlichung.
Hier ein kleiner Vorgeschmack auf das, was im nächsten Artikel kommt:
Ja, das ist ein bewegliches Armaturenbrett mit all seinen Elementen!
Bleiben Sie dran, und vielen Dank für Ihre aktive Beteiligung und Ihr Feedback.
Viel Spaß beim Coding!
Hallo Kailash,
Deine Vorschau fasziniert mich. Das ist mein endgültiges Ziel. Das Konzept der Textklasse ist eine Toolbox mit Funktionen, die zur Erstellung der Handels-Dashboard-Panels verwendet werden. Deine Vorschau veranschaulicht einige der Mitglieder meiner Textklasse: Label, Input Box, Buttons, Panel und vielleicht ein Text Panel, im Moment verwende ich Buttons. Ich möchte die Details der Erstellung eines Labels in einer aufrufbaren Textklassenfunktion, CreateLabel(....), kapseln, so dass Benutzer mehrere Aufrufe der Labelfunktion machen können, um verschiedenen Text an verschiedenen Stellen auf dem beweglichen Panel zu platzieren.
Ich stelle mir mehrere, aber unabhängige Unter-Panels vor, die zusammen meine Handelsstation bilden, z. B. ATR-Indikatoren, Crossovers von Indikatoren, Handelseröffnungen, Status aktiver Trades, Geldmanagement, Stop-Loss- und Take-Profit-Management usw. So wie ich es mir vorstelle, wird die OnInit-Funktion verwendet, um die Entwicklung jedes Panels aufzurufen, und die OnTick-Funktion wird Aktualisierungsfunktionen für die verschiedenen Panels bereitstellen, und wahrscheinlich wird es ein Funktionspanel geben, das die Panels bei Bedarf öffnen und schließen kann.
Ich erwäge, eine solche Textklasse zu erstellen, wahrscheinlich mit dem Namen 'GUI', um alle Objekte, einschließlich Rectangle Label, Label, Edit und Button, unterzubringen.
Ihre Idee, für jede Aufgabe, wie z. B. Indikatoren und Handelsmanagement, mehrere, aber unabhängige Unter-Panels zu erstellen, ist genau das, was ich mir für zukünftige Artikel vorstelle. Auch wenn dies nicht ohne Herausforderungen zu erreichen ist - wie z. B. der Umgang mit der Z-Reihenfolge, unterschiedliche Bildschirmgrößen, die sich auf die Panelgrößen auswirken, usw. - bin ich zuversichtlich, dass wir diese Hürden gemeinsam überwinden können.
Das Konzept eines Panelmanagers klingt ebenfalls vielversprechend. Wir sollten in der Lage sein, diesen bald zu entwickeln."
Hallo,
ich freue mich, dass Ihnen mein Artikel gefallen hat! Ich danke dir für dein Feedback.
Ich glaube nicht, dass Sie meinen Code ändern müssen, um das zu erreichen, was Sie anstreben, denn Ihr Ziel scheint sich von dem zu unterscheiden, wofür mein Code ursprünglich entwickelt wurde. Sie können meinen Code jedoch sicherlich verwenden, um Ihre dynamisch erstellten Dashboards beweglich zu machen.
Um Mausklicks auf das Diagramm zu erkennen, könnten Sie das ChartEvent verwenden, insbesondere CHARTEVENT_CLICK. Dieses Ereignis liefert die Koordinaten des Mausklicks und ermöglicht es Ihnen, ein neues Dashboard an dieser Stelle zu erstellen. Sie könnten dann meinen Code anwenden, um dieses neu erstellte Dashboard beweglich zu machen.
Wenn Sie mehr über ChartEvent erfahren möchten, empfehle ich Ihnen den ersten Teil dieser Serie, insbesondere den Abschnitt mit dem Titel"Decoding Chart Events": Die Bausteine der beweglichen GUI".
Darüber hinaus empfehle ich dringend die Verwendung von Klassen, da diese bei richtiger Verwendung Ihre Aufgabe vereinfachen werden. Wenn Sie mit dem Konzept der Klassen nicht vertraut sind, können Sie sich in meinem Artikel"Das Konzept der Klassen verstehen" über die Grundlagen informieren.
Ich hoffe, das hilft Ihnen!
Oh, ich sehe, wo Sie Schwierigkeiten haben. Lassen Sie mich Ihnen helfen.
Ich habe einen Expert Advisor (EA) namens MultiDash genau so geschrieben, wie Sie es wollten, indem ich meinen Code leicht modifiziert habe.
Ich habe ihn unten zu Ihrer Information angehängt. Bitte sehen Sie sich den Code an und zögern Sie nicht, mich zu fragen, wenn Sie etwas in meinem Code nicht verstehen. Ich würde mich freuen, Ihnen zu helfen.
Oh, ich sehe, wo Sie Schwierigkeiten haben. Lassen Sie mich Ihnen helfen.
Ich habe einen Expert Advisor (EA) namens MultiDash genau so geschrieben, wie Sie es wollten, indem ich meinen Code leicht modifiziert habe.
Ich habe ihn unten zu Ihrer Information angehängt. Bitte schauen Sie ihn sich an und zögern Sie nicht, mich zu fragen, wenn Sie etwas in meinem Code nicht verstanden haben. Ich würde mich freuen, Ihnen zu helfen.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Verbessern Sie Ihre Handelscharts durch interaktiven GUI's in MQL5 (Teil II): Ein bewegliches GUI (II) :
Erschließen Sie das Potenzial der dynamischen Datendarstellung in Ihren Handelsstrategien und Dienstprogrammen mit unserer ausführlichen Anleitung zur Erstellung beweglicher GUIs in MQL5. Tauchen Sie ein in die grundlegenden Prinzipien der objektorientierten Programmierung und entdecken Sie, wie Sie mit Leichtigkeit und Effizienz einzelne oder mehrere bewegliche GUIs auf demselben Diagramm entwerfen und implementieren können.
Machen wir uns auf die Reise, um ein ähnliches Dashboard von Grund auf neu zu erstellen, aber dieses Mal mit einer .mqh-Datei. Wo nötig, werden wir Teile unseres früheren Codes übernehmen. Um unsere Codedateien effektiv zu organisieren, erstellen wir einen neuen Ordner mit dem bezeichnenden Namen „Movable Dashboard MQL5“.
Als Nächstes erzeugen wir zwei neue Dateien: die Datei „Movable_Dashboard_MQL5.mq5“, die als primäre .mq5-Datei dienen wird, und die Datei „GUI_Movable.mqh“, die den Code enthält, um das Dashboard beweglich zu machen. Die korrekte Benennung dieser Dateien ist entscheidend für die einfache Verwaltung mehrerer Dateien.
Wie Sie sehen können, ist dieser Ansatz einfach und sauber, während die gleiche Funktionalität beibehalten wird. Dadurch ist der Code in vollwertigen EAs/Indikatoren gut verwendbar.
Ergebnis:
Autor: Kailash Bai Mina