Diskussion zum Artikel "Optimierungsmanagement (Teil I): Erstellen einer GUI"

 

Neuer Artikel Optimierungsmanagement (Teil I): Erstellen einer GUI :

Dieser Artikel beschreibt den Prozess der Erstellung einer Erweiterung für das MetaTrader-Terminal. Die vorgestellte Lösung hilft, den Optimierungsprozess zu automatisieren, indem Optimierungen in anderen Terminals durchgeführt werden. Es werden noch einige weitere Artikel zu diesem Thema geschrieben. Die Erweiterung wurde unter Verwendung der Sprache C# und der Designmuster entwickelt, was zusätzlich die Fähigkeit demonstriert, die Terminalfunktionen durch die Entwicklung benutzerdefinierter Module zu erweitern, sowie die Fähigkeit, benutzerdefinierte grafische Benutzeroberflächen mit der Funktionsvielfalt einer bevorzugten Programmiersprache zu erstellen.

Um mit dem Projekt arbeiten zu können, sollten Sie Visual Studio IDE (Integrierte Entwicklungsumgebung) installieren. Dieses Projekt wurde mit der Community 2019 Version erstellt. Während der Installation von Visual Studio sollten Sie auch .Net 4.6.1 installieren, das bei der Entwicklung dieses Add-ons verwendet wurde. Um den Lesern, die keine fundierten Kenntnisse von C# haben, beim Verständnis der Idee zu helfen, werde ich detaillierte Beschreibungen spezifischer Sprachprobleme und der Techniken, die ich bei der Programmierung verwendet habe, geben.

Da die bequemste Methode zur Erstellung einer grafischen Benutzeroberfläche die Verwendung der Sprache C# ist und das MetaTrader-Terminal eine bequeme Methode zur Anwendung dieser Sprache unterstützt, werden wir die bereitgestellten Möglichkeiten nutzen. Vor kurzem wurden auf dieser Website einige Artikel veröffentlicht, die sich auf die Erstellung von GUIs mit C# beziehen. Diese Artikel zeigen GUI-Erstellungsmethoden, die auf der Technologie von Win Forms basieren, und eine Verbindungs-DLL, die Grafiken mit Reflexionsmechanismen startet. Die vom Artikelautor verwendete Lösung ist gut genug, aber für den aktuellen Artikel habe ich mich für eine modernere GUI-Entwicklungsmethode entschieden: die Verwendung der WPF-Technologie. Dadurch ist es mir gelungen, die Verbindungsbibliothek zu vermeiden und gleichzeitig alles Notwendige in einer einzigen DLL zu implementieren. Um die Hauptaufgabe zu lösen, müssen wir den Typ des Projekts erstellen, wodurch wir grafische Objekte speichern können, die mit der WPF-Technologie beschrieben werden. Das Projekt sollte in die dynamische Bibliothek (*.dll-Datei) kompiliert werden, die dann in das Terminal geladen werden kann. Diese Projektart ist vorhanden: WpfCustomControlLibrary. Dieser Typ wurde speziell für die Erstellung von benutzerdefinierten Grafikobjekten entwickelt. Ein Beispiel dafür ist eine Bibliothek, die Diagramme darstellt. Wir werden diesen Typ für unseren speziellen Zweck verwenden, d.h. für die Erstellung eines Add-ons für das MetaTrader-Terminal. Um diesen Projekttyp zu erstellen, wählen Sie ihn aus der Liste der Projekte in IDEVisual Studio, wie im folgenden Screenshot gezeigt:

Autor: Andrey Azatskiy

[Gelöscht]  

Darf ich Ihnen eine Frage stellen?

Was ist der Sinn der Sache?

Was hindert Sie daran, nur zwei Terminals zu starten und die Optimierung auf beiden laufen zu lassen?

Beide Terminals greifen auf die gleichen Agenten zu. Sie können keinen Geschwindigkeitsgewinn erwarten.

Was soll das bringen?

 
Сергей Таболин:

Darf ich Ihnen eine Frage stellen?

Worum geht es hier?

Was hindert Sie daran, nur zwei Terminals zu starten und dort die Optimierung durchzuführen?

Beide Terminals greifen auf die gleichen Agenten zu. Es ist kein Geschwindigkeitsgewinn zu erwarten.

Was ist der Grund dafür?

