Diskussion zum Artikel "Kontinuierliche Walk-Forward-Optimierung (Teil 5): Projektübersicht Auto-Optimizer und Erstellen einer GUI"

 

Neuer Artikel Kontinuierliche Walk-Forward-Optimierung (Teil 5): Projektübersicht Auto-Optimizer und Erstellen einer GUI :

Dieser Artikel bietet eine weitere Beschreibung der Walk-Forward-Optimierung im MetaTrader 5-Terminal. In früheren Artikeln betrachteten wir Methoden zur Erstellung und Filterung des Optimierungsberichts und begannen mit der Analyse der internen Struktur der für den Optimierungsprozess verantwortlichen Anwendung. Der Auto-Optimizer ist als C#-Anwendung implementiert und verfügt über eine eigene grafische Oberfläche. Der fünfte Artikel ist der Erstellung dieser grafischen Oberfläche gewidmet.

Lassen Sie uns zur grafischen Oberfläche übergehen. Zuvor haben wir eine Methode zur Erstellung eines Add-ons für den MetaTrader 5 in der Sprache C# und Möglichkeiten zur Kombination seiner Funktionen mit einem Expert Advisor unter Verwendung einer DLL und des OnTimer-Callbacks in Betracht gezogen. In der aktuellen Implementierung wird der Auto-Optimierer außerhalb des Terminals implementiert. Jetzt läuft es als externer Optimierungsmanager und imitiert die Arbeit eines Händlers, der Optimierungen einführt und die Ergebnisse verarbeitet. Außerdem können wir durch die Vermeidung gleichzeitiger Optimierungen auf mehreren Terminals, die auf demselben Computer laufen, und durch die Implementierung des automatischen Optimierers als separate Anwendung absolut auf alle Terminals zugreifen, die auf dem Computer installiert sind, einschließlich des Computers, auf dem der Optimierer läuft. Dieser Computer konnte im vorherigen Projekt nicht verwendet werden.

Aus diesem Grund ist das aktuelle Projekt nicht vollständig als DLL implementiert, sondern wird nun in eine DLL und eine ausführbare Datei des Auto-Optimierer-Projekts unterteilt.


Wie aus dem obigen Screenshot ersichtlich, besteht das Projektfenster aus einem Kopfzeile, einem Fußzeile und einem TabControl mit zwei Registerkarten: Settings (Einstellungen) und Reports (Berichte). Der Kopfteil und die Fußzeile des Fensters werden nicht verändert, unabhängig davon, welche Registerkarte im Mittelteil ausgewählt ist, wodurch ein einfacher Zugang zu allen Bedienelementen, die sich in diesen Teilen befinden, ermöglicht wird.

Autor: Andrey Azatskiy

 
Was ist zu tun? Wie ist zu optimieren?
 
Dzmitry Adzinets:
Was ist zu tun? Wie kann man optimieren?

In Artikel #4 - Anleitung zur Optimierung

Непрерывная скользящая оптимизация (Часть 4): Программа для управления оптимизацией (автооптимизатор)
Непрерывная скользящая оптимизация (Часть 4): Программа для управления оптимизацией (автооптимизатор)
  • www.mql5.com
Продолжая цикл статей про непрерывную скользящую оптимизацию, вашему вниманию представляется созданная программа для осуществления запрограммированной автоматической оптимизации. Ранее написанные статьи описывали детали реализации данной программы как на стороне терминала, так и библиотеки, которая используется для работы с созданными отчетами...
 
Andrei, wie füllt man die Felder "APPEND_BOT_PARAM" richtig aus? Sollen dort alle Parameter des Expert Advisors eingetragen werden oder nur die, die im Moment optimiert werden müssen? Und warum muss ich sie im Code des Expert Advisors ausfüllen, wenn sie im Hauptfenster "Metatrader Auto Optimiser " verfügbar sind?
 
Good Beer:
Andrei, wie füllt man die Felder "APPEND_BOT_PARAM" richtig aus? Sollen dort alle Parameter des Expert Advisors eingetragen werden oder nur die, die im Moment optimiert werden müssen?

Alle Parameter des Expert Advisors sollten dort eingetragen werden.

Good Beer:
Und warum sollten sie im Code des Expert Advisors eingetragen werden, wenn sie im Hauptfenster des "Metatrader Auto Optimiser" verfügbar sind?

