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
Unser Ziel ist es, ein System zur automatischen periodischen Optimierung von Handelsstrategien zu schaffen, die in einem endgültigen EA verwendet werden. Im Laufe der Entwicklung wird das System immer komplexer, sodass es von Zeit zu Zeit in seiner Gesamtheit betrachtet werden muss, um Engpässe und suboptimale Lösungen zu ermitteln.
Wenn wir die periodische Optimierung automatisieren wollen, müssen wir über automatische Aktualisierungen der Einstellungen der bereits auf dem Handelskonto laufenden EAs nachdenken. Dies sollte es uns auch ermöglichen, den EA im Strategietester laufen zu lassen und seine Einstellungen in einem einzigen Durchgang zu ändern.
Um weitere Fortschritte zu erzielen, wäre es gut zu sehen, ob wir die Ergebnisse verbessern können, indem wir die automatische Optimierung in regelmäßigen Abständen erneut durchführen und einen neuen EA erstellen. Der Stolperstein in vielen Debatten über den Einsatz der Parameteroptimierung ist die Frage, wie lange die erhaltenen Parameter für den Handel in der Zukunft verwendet werden können, während die Rentabilität und der Drawdown auf dem vorgegebenen Niveau bleiben. Und ist das überhaupt möglich?
Wir haben bereits eine ganze Reihe von Komponenten entwickelt, die bei der automatischen Optimierung helfen. Bei der Erstellung folgten wir der traditionellen zyklischen Struktur: von der Erstellung eines minimalen funktionierenden Codes bis hin zum Refactoring und dem Erhalt eines verbesserten Codes. Es ist an der Zeit, mit dem Aufräumen unserer Datenbank zu beginnen, die auch eine Schlüsselkomponente in dem von uns geschaffenen System ist.
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.