Diskussion zum Artikel "Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil IX): Kompatibilität mit MQL4 - Datenvorbereitung"
Guten Tag! Mir gefällt Ihr Test-Expert Advisor. Ich möchte versuchen, ihn als Kern zu verwenden, der Signale und Filter von verschiedenen Indikatoren oder deren Kombinationen empfängt oder manuell durch Tastendruck gesteuert wird.
Den ersten dieser Expert Advisors haben Sie bereits gesehen und mir in einem benachbarten Thread dieses Forums geholfen, ihm Leben einzuhauchen.
Kannst Du mir in Deinem Test-EA zeigen, wie man programmatisch Knöpfe drücken kann?
Gibt es eine geeignete Funktion - können Sie diese teilen?
Oder schlagen Sie bitte vor, wie man es am besten macht.
Guten Tag! Mir gefällt Ihr Test-Expert Advisor. Ich möchte versuchen, es als Kern zu verwenden, die Signale und Filter von verschiedenen Indikatoren, ihre Kombinationen, oder manuell gesteuert, durch Tastendruck empfangen wird.
Den ersten dieser Expert Advisors haben Sie bereits gesehen und mir in einem benachbarten Thread dieses Forums geholfen, ihm Leben einzuhauchen.
Können Sie mir zeigen, wie man die Schaltflächen in diesem Test-EA von Ihnen programmatisch drückt?
Gibt es eine geeignete Funktion - können Sie sie teilen?
Oder schlagen Sie bitte vor, wie man es am besten macht.
Der in den Artikeln vorgestellte Expert Advisor ist nur ein Test-EA. Er ist nicht für den Handel auf Konten geeignet. Die in diesem Expert Advisor erstellten Schaltflächen sind ebenfalls nur eine Reihe von gewöhnlichen Objekten zum schnellen Testen der neuen Bibliotheksfunktionen, die in jedem nachfolgenden Artikel hinzugefügt werden. In der Zukunft, bei der Erstellung der grafischen Hülle der Bibliothek, werden diese einfachen Schaltflächen durch Schaltflächen ersetzt, die mit der grafischen Funktionalität der Bibliothek erstellt werden.
Und wozu braucht man "Software-Schaltflächen", wenn es sich um einen normalen Aufruf von Handelsfunktionen handelt? Warum sollte man eine Handelsfunktion über einen Software-Knopfdruck aufrufen, wenn man die Handelsfunktion sofort aus dem Programm heraus aufrufen kann? Das wäre dann ein "Software-Knopfdruck".
Der in den Artikeln vorgestellte Expert Advisor ist nur ein Test-Expert Advisor. Er ist nicht für den Handel auf Konten geeignet. Bei den in diesem Expert Advisor erstellten Schaltflächen handelt es sich ebenfalls nur um eine Reihe von einfachen Objekten zum schnellen Testen neuer Bibliotheksfunktionen, die in jedem nachfolgenden Artikel hinzugefügt werden. In Zukunft werden diese einfachen Schaltflächen bei der Erstellung der grafischen Oberfläche der Bibliothek durch Schaltflächen ersetzt, die unter Verwendung der grafischen Funktionalität der Bibliothek erstellt werden.
Und wozu braucht man "Software-Schaltflächen", wenn es sich um einen normalen Aufruf von Handelsfunktionen handelt? Warum sollte man eine Handelsfunktion über einen Software-Knopfdruck aufrufen, wenn man die Handelsfunktion sofort aus dem Programm heraus aufrufen kann? Das ist dann ein "Software-Klick" auf die Taste.
Der Punkt ist, dass dort bereits alles verknüpft ist, Handelsfunktionen, Klassen, Daten. Sie brauchen sich mit dieser Seite des Themas nicht zu befassen, Sie brauchen nur den Knopf zu drücken. Und dafür fehlen mir katastrophale Erfahrungen und Zeit.
Mit einem solchen Kern können Sie mehr Zeit für die Algorithmen der Handelsentscheidungen aufwenden als für die Mechanik der Ausführung. Natürlich ist die Ausführung von Entscheidungen auch wichtig, aber sie kann ein wenig aufgeschoben werden.
So habe ich mir das vorgestellt.
Der Punkt ist, dass Sie dort bereits alles verknüpft haben, Handelsfunktionen, Klassen, Daten. Man muss sich um diese Seite nicht kümmern, man muss nur einen Knopf drücken. Und mir fehlt es kathostrophisch an Erfahrung und Zeit, um das zu bekommen.
Mit einem solchen Kern können Sie mehr Zeit für die Algorithmen der Handelsentscheidungen aufwenden als für die Mechanik der Ausführung. Natürlich ist die Ausführung von Entscheidungen auch wichtig, aber sie kann ein wenig aufgeschoben werden.
So habe ich es auch gemacht.
Nach und nach wird der Bibliothek so viel Funktionalität hinzugefügt, dass es sehr einfach sein wird, Algorithmen so zu bearbeiten, wie Sie es wünschen. Und das ist genau der Zweck, für den sie konzipiert wurde.
Nun, obwohl es keine solche Funktionalität gibt, können Sie sehen, wie der Test Expert Advisor mit der CTrade-Handelsklasse arbeitet, die in der Standardbibliothek in MQL5 enthalten ist, und ähnliche Konstrukte schreiben, um die notwendigen Handelsfunktionen aufzurufen. Es gibt dort auch einen Aufruf von Tester-Handelsfunktionen für MQL4 (im Test-EA).
- www.mql5.com
Nach und nach wird die Bibliothek um so viele Funktionen erweitert, dass es sehr einfach sein wird, mit Algorithmen zu arbeiten - so wie Sie es wollen. Und das ist genau das, wofür sie entwickelt wurde.
Nun, obwohl es keine solche Funktionalität gibt, können Sie sehen, wie der Test-Expert Advisor mit der CTrade-Handelsklasse arbeitet, die in der Standardbibliothek in MQL5 enthalten ist, und ähnliche Konstrukte schreiben, um die notwendigen Handelsfunktionen aufzurufen. Dort (im Test-EA) gibt es einen Aufruf von Tester-Handelsfunktionen für MQL4.
Vielen Dank, ich werde es studieren.
Guten Tag! Mir gefällt Ihr Test-Expert Advisor. Ich möchte versuchen, es als Kern zu verwenden, die Signale und Filter von verschiedenen Indikatoren, ihre Kombinationen, oder manuell gesteuert, durch Tastendruck empfangen wird.
Den ersten dieser Expert Advisors haben Sie bereits gesehen und mir in einem benachbarten Thread dieses Forums geholfen, ihm Leben einzuhauchen.
Können Sie mir zeigen, wie man die Schaltflächen in diesem Test-EA von Ihnen programmatisch betätigt?
Gibt es eine geeignete Funktion - können Sie sie teilen?
Oder schlagen Sie vor, wie man es am besten macht, bitte.
Schönen guten Tag!
Sergey, ich werde Sie unterstützen, weil ich sehe, dass Sie sich in einer ähnlichen Situation befinden.
Ja, die Artikel sind großartig, aber sie enthalten sehr wenig Informationen darüber, wie man den geschriebenen Code verwendet. Bibliotheken sind im Allgemeinen wertvoll, um die Implementierung zu verbergen und eine klare Schnittstelle für praktische Aufgaben zu bieten. Die Hilfe der Funktion https://docs.mql4.com/strings/stringsubstr enthält kein einziges Wort über ihre Interna. Eine Beschreibung der eingehenden Parameter, das Ergebnis ihrer Verarbeitung und Beispiele. Das ist es, was ich gerne sehen würde.
Ja, Artem, Sie sind zweifellos ein begabter Programmierer, aber Anwendungsingenieure müssen so schnell wie möglich einen anderen Algorithmus entwickeln und nicht stundenlang über Hunderten von Zeilen des Codes anderer Leute auf der Suche nach Erleuchtung brüten. Die bisherige Artikelserie ist eher theoretisch.
Dies ist nicht mein erster Beitrag zu diesem Thema). Ich möchte damit keineswegs die Verdienste der Serie schmälern. Im Gegenteil - ich hoffe, Artem, dass Du die Wünsche der Forumsmitglieder berücksichtigst und die geschriebenen Bibliotheken in EAs so eifrig verwendet werden, wie gute Filme zitiert werden.
- docs.mql4.com
Guten Tag!
Sergej, ich unterstütze dich, weil ich sehe, dass du in einer ähnlichen Situation bist.
Ja, die Artikel sind großartig, aber sie enthalten sehr wenig Informationen darüber, wie man den geschriebenen Code verwendet. Bibliotheken sind im Allgemeinen wertvoll, um die Implementierung zu verbergen und eine klare Schnittstelle für praktische Aufgaben zu bieten. Die Hilfe der Funktion https://docs.mql4.com/strings/stringsubstr enthält kein einziges Wort über ihre Interna. Eine Beschreibung der eingehenden Parameter, das Ergebnis ihrer Verarbeitung und Beispiele. Das ist es, was ich gerne sehen würde.
Ja, Artem, Sie sind zweifellos ein begabter Programmierer, aber Anwendungsingenieure müssen praktische Aufgaben lösen, anstatt stundenlang über Hunderten von Zeilen fremden Codes zu brüten, um Erleuchtung zu finden. Die bisherige Artikelserie ist eher theoretisch.
Dies ist nicht mein erster Beitrag zu diesem Thema). Ich möchte damit keineswegs die Verdienste der Serie schmälern. Im Gegenteil - ich hoffe, Artem, dass Du die Wünsche der Forumsmitglieder berücksichtigst und die geschriebenen Bibliotheken in EAs so eifrig verwendet werden, wie gute Filme zitiert werden.
Das Ziel ist es, den Leser vom Beginn der Bibliothekserstellung bis zu ihrer Fertigstellung zu begleiten.
Sie sehen - die Artikel sind eher lehrreicher Natur, haben aber auch einen nützlichen praktischen Zweck, und zwar mehr als einen. Das Design der Codes ist leicht zu verstehen, ohne Wendungen und undokumentierte Funktionen um der Wendungen und "Coolness" willen zu verwenden. Aber es gibt ein unbestreitbares Plus - wie viele Beta-Versionen des Terminals wurden veröffentlicht, und wie viele Leute haben bereits gesagt, dass ihre Codes nicht mehr funktionieren, und die Bibliothek - lebt von Build zu Build ohne erzwungene Korrekturen, weil etwas plötzlich nicht mehr funktioniert....
Die Bibliothek hat derzeit einen Einstiegspunkt - die CEngine-Klasse (es wird einen zweiten Einstiegspunkt geben, aber viel später), und das Objekt dieser Klasse im EA gibt vollen Zugriff auf alle Funktionen.
Und weiter - es ist nicht schwierig, ein solches Objekt zu erstellen, zum Beispiel: CEngine lib; und im Code geben Sie lib ein und setzen einen Punkt (etwa so: lib.) - nach dem Punkt zeigt Ihnen der Editor ein Fenster mit einer Liste aller verfügbaren Methoden der Bibliothek. Die meisten von ihnen haben aussagekräftige Namen - mit ein wenig Übung können Sie sie benutzen. Alle Methoden sind in Artikeln beschrieben. In jedem Artikel gibt es ein Beispiel für ein Testprogramm, das allerdings nur einen kleinen Teil der Möglichkeiten zeigt.
Ich stimme zu - die Suche nach den gezeigten Methoden und deren Anwendung in zahlreichen Artikeln ohne Referenzmaterial ist eine schwierige Aufgabe.... Aber der Zyklus der Artikel ist ein Zyklus, so dass der Leser ihn zusammen mit mir durchläuft, und dann wird etwas in seinem Kopf gespeichert werden :) Und der Zweck, ich erinnere Sie daran, ist pädagogisch.
Es wird Referenzmaterial geben. Aber ganz am Ende - wenn die Bibliothek erstellt wird. Und Beispiele, natürlich, auch.
In der Zwischenzeit können Sie praktische Fragen stellen. Zeigen Sie einen Teil Ihres Codes und ich gebe Ihnen einen Tipp. Ich bin hier und gehe nirgendwo hin - es liegt nicht in meinen Regeln, das aufzugeben, was ich begonnen habe.
Ziel ist es, den Leser von den Anfängen der Bibliothek bis zu ihrer Fertigstellung zu begleiten.
Sie sehen - die Artikel sind eher lehrreicher Natur, während sie einen nützlichen praktischen Zweck haben, und zwar mehr als einen. Das Design der Codes ist leicht zu verstehen, ohne Wendungen und undokumentierte Funktionen um der Wendungen und "Coolness" willen zu verwenden. Aber es gibt ein unbestreitbares Plus - wie viele Beta-Versionen des Terminals wurden veröffentlicht, und wie viele Leute haben bereits gesagt, dass ihre Codes nicht mehr funktionieren, und die Bibliothek - lebt von Build zu Build ohne erzwungene Korrekturen, weil etwas plötzlich nicht mehr funktioniert....
Die Bibliothek hat derzeit einen Einstiegspunkt - die CEngine-Klasse (es wird einen zweiten Einstiegspunkt geben, aber viel später), und das Objekt dieser Klasse im EA gibt vollen Zugriff auf alle Funktionen.
Und weiter - es ist nicht schwierig, ein solches Objekt zu erstellen, zum Beispiel: CEngine lib; und im Code geben Sie lib ein und setzen einen Punkt (etwa so: lib.) - nach dem Punkt zeigt Ihnen der Editor ein Fenster mit einer Liste aller verfügbaren Methoden der Bibliothek. Die meisten von ihnen haben aussagekräftige Namen - mit ein wenig Übung können Sie sie benutzen. Alle Methoden sind in Artikeln beschrieben. Jeder Artikel enthält ein Beispiel für ein Testprogramm, das nur einen kleinen Teil der Möglichkeiten zeigt.
Ich stimme zu - die Suche nach den gezeigten Methoden und ihrer Anwendung in zahlreichen Artikeln ohne Referenzmaterial ist eine schwierige Aufgabe.... Aber der Zyklus der Artikel ist ein Zyklus, den der Leser mit mir zusammen durchläuft, und dann wird sich etwas in seinem Kopf festsetzen :) Und der Zweck, ich erinnere Sie, ist pädagogisch.
Es wird Referenzmaterial geben. Aber ganz am Ende - wenn die Bibliothek erstellt wird. Und Beispiele, natürlich, auch.
In der Zwischenzeit können Sie praktische Fragen stellen. Zeigen Sie einen Teil Ihres Codes und ich gebe Ihnen einen Tipp. Ich bin hier und gehe nirgendwo hin - es liegt nicht in meinen Regeln, aufzugeben, was ich begonnen habe.
Ich verstehe, dass Sie die besten Absichten haben und wahrscheinlich viel freie Zeit haben.)
Ich habe gerade Ihre Artikel aus der Reihe "MakingSimple" [ Bibliothek zur einfachen und schnellen Erstellung von Programmen für MetaTrader] gesehen und dachte, dass ich nach 10-15 Minuten Lesen in der Lage sein würde, nützlichen Code zu verwenden. Ich erwartete einen klassischen Artikel wiehttps://www.mql5.com/de/articles/272, in dem die Logik versteckt und die Schnittstelle offen ist, in dem die Fragen beantwortet werden: "warum man es braucht", "wie man damit arbeitet" und Beispiele. Es stellt sich heraus, dass das Ziel die Ausbildung und nicht RAD (Rapid Development) ist.
Nun, wir freuen uns darauf, zu sehen, wie Sie so etwas schreiben! ))
- www.mql5.com
Mir ist klar, dass Sie die besten Absichten haben und wahrscheinlich viel freie Zeit haben.)
Ich habe gerade Ihre Artikel aus der Reihe "MakingSimple"[ Bibliothek zur einfachen und schnellen Erstellung von Programmen für MetaTrader] gesehen und dachte, dass ich nach 10-15 Minuten Lesen in der Lage sein würde, nützlichen Code zu verwenden. Ich hatte einen klassischen Artikel wiehttps://www.mql5.com/de/articles/272 erwartet, wo die Logik versteckt und die Schnittstelle offen ist, wo die Fragen beantwortet werden: "warum man es braucht", "wie man damit arbeitet" und Beispiele. Es stellte sich heraus, dass das Ziel die Schulung und nicht RAD (Rapid Development) war.
Nun, wir freuen uns darauf, dass Sie so etwas schreiben! ))
DasZiel ist Lernen + schnelle Entwicklung. Zur schnellen Entwicklung lohnt es sich nur, praktische Anwendungsfragen zu stellen, wenn man zu faul zum Lesen ist und es noch kein Referenzmaterial mit Beispielen gibt.
Der Titel heißt übersetzt soviel wie "Mach es einfach". (Englisch..., lässt sich beliebig übersetzen, wenn es keinen Kontext gibt).
- 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 Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil IX): Kompatibilität mit MQL4 - Datenvorbereitung :
In den vorherigen Artikeln haben wir begonnen, eine große plattformübergreifende Bibliothek zu erstellen, die die Entwicklung von Programmen für MetaTrader 5 und MetaTrader 4 Plattformen vereinfacht. Im achten Teil haben wir die Klasse zur Verfolgung von Ereignissen der Auftrags- und Positionsänderung implementiert. Hier werden wir die Bibliothek verbessern, indem wir die vollständige Kompatibilität mit MQL4 herstellen.
Verbessern der Bibliothek
Erstellen Sie im Stammverzeichnis der Bibliothek DoEasy die neue Include-Datei ToMQL4.mqh. Hier werden alle notwendigen Konstanten und Aufzählungen für MQL4 beschrieben. Einbinden in die Datei Defines.mqh für die MQL4-Kompilierung am Anfang von Defines.mqh:
Danach kann die gesamte MQL4-Bibliothek sehen, was während der Kompilierung in die Datei ToMQL4.mqh geschrieben wird.
Gehen wir zum Anfang der Fehlerliste in der Registerkarte Fehler der Editor-Toolbox, indem wir NumPad POS1 (Home) drücken oder einfach bis zum Anfang nach oben scrollen. Machen Sie einen Doppelklick auf den allerersten Fehler:
Autor: Artyom Trishkin