Der Punkt ist, dass im Hauptfenster von Metatrader Auto Optimiser diese Parameter aus der vom Terminal generierten (*set) Datei übernommen werden. In den Optimierungsberichten, in denen auch die Roboterparameter gespeichert werden, werden die Parameter jedoch vom Roboter selbst zum Zeitpunkt der Berichterstellung geschrieben. Wenn Sie diese Parameter nicht eingeben, kann der Auto-Optimierer erstens keine Tests mit bereits durchgeführten Optimierungen durchführen, da er für die Durchführung von Tests die Parameter aus den Optimierungsberichtsdateien nimmt, die, wie ich oben schrieb, vom Roboter selbst am Ende des Optimierungsprozesses erstellt werden. Zweitens wird es Probleme bei der Optimierung geben, denn nachdem die Passage nach den ausgewählten Kriterien ausgewählt wurde, kann der Test nicht durchgeführt werden, weil die Parameter des Roboters, mit denen der Test durchgeführt werden soll, nicht gefunden werden. Oder besser gesagt, der Test wird höchstwahrscheinlich gestartet, aber nicht mit den erwarteten Parametern.

 
Andrey Azatskiy:

übernimmt die Parameter genau aus den Optimierungsberichtsdateien

Es ist wahrscheinlich ratsam, alternative, bewährte Möglichkeiten zur Beschaffung dieser Informationen zu nutzen.

 
fxsaber:

Es ist wahrscheinlich ratsam, alternative, bewährte Möglichkeiten zu nutzen, um diese Informationen zu erhalten.

Können Sie einige Alternativen vorschlagen? Der Punkt ist, dass der Roboter selbst den Bericht erstellt, und ich habe mich entschieden, den Standard-Upload, den das Terminal durchführt, nicht zu verwenden, weil ich dem Bericht mehr Daten hinzufügen wollte. Im Prinzip wird dies nur einmal gemacht, nicht bei jeder Optimierung, also denke ich, dass es nicht sehr schwierig sein sollte, aber wenn es einen bequemeren Weg gibt, bin ich bereit, den Code zu optimieren.

 
Andrey Azatskiy:

Können Sie Varianten vorschlagen? Der Punkt ist, dass der Roboter selbst den Bericht generiert, aber ich habe beschlossen, nicht den Standard-Upload zu verwenden, den das Terminal aus dem Grund macht, dass ich dem Bericht mehr Daten hinzufügen wollte. Im Prinzip wird dies einmal gemacht, nicht bei jeder Optimierung, also denke ich nicht, dass es sehr schwierig sein sollte, aber wenn es einen bequemeren Weg gibt, bin ich bereit, den Code anzupassen.

In KB MTTester.mqh, wo Sie alle Einstellungen des EA zu jeder Zeit erhalten können. Nun, und ziehen Sie Sets aus den Optimierungsergebnissen - auch.

 
fxsaber:

In der MTTester.mqh KB, wo Sie alle EA-Einstellungen jederzeit abrufen können. Nun, und ziehen Sie Sets aus den Optimierungsergebnissen - auch.

Nun, ich brauche keine Sets zu ziehen, es zählt alles von selbst, aber ich danke Ihnen für den Mechanismus der Automatisierung des Empfangs von Einstellungen, ich werde es in meiner Freizeit studieren und versuchen, es in der neuen Version zu implementieren.

 
Andrey Azatskiy:
Varianten vorschlagen?

Nun, und als eine Option: minimal verbinden Frames an den Expert Advisor und FrameInputs() verwenden.

 
Good Beer:

Nun, und als Option: verbinden Sie minimal Frames mit dem Expert Advisor und verwenden Sie FrameInputs().

Ich möchte keine Frames verwenden, aber ich danke Ihnen für Ihren Rat. Bei der aktuellen Variante ist nur eine Klasse mit dem Expert Advisor verbunden, während Frames ein ganzer Mechanismus mit einer Reihe von Methoden für die Arbeit mit ihnen sind. Außerdem unterstützen sie, soweit ich mich erinnere, nur primitive Datentypen, und ich wollte Strukturen in Dateien speichern, also entschied ich mich für die Verwendung von Xml-Markup.