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
Ich freue mich auf das nächste Entwicklungsupdate.
Das klingt großartig, Peter. Ich denke, wenn Sie VE verwenden, um selbst zu bauen, wird es Ihnen wertvolle Einblicke geben, wie Ihr UI-Design funktioniert.
Ich freue mich schon auf das nächste Entwicklungsupdate.
UI ist immer noch 100% reines MQL.
Alles vektorbasiert, voll skalierbar und an jedes Display anpassbar.
Alle visuellen Anzeigen arbeiten asychron innerhalb einer Kernklasse, die alle MQL-Ereignisse behandelt und an Objekte verteilt, abhängig von ihren Abonnementeinstellungen und basierend auf Ereignisprioritäten.
Ich hoffe, ich stehle nicht den sehr interessanten Thread und verzeihen Sie mir, Peter, wenn ich es tue, es wird keine Diskussion sein, ich hoffe nur auf eine kurze Antwort für das theorethische Interesse - meinen Sie, Sie haben eine Art statische Klasse, die alle im System instanziierten Klassenobjekte kennt (behält alle Objektzeiger im Auge) und jedes Objekt hat Zugang, um sich für erforderliche Ereignisse auf dieser statischen Steuerklasse zu abonnieren, und diese statische Steuersingletonklasse liefert einfach die Ereignisse an alle Objekte? Wenn ja, sehen Sie das als korrekt im Sinne von OOP an oder ist es vielleicht akzeptable ereignisgesteuerte Programmierung? Da Sie darüber geschrieben haben, nehme ich an, dass Sie Fragen dazu annehmen möchten, und wenn ja, lassen Sie sie uns bitte so kurz wie möglich halten, um diesen Thread nicht zu entführen, obwohl er damit zusammenhängt.
Ich hoffe, ich stehle nicht den sehr interessanten Thread und verzeihen Sie mir, Peter, wenn ich das tue, es wird keine Diskussion sein, sondern ich hoffe auf eine kurze Antwort für das theorethische Interesse - meinen Sie, dass Sie eine Art statische Klasse haben, die alle im System instanziierten Klassenobjekte kennt (behält den Überblick über alle Objektzeiger), und jedes Objekt hat Zugang, um sich für erforderliche Ereignisse auf dieser statischen Steuerklasse zu abonnieren, und diese statische Steuersingletonklasse liefert die Ereignisse einfach an alle Objekte? Wenn ja, sehen Sie das als korrekt im Sinne von OOP an oder ist es vielleicht akzeptable ereignisgesteuerte Programmierung? Da Sie darüber geschrieben haben, nehme ich an, dass Sie Fragen dazu annehmen möchten, und wenn ja, lassen Sie sie uns bitte so kurz wie möglich halten, um diesen Thread nicht zu entführen, obwohl er damit zusammenhängt.
Ja, genau das ist es.
Kurzbeschreibung:
Der Kern empfängt alle MetaTrader-Ereignisse und jedes Objekt kann den Kern abonnieren. Daher musste auch die CObject-Klasse neu entworfen/geändert werden, so dass jedes Objekt eine Funktion namens "public: virtual void OnEACycle(CCycleParams * cpm)" hat. Ein solcher Zyklus könnte dann ein Chart-Ereignis, init, deinit usw. sein. Jedes Objekt kann auch ein "public: virtual void OnEATick()" haben. Netter Nebeneffekt ist, dass man auf diese Weise ein zusätzliches Feature erhält, denn man kann sich auch für das Ende eines Zyklus anmelden, egal welcher es ist. Ziemlich nützlich, um eine Datei zu schließen oder irgendetwas anderes zu beenden, einfach am Ende eines Zyklus.
Außerdem kann jedes CObject-Objekt Childs und auch Subscribers haben. Das heißt, ein Objekt kann seine eigenen Ereignisse auslösen, z.B. wenn etwas angeklickt wurde oder ähnliches. Dann führt man einfach ein object.SubEvent(STH_CLICKED, params) aus. Auf diese Weise kümmert sich das Objekt selbst nicht darum, wer diese Informationen benötigt, sie werden einfach an die Abonnenten verteilt, die ein OnSubEvent(int msg, CSubEventParams * sep) erhalten und damit machen können, was sie wollen.
Alles in allem ist diese Art der Programmierung mehr an die Art der Programmierung angelehnt, die wir aus C# kennen, wo man auch einfach .Invoke() verwendet, um Ereignisse auszulösen und sich nicht darum kümmert, wer sie bekommt.
Es ist eigentlich nicht so super-kompliziert zu implementieren, aber natürlich sind die Details am Ende die Herausforderung, da es ein Kern/Basis für jeden einzelnen EA oder Indikator für die Zukunft ist, der in jedem Szenario funktionieren muss.
Und ein fertiger EA sieht dann so aus:
Wenn ich die Zeit hätte, würde ich einen Artikel schreiben und die Quellen angeben. Es ist kein Geheimnis, überhaupt keine Magie.
Ich habe mir die von Ihnen erstellte GUI angesehen. Sie gefällt mir sehr gut. Sagen Sie mir, haben Sie es selbst geschrieben oder haben Sie einige MQL-Bibliotheken verwendet?
Ja, danke.
Nein, keine Bibliotheken. Ich habe es von Grund auf selbst entwickelt. Eigentlich ist nur CCanvas von den ursprünglichen angepasst, nichts anderes.
Ich danke Ihnen.
Nein, keine Bibliotheken. Ich habe es von Grund auf selbst entwickelt. Eigentlich ist nur CCanvas von den ursprünglichen angepasst, nichts anderes.
Es ist nicht einfach, so etwas zu machen. )
Du meinst die Lichteffekte? Naja, Licht hinzugefügt :D Wie beschrieben, ist CCanvas auch nur in seinen Grundlagen und seiner Struktur angepasst, nicht in seinen Details.