Der Sinn liegt nicht in der Geschwindigkeit, sondern darin, dass man eine solche Möglichkeit hat. Ich habe z.B. Experten, die im Wesentlichen mehrere Logiken kombinieren, wenn man die Suche wie üblich durchführt, dann werden einige der Ergebnisse mit gemischter Logik sein und sollten daher nicht berücksichtigt werden.
Der zweite Grund ist die Verwaltung der Optimierung (rollierende Optimierung), dies wird das Thema eines der nächsten Artikel sein.

Außerdem werden nach der Optimierung die Berichte beider Optimierungen an einem Ort gespeichert, was für die Arbeit mit ihnen praktisch ist.

 
Ich habe versucht, ein ähnliches System zu machen, aber die Idee war, Optimierungen zu planen und wenn sie fertig sind, würde das Terminal die Optimierung in .csv mit einem projektierten Namen speichern, zum Beispiel: EA_XXX_v01_EURUSD_H1_OHLC_SET01
Und später würde zur nächsten geplanten Optimierung übergehen, die SETs sollten in einem Ordner gespeichert werden, auf diese Weise würden mehrere Roboter während des Tages in mehreren verschiedenen Perioden und Symbolen optimieren, einschließlich der Erleichterung einer WFA oder OOS.
Leider konnte ich aufgrund meiner geringen Kenntnisse nicht entwickeln, ich werde Ihre Arbeit verfolgen. Herzlichen Glückwunsch!!!
 
Joao Luiz Sa Marchioro:
Ich habe versucht, ein ähnliches System zu machen, aber die Idee war, Optimierungen zu planen und wenn sie fertig sind, würde das Terminal die Optimierung in .csv mit einem projektierten Namen speichern, zum Beispiel: EA_XXX_v01_EURUSD_H1_OHLC_SET01
Und später würde zur nächsten geplanten Optimierung übergehen, die SETs sollten in einem Ordner gespeichert werden, auf diese Weise würden mehrere Roboter während des Tages in mehreren verschiedenen Zeiträumen und Symbolen optimieren, einschließlich der Erleichterung einer WFA oder OOS.
Leider konnte ich aufgrund meiner geringen Kenntnisse nicht entwickeln, ich werde Ihre Arbeit verfolgen. Herzlichen Glückwunsch!!!

Vielen Dank, Luiz. Jetzt arbeite ich an dem Projekt, wie du es beschrieben hast, und bald wird es einen Artikel darüber geben.

 

Hallo!

Darf ich Ihnen eine Frage stellen?

Kann die Version Community 2015 verwendet werden?

 
Irina Dymura:

Hallo!

Darf ich Ihnen eine Frage stellen?

Kann die Version Community 2015 verwendet werden?

Hallo, ich denke ja, das ist sie.

 
Ich danke Ihnen ...
 
Resources.resx

Die Datei fehlt dem Zip Package.

Sie ist aber hier zu finden

https://www.mql5.com/ru/articles/download/7029.zip


Ansonsten sehr schöner Artikel!

Eine Möglichkeit den MT5 extern zu starten und Tests durchzuführen

 
Ich grüße Sie und danke Ihnen nochmals für Ihre so nützliche Arbeit. Die Fertigstellung des Prozesses durch Aufzeichnung der Daten in einer dox-, xcl- oder csv-Datei wäre wirklich nützlich.
Nochmals vielen Dank.
 
Patrick Johnson:
Ich grüße Sie und bedanke mich nochmals für Ihre so nützliche Arbeit. Die Fertigstellung des Prozesses durch Aufzeichnung der Daten in einer dox-, xcl- oder csv-Datei wäre wirklich nützlich.
Nochmals vielen Dank.

Leider wird dieses Projekt nicht mehr unterstützt. Jetzt arbeite ich an dem Walk Forward Auto Optimiser (https://www.mql5.com/de/articles/7583)

Continuous Walk-Forward Optimization (Part 5): Auto Optimizer project overview and creation of a GUI
Continuous Walk-Forward Optimization (Part 5): Auto Optimizer project overview and creation of a GUI
  • www.mql5.com
In the previous articles, we considered the project part directly related to the terminal as well as the part describing the general application of the project. The previous article was ahead of the rest of the series. This was done for two reasons. Firstly, it serves as an instruction for using the application. Secondly, it illustrates the app...