![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Demoprojekt 1 ist in (1) KIB-source v1 enthalten, aber warum sehe ich das zugehörige Fenster nicht im Diagramm?
Der Katalog ist immer noch auf Russisch ...... Ich hoffe, dass es möglich ist, den Katalog und die Dateinamen in Englisch zu haben, wie KIB PROJECTS ....... Dies ist eine kleine Bitte von mir!
Demoprojekt 1 ist in (1) KIB-source v1 enthalten, aber warum sehe ich das zugehörige Fenster nicht im Diagramm?
Demoprojekt 1 ist in (1) KIB-source v1 enthalten, aber warum sehe ich das zugehörige Fenster nicht im Diagramm?
Ich habe die Baugruppe überprüft. Demoprojekt 1.mqh befindet sich hier:
Gestern, nachdem ich die neue Version heruntergeladen hatte, schrieb ich nach viel Arbeit und in einem emotionalen Hochgefühl einen sehr positiven Beitrag, in dem ich die neuen Funktionen wortwörtlich lobte. Ein solcher Enthusiasmus ist im Rahmen einer streng technischen Diskussion nicht sehr angebracht. Heute möchte ich die implementierten Lösungen in einer ruhigen und unvoreingenommenen Weise betrachten. Konstruktive Kritik und eine objektive Bewertung sind mir willkommen. Es ist mir wichtig, mir Klarheit über die Sichtweise von Drittnutzern zu verschaffen. Das Feedback hilft, Anpassungen und Verbesserungen vorzunehmen. Und natürlich, um Fehler zu entdecken und zu beheben.
Die Aufgabe bestand darin, eine programmatische Interaktion von Anwendercode mit der grafischen Oberfläche des Programms zu realisieren.
Entsprechend der Idee:
//----------------------------------------------------------------------------------
Vor dieser Version konnte der Benutzer jedoch nur Ereignisse interaktiver Elemente in einer API-Datei mit Unterschlüssel empfangen.
Es ist wichtig zu betonen, dass der Benutzer nicht über viele, unbedingt notwendige Softwarefunktionen verfügte.
Ich werde sie auflisten:
Diese Aktualisierung löst fast alle gestellten Aufgaben.
Lassen Sie mich diese auflisten:.
Durch die Möglichkeiten der Programmsteuerung werden Dinge realisiert, die vorher nicht möglich waren:
1. Werteversand. Den Wert eines Elements abrufen und an andere Elemente im selben oder einem anderen Fenster weiterleiten.
2. Software-Öffnung von Warn- und Dialogfenstern. Zum Beispiel in einer Situation, in der es notwendig ist, dem Benutzer eine dringende Nachricht oder eine Empfehlung anzuzeigen.
3. Gewinnung eines Gesamtbildes der Einstellungen und des Ausführungsstatus durch Abfrage von Elementparametern. Kann als Ergänzung zur Analyse anderer Programmparameter verwendet werden.
4. Dynamisches Zurücksetzen von Programmeinstellungen ohne Unterbrechung des Arbeitsprozesses.
5. Dank der Möglichkeit, die Farben von Sockeln, Text und Rahmen (noch keine Rahmen) zu ändern, wird die Schnittstelle interaktiver und informativer. Wenn zum Beispiel ein Wert zurückgespult wird und in die Gefahrenzone gerät, kann das Eingabefeld mit den Schaltflächen den Benutzer durch die rote Farbe der Basis oder des Textes auf die Gefahr hinweisen. Dies ist jetzt einfach zu implementieren. Das Gleiche gilt für den Schieberegler. Im Bereich der gefährlichen Werte kann man die Farbe des Balkens programmatisch ändern. So wird es interaktiv, informativ und praktisch.
Im Moment habe ich noch nicht alle Möglichkeiten ausgeschöpft, und ich bin sicher, dass noch viel mehr kommen wird.
Kommen wir nun zum praktischen Teil der Einführung der neuen Version.
Wie sich herausstellte, ist der praktische Teil der Demo recht umfangreich, und seine Behandlung wird einige Zeit in Anspruch nehmen. Ich werde die neuen Funktionen im Detail und in einer zugänglichen Art und Weise mit Kommentaren, Bildern und Gifs erklären und zeigen. Es kann sein, dass ich die Präsentation auf zwei Tage aufteilen muss - heute und morgen. Das ist in Ordnung, Ihr Verständnis wird sich verbessern. Sie sollten sich auch eine Pause gönnen.
Der Plan, die Funktionalität der neuen Version der Engine zu analysieren:
1. Ich erinnere Sie daran, dass neue Ordner und Dateien in ME installiert werden sollten , nachdem die vorherigen vollständig gelöscht wurden. Es ist nicht nötig, sie zu ersetzen.
2. Um zu arbeiten, müssen wir die Dateien (1) EA Shell v1.mq5 und API.mqh öffnen . Es besteht keine Notwendigkeit, andere Dateien zu öffnen. Wir werden die gleiche Schnittstelle und die vertrauten Fenster aus dem Demoprojekt 1.mqh verwenden . Die erste Datei sollte sich im Experts-Ordner befinden (ich glaube, sie ist bereits dort), und die zweite Datei finden Sie hier:
Die Dateien UIDATA.mqh und API.mqh in diesem Ordner enthalten bereits alles, was Sie brauchen. Es besteht keine Notwendigkeit, neue Dateien im Konstruktor zu erzeugen.
Die Hauptarbeit findet in der Datei (1) EA Shell v1.mq5 statt, in den Funktionen _OnInit() und _OnTimer, aber manchmal werden wir auch einen Blick in die Datei API.mqh werfen. Wenn Sie neugierig sind, können Sie die Datei UIDATA.mqh öffnen und sehen, wie die Fenster- und Element-Wrapper-Funktionen aussehen. Sie sind ganz unten abgedruckt. Ansonsten wird diese Datei für die Arbeit nicht benötigt und kann geschlossen werden.
Die Themen, die wir behandeln werden, sind:
1. Navigieren in der Liste von intellisense und Auswahl der richtigen Fensterfunktion.
2. Programmatisches Öffnen und Schließen von Fenstern.
3. sich in der Liste von intellisense orientieren und die richtige Funktion im richtigen Fenster auswählen.
4. Navigieren durch die Listen der einzelnen Elementeigenschaften.
5. Parsing des Elementnamens und der Fenster-Wrapper-Funktion.
6. Rückgabe des Parameterwertes eines ausgewählten Elementes an eine Variable seines Typs. Betrachtung von drei Typen mehrerer verschiedener Elemente.
7. Setzen von Werten für Parameter verschiedener Elementtypen. Schauen wir uns an, wie die Werte in den Schnittstellenfenstern dieser Elemente erscheinen werden.
8. Rückgabe der Parameterwerte eines Elements, Änderung und Weiterleitung dieses Werts an ein anderes Element. Betrachten Sie verschiedene Arten von Elementen und Werten, und testen Sie die Weiterleitung zwischen verschiedenen Arten von Elementen in verschiedenen Fenstern.
9. Rückgabe des letzten Wertes (_V_LAST). Wann und für welche Fälle wird der letzte Wert benötigt (nicht zu verwechseln mit dem aktuellen Wert).
10. Testen Sie die Einstellung der Zustände ON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK für verschiedene Arten von Elementen.
11. Versuchen Sie, die Änderungen der Werte von Elementen verschiedener Typen zu verknüpfen und zu synchronisieren: z.B. Eingabefeld mit Schaltflächen und Schieberegler. Nehmen wir an, dass, wenn sich der Wert eines Elements (manuell oder softwaremäßig) ändert, sich der Wert im zweiten Element entsprechend ändert.
12. Versuchen wir, die Bereichsgrenzen des Schiebereglers und des Eingabefeldes mit Schaltflächen über Wrapper-Funktionen programmatisch zurückzusetzen. Ich hatte noch keine Zeit, das zu testen, aber etwas deutet darauf hin, dass es funktionieren wird. Wie auch immer, schauen wir mal.
13. Versuchen wir, Elementzustände über Wrapper-Funktionen zurückzugeben. Das ist in der Funktionalität enthalten, aber ich hatte noch keine Zeit, es zu testen. Wir werden also sehen... Das Ergebnis ist unbekannt.
14. Lassen Sie uns die Farben für Text und Elementbasen abrufen und setzen. Wir können versuchen, diese Farben mit einigen einfachen Ereignissen oder Wertgrenzen zu verknüpfen.
15. Ich werde Ihnen mehr darüber erzählen, wie Sie den Ausdruck der neuen API-Datei navigieren und lesen können.
Das ist alles für den Moment, aber Ergänzungen sind möglich, während wir weiterarbeiten.