Yuriy Bykov / Profil
- Information
|
13+ Jahre
Erfahrung
|
12
Produkte
|
46
Demoversionen
|
|
5
Jobs
|
1
Signale
|
1
Abonnenten
|
◉ Developing a multi-currency Expert Advisor (29 parts) ( https://www.mql5.com/ru/blogs/post/756958 )
◉ Moving to MQL5 Algo Forge (4 parts) ( https://www.mql5.com/ru/blogs/post/765536 )
◉ Developing a terminal manager (3 parts) ( https://www.mql5.com/ru/blogs/post/765539 )
📢 Channels:
Telegram: 📲 https://t.me/adwizard_mql5
MQL5 Channels: 🌐 https://www.mql5.com/en/channels/adwizard-en
Bisher haben wir die Automatisierung des Starts von sequentiellen Verfahren zur Optimierung von EAs ausschließlich im Standard-Strategietester betrachtet. Was aber, wenn wir zwischen diesen Starts die gewonnenen Daten mit anderen Mitteln bearbeiten wollen? Wir werden versuchen, die Möglichkeit hinzuzufügen, neue Optimierungsstufen zu erstellen, die von in Python geschriebenen Programmen ausgeführt werden.
Fahren wir fort, die Schritte zu automatisieren, die wir zuvor manuell durchgeführt haben. Diesmal kehren wir zur Automatisierung der zweiten Phase zurück, d. h. zur Auswahl der optimalen Gruppe von Einzelinstanzen von Handelsstrategien, und ergänzen sie durch die Möglichkeit, die Ergebnisse der Instanzen in dem Vorwärtszeitraum zu berücksichtigen.
Derzeit verwendet unser EA die Datenbank, um Initialisierungs-Strings für einzelne Instanzen von Handelsstrategien zu erhalten. Die Datenbank ist jedoch recht groß und enthält viele Informationen, die für den eigentlichen EA-Betrieb nicht benötigt werden. Versuchen wir, die Funktionalität des EA ohne eine obligatorische Verbindung zur Datenbank zu gewährleisten.
Es wird erwartet, dass der in der Entwicklung befindliche EA gute Ergebnisse beim Handel mit verschiedenen Brokern zeigt. Aber im Moment haben wir die Kurse eines MetaQuotes-Demokontos verwendet, um Tests durchzuführen. Lassen Sie uns sehen, ob unser EA bereit ist, auf einem Handelskonto mit anderen Kursen zu arbeiten, als die, die wir während der Tests und der Optimierung verwendet haben.
Wenn wir uns allmählich einem fertigen EA nähern, müssen wir auf Aspekte achten, die in der Phase des Testens einer Handelsstrategie zweitrangig erscheinen, aber wichtig werden, wenn wir zum echten Handel übergehen.
Der zuvor entwickelte Risikomanager enthielt nur grundlegende Funktionen. Versuchen wir, mögliche Wege zu seiner Entwicklung zu betrachten, die es uns ermöglichen, die Handelsergebnisse zu verbessern, ohne die Logik der Handelsstrategien zu beeinträchtigen.
| Qualität der Leistungsbeschreibung | 5.0 | |
| Ergebnis der Qualitätsprüfung | 5.0 | |
| Erreichbarkeit und Kommunikation | 5.0 |
Первый этап требовал достижения прибыли 8% от начального баланса и занял немногим менее месяца.
Второй этап требовал достижения 5%, но из-за менее удачного периода затянулся почти на два месяца.
Теперь ждем активации Funded-аккаунта, которая занимает, по словам техподдержки, 24 - 48 часов
Die erste Stufe der automatischen Optimierung haben wir bereits umgesetzt. Wir führen die Optimierung für verschiedene Symbole und Zeiträume nach mehreren Kriterien durch und speichern Informationen über die Ergebnisse jedes Durchgangs in der Datenbank. Nun werden wir die besten Gruppen von Parametersätzen aus den in der ersten Stufe gefundenen auswählen.
In dem EA, der hier entwickelt wird, haben wir bereits einen bestimmten Mechanismus zur Kontrolle des Drawdowns. Sie ist jedoch probabilistischer Natur, da sie auf den Ergebnissen von Tests mit historischen Preisdaten beruht. Daher kann der Drawdown manchmal die maximal erwarteten Werte übersteigen (wenn auch mit einer geringen Wahrscheinlichkeit). Versuchen wir, einen Mechanismus hinzuzufügen, der die garantierte Einhaltung der festgelegten Drawdown-Höhe gewährleistet.
Um einen guten EA zu erhalten, müssen wir mehrere gute Parametersätze von Handelsstrategie-Instanzen für ihn auswählen. Dies kann manuell erfolgen, indem die Optimierung für verschiedene Symbole durchgeführt und dann die besten Ergebnisse ausgewählt werden. Aber es ist besser, diese Arbeit an das Programm zu delegieren und sich produktiveren Tätigkeiten zu widmen.
Der EA-Entwicklungsplan umfasst mehrere Stufen, wobei die Zwischenergebnisse in der Datenbank gespeichert werden. Sie können von dort nur als Zeichenketten oder Zahlen wieder abgerufen werden, nicht als Objekte. Wir brauchen also eine Möglichkeit, die gewünschten Objekte im EA anhand der aus der Datenbank gelesenen Strings neu zu erstellen.
Schauen wir uns die wichtigsten Phasen der EA-Entwicklung an. Eine der ersten Aufgaben besteht darin, eine einzelne Instanz der entwickelten Handelsstrategie zu optimieren. Versuchen wir, alle notwendigen Informationen über die Testergebnisse während der Optimierung an einem Ort zu sammeln.
Im weiteren Verlauf haben wir immer mehr gleichzeitig laufende Instanzen von Handelsstrategien in einem EA verwendet. Versuchen wir herauszufinden, wie viele Instanzen wir erreichen können, bevor wir an Ressourcengrenzen stoßen.
Zuvor haben wir die Auswahl einer Gruppe von Handelsstrategie-Instanzen mit dem Ziel, die Ergebnisse ihrer gemeinsamen Operation zu verbessern, nur für den gleichen Zeitraum bewertet, in dem die Optimierung der einzelnen Instanzen durchgeführt wurde. Mal sehen, was in der Vorwärtsperiode passiert.
Nach der Optimierung der Handelsstrategie erhalten wir eine Reihe von Parametern. Wir können sie verwenden, um mehrere Instanzen von Handelsstrategien zu erstellen, die in einem EA kombiniert werden. Früher haben wir das manuell gemacht. Hier werden wir versuchen, diesen Prozess zu automatisieren.
In den vorangegangenen Teilen konnte der in Entwicklung befindliche Expert Advisor (EA) nur eine feste Positionsgröße für den Handel verwenden. Dies ist für Testzwecke akzeptabel, aber für den Handel mit einem echten Konto nicht ratsam. Lassen Sie uns den Handel mit variablen Positionsgrößen ermöglichen.
https://www.mql5.com/ru/channels/adwizard
https://t.me/adwizard_mql5
Nachdem wir mit der Entwicklung eines Mehrwährungs-EAs begonnen haben, konnten wir bereits einige Ergebnisse erzielen und mehrere Iterationen zur Verbesserung des Codes durchführen. Unser EA war jedoch nicht in der Lage, mit schwebenden Aufträgen zu arbeiten und den Betrieb nach dem Neustart des Terminals wieder aufzunehmen. Fügen wir diese Funktionen hinzu.