Diskussion zum Artikel "Universeller Expert Advisor: Traden mit Gruppen von Strategien und deren Verwaltung (Part 4)"
Bitte beantworten Sie ein paar Fragen:
1. Der Autor hat in den ersten Artikeln über Plattformunabhängigkeit geschrieben... Was sollte getan werden, um diesen Code an MT4 anzupassen?
2. Wenn 10 Instrumente gehandelt werden, 2-3 Systeme auf jedem, jedes System hat 10 Parameter, wird XML-Portfolio zu einer sehr großen Datei, die schwer von Hand ohne Fehler zu bearbeiten sein wird. Vielleicht wäre es in diesem Fall sinnvoll, das XML-Portfolio in verschiedenen Dateien zu speichern - eine Datei für jedes Instrument, die Informationen über die gehandelten Systeme und ihre Parameter enthält? Dann wäre es einfacher, sowohl den Handel mit dem Instrument als auch einzelne TS auf diesem Instrument zu aktivieren/deaktivieren (durch Setzen von Kontrollkästchen in der Datei).
Vielen Dank an Vasiliy Sokolov für diese gründliche Arbeit.
Bitte beantworten Sie ein paar Fragen:
1. Der Autor hat in den ersten Artikeln über Plattformunabhängigkeit geschrieben... Was sollte getan werden, um diesen Code an MT4 anzupassen?
2. Wenn 10 Instrumente gehandelt werden, 2-3 Systeme auf jedem, jedes System hat 10 Parameter, wird XML-Portfolio zu einer sehr großen Datei, die schwer von Hand ohne Fehler zu bearbeiten sein wird. Vielleicht wäre es in diesem Fall sinnvoll, XML-Portfolio in verschiedenen Dateien zu speichern - eine Datei für jedes Instrument, die Informationen über die gehandelten Systeme und ihre Parameter enthält? Dann wäre es einfacher, sowohl den Handel mit dem Instrument als auch mit einzelnen TS auf diesem Instrument zu aktivieren/deaktivieren (durch Setzen von Kontrollkästchen in der Datei).
Leider ist die erste Frage nicht so einfach zu beantworten. In Wirklichkeit muss eine ganze Menge geschrieben werden, damit die Engine im MT4 funktioniert. Ich werde es bald tun. Wenn ich die Engine auf MT4 portiere, werde ich einen entsprechenden Artikel veröffentlichen.
Was die zweite Frage betrifft, so ist es besser, alles in einer Datei zu speichern. XML ist gut, weil man damit baumartige Abschnitte organisieren kann und auch bei einer großen Anzahl von Tags nicht durcheinander kommt. Ein weiterer Punkt ist, dass die manuelle Bearbeitung von XML von der Norm selbst nicht begrüßt wird. Es ist ein industrielles Format für Algorithmen, die miteinander kommunizieren. Idealerweise sollte jede XML-Datei einen Maulkorb in Form einer regulären Anwendung haben, mit der man die Strategieparameter bearbeiten kann. Aber das ist zwar recht einfach (aus algorithmischer Sicht), wird aber sehr viel Zeit in Anspruch nehmen, so dass wir die Xml-Datei vorerst direkt bearbeiten.
Jede xml-Datei sollte einen Maulkorb in Form einer regulären Anwendung haben, die es erlaubt, Strategieparameter zu bearbeiten. Aber dies, obwohl recht einfach (aus algorithmischer Sicht) würde ziemlich viel Zeit in Anspruch nehmen, so dass wir im Moment die Xml-Datei direkt bearbeiten.
Die ideale Lösung wäre eine "Bearbeiten"-Schaltfläche auf der Benutzeroberfläche, die ein Fenster zum Bearbeiten des entsprechenden <Strategie>-Abschnitts öffnet . </Strategie>:)
Ja, das wäre cool. Ich muss nur jemanden finden, der bereit ist, das zu tun. Es ist nicht schwer, ich kann dir sogar sagen, was zu tun ist.
Guten Tag, Wassili!
Toller Motor! ...natürlich muss ich noch einige Dinge erledigen (z.B. die Arbeit mit ausstehenden Aufträgen).... aber das ist schon Tuning...
Ich habe eine Frage... Aus irgendeinem Grund wird die Position nicht geschlossen, wenn die Methode m_trade.PositionClose() aufgerufen wird... Fehler 10030, 10015 tritt auf, wenn eine Position geschlossen wird.
Ich verstehe, dass sich im Vergleich zu MQL4 in Bezug auf das Schließen von Aufträgen/Positionen alles sehr verändert hat... Ich möchte verstehen, was das Problem ist....
Vasiliy Sokolov, es sollte angemerkt werden, dass Sie eine großartige Arbeit bei der Erstellung einer universellen Engine geleistet und eine virtuose Beherrschung der OOP demonstriert haben. Das Studium dieses Materials ist also schon für sich genommen nützlich, um Ihre MQL5-Programmierkenntnisse zu verbessern.
Die Engine enthält eine Menge notwendiger und nützlicher Punkte und wird von vielen Tradern nachgefragt werden.
Ich bin gerade dabei, meine Roboter von der S#.Shell-Engine auf MT5 zu migrieren, und ich muss sagen, dass die von Ihnen erstellte Trading-Engine viele Funktionen implementiert, die mir fehlten, als ich mich mit den in Codebase vorgestellten Standard-Expert Advisor-Vorlagen vertraut machte. Darüber hinaus sind viele Dinge auf dem gleichen Niveau implementiert, und sogar noch cooler, obwohl das erwähnte Produkt die Arbeit eines ganzen Teams von Programmierern ist.
In dieser Hinsicht habe ich nach der Einarbeitung beschlossen, die Arbeit an meinem Code einzustellen und ihn auf Ihre Engine zu portieren.
Vasiliy Sokolov, es sollte angemerkt werden, dass Sie eine großartige Arbeit bei der Erstellung einer universellen Engine geleistet und eine virtuose Beherrschung der OOP demonstriert haben. Das Studium dieses Materials ist also schon für sich genommen nützlich, um Ihre MQL5-Programmierkenntnisse zu verbessern.
Die Engine enthält eine Menge notwendiger und nützlicher Punkte und wird von vielen Tradern nachgefragt werden.
Ich bin gerade dabei, meine Roboter von der S#.Shell-Engine auf MT5 zu migrieren, und ich muss sagen, dass die von Ihnen erstellte Trading-Engine viele Funktionen implementiert, die mir fehlten, als ich mich mit den in Codebase vorgestellten Standard-Expert Advisor-Vorlagen vertraut machte. Darüber hinaus sind viele Dinge auf dem gleichen Niveau implementiert, und sogar noch cooler, obwohl das erwähnte Produkt die Arbeit eines ganzen Teams von Programmierern ist.
In diesem Zusammenhang habe ich mich nach der Einarbeitung entschlossen, die Arbeit an meinem Code einzustellen und ihn auf Ihre Engine zu portieren.
Ich danke Ihnen für Ihre Wertschätzung meines vorgeschlagenen Ansatzes.
Ich möchte anmerken, dass die Handelsengine von CStrategy selbst auf der Standardbibliothek basiert, angefangen bei den Datenorganisationsklassen bis hin zur Handelsklasse CTrade. Die Standardbibliothek ist gut, robust und effizient, aber nicht alle ihre Klassen sind wirklich OO. Viele von ihnen sind nur Umhüllungen für Standardfunktionen. Das Ziel des OO-Ansatzes besteht nicht darin, eine Standardfunktion auf noch komplexere Weise aufzurufen, sondern eine nützliche Aufgabe auf möglichst effiziente Weise auszuführen und dabei die Komplexität der Implementierung zu verbergen. Aber das ist bereits eine Philosophie...
Vielen Dank für Ihre Wertschätzung des von mir vorgeschlagenen Ansatzes.
Ich möchte anmerken, dass der CStrategy-Handelsmotor selbst auf einer Standardbibliothek basiert, die mit Datenorganisationsklassen beginnt und mit der Handelsklasse CTrade endet. Die Standardbibliothek ist gut, robust und effizient, aber nicht alle ihre Klassen sind wirklich OO. Viele von ihnen sind nur Umhüllungen für Standardfunktionen. Das Ziel des OO-Ansatzes besteht nicht darin, eine Standardfunktion auf noch komplexere Weise aufzurufen, sondern eine nützliche Aufgabe auf möglichst effiziente Weise auszuführen und dabei die Komplexität der Implementierung zu verbergen. Aber das ist bereits eine Philosophie...
Sagen Sie mir, wie man das MoneyManagement-Modul verwendet. Es wird in den Beispielen nirgends gezeigt. Sollen die MM-Einstellungen für jede Strategie unterschiedlich sein oder sind die Einstellungen für das gesamte Portfolio gleich?
Wozu dienen diese externen Variablen in MoneyManagement.mqh? Ich verstehe nicht, wo sie verwendet werden.
input ENUM_MM_TYPE TypeMM; // Тип управления MM
input double FixLotOrPercent; // Фикс. лот или %
Hallo.
Interessantes Material. Ich habe es gelesen und beschlossen, es in der Praxis zu versuchen. Ich versuche, den beigefügten Expert Advisor Agent.mq5 in MT5 Build 1295 zu kompilieren. Alle Dateien sind fehlerfrei, aber am Ende "Internal compiler error". :( Können Sie mir sagen, wo zu graben?

- 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 Universeller Expert Advisor: Traden mit Gruppen von Strategien und deren Verwaltung (Part 4) :
In dem letzten Abschnitt der Serie über die CStrategy Trading Engine, werden wir die parallele Ausführung von verschiedenen Handels-Algorithmen betrachten, das Laden von Strategien über ein XML-File kennenlernen und wir werden ein einfaches Bedienfeld erstellen, mit welchem es möglich ist, die Strategie(n) auszuwählen und auch die Handelsmodi.
Die CStrategy Trading Engine enthält eine Ansammlung von Algorithmen, welche die parallele Ausführung von ein oder mehreren Strategien ermöglicht. Die werden dieses im Detail in dem vierten Abschnitt dieser Serie besprechen. Zudem werden wir ein Handelsprofil erstellen — Eine Gruppe von Expert Advisor-Strategien, welche gleichzeitig handeln, um das Risiko diversifizieren zu können. Die CStrategyList Klasse — Ein Container für Strategien vom Type CStrategy — gehört zu den Algorithmen, welche die gleichzeitige Operation von Strategien erlauben. Die Klasse erlaubt das Laden von Strategien, welche in XML geschrieben worden sind, sowie die dynamische Erzeugung mit einer entsprechenden Methode — eine Fabrik für Strategien.
Das angefügte Video demonstriert den Vorgang für das Testen von mehrfachen Strategien in dem MetaTrader 5 Strategietester. Alle Strategien, die mit der hier beschriebenen Trading Engine zusammenarbeiten, besitzen im Chart ein Bedienfeld, mit welchem Sie ganz einfach die Kontrolle über die verschiedenen Strategien haben.
Autor: Vasiliy Sokolov