Friday 29 September 2017

Vorwärtsoptimierung Mt4 Forex


Walk-Forward-Optimierung in MetaTrader 4 Viele erfahrene Trader nutzen eine Walk-Forward-Optimierung für ihre algorithmischen Handelssysteme. Leider bietet MetaTrader 4 keine Möglichkeit, eine Vorwärts-Optimierung von Expertenberatern (EA) durchzuführen. Aus diesem Grund habe ich mich entschlossen, die Walk-Forward Optimizer (WFO) - Bibliothek zu implementieren, und ich bin bereit, es hier in den Blogs bekannt zu geben - das ist der einzige Platz auf mql5 (ohne den Markt selbst), wo bestehende und zukünftige Marktprodukte präsentiert werden können Und diskutiert, ohne dass ein Benutzer verboten ist. Ich kann es nicht sagen, wann die Bibliothek öffentlich zugänglich sein wird, denn es hängt von vielen externen Faktoren ab, wie z. B. das Warten in der Warteschlange für die Vorab-Check-up, die Überprüfung selbst und so weiter. Im nicht einmal sicher, dass die Bibliothek über den Markt verteilt wird, weil es nicht klar ist, ob es gegen die Märkte Regeln verstößt oder nicht (Ich versuche, die Angelegenheit mit MQ-Unterstützung zu klären, aber bis jetzt nicht mehr). Aber wenn Sie Interesse an der Bibliothek haben, lassen Sie mich eine Linie, und Ill benachrichtigen Sie über ihre Verfügbarkeit. Als eine Bibliothek ist die WF-Funktion nur für diejenigen geeignet, die Quellcodes ihrer Experten haben und kleine temporäre Änderungen in der Quelle leisten können. Wenn Sie nicht mit der Programmierung umgehen können, gibt es 2 weitere Möglichkeiten, um eine Vorwärts-Optimierung in MetaTrader 4 durchzuführen. Die erste verwendet ein externes UI-Automatisierungsprogramm, das Daten füllen und alle notwendigen Optionen im Tester umwandeln würde, als ob es ein Benutzer ist, eine Optimierung einzuleiten Läuft und vorwärts Testläufe (eins nach dem anderen), das Speichern von Ergebnissen in Dateien, und dann ein anderes Programm sollte die Ergebnisse analysieren und einen Bericht erstellen. Dieser Ansatz erfordert, dass ein Benutzer mit diesen externen Programmen vertraut ist und sie entsprechend eingerichtet hat. Die zweite nutzt die MetaTraders-Befehlszeile (die einen Benutzer benötigt, um eine Reihe von Konfigurationsdateien (.ini-Set) und Shell-Dateien (.bat oder. cmd) vorzubereiten) sowie ein externes Programm oder Skript zum Analysieren der resultierenden html - Berichte und kombiniert sie zu einem einzigen aggregierten Bericht. Beide Wege sind nicht viel einfacher als die Optimierung der EA mit der Bibliothek. Die Bibliothek unterstützt Rolling Walk-Forward, verankerte Walk-Forward und Cluster-Analyse. Aber erwarten Sie nicht, dass seine WF-Implementierung so voll ausgestattet ist wie in bekannten, eigenständigen Programmen zum Trading und Backtesting. Die Bibliothek beruht auf dem eingebauten Tester. Grundsätzlich verwaltet und verschiebt es die Reichweite der für den EA-Handel zugelassenen Termine bei jedem Optimierungslauf. Die Ergebnisse aller Optimierungspässe werden in einer Zwischen-Csv-Datei und speziellen globalen Variablen gespeichert, die dann von einem Helfer-Skript - WF-Reporter verarbeitet werden sollen. Dadurch entsteht eine HTML-Seite mit verständlichem Bericht eines der unterstützten Typen. Hier ist, wie ein Vorwärts-Testbericht aussieht. Diese Ergebnisse sind für Standard-EA Moving Average (von MetaTrader Distribution) genetisch optimiert und getestet auf EURUSD D1 ab 2010 mit minimal konstanten Los. Vollständige Unterlagen und Beispiele werden zur Verfügung gestellt, sobald die Produkte veröffentlicht werden. Die Bibliothek soll bezahlt werden, und das Skript ist frei. Oder vice versa. Walk-forward Optimierungsbibliothek für MetaTrader 4: FAQ Häufig gestellte Fragen Q. Warum sollte ich WFO A verwenden. WFO ist eine automatisierte Implementierung des Prozesses der EA-Prüfung und - Überwachung, die ein Trader normalerweise mit den Händen durchführt. Darüber hinaus bietet WFO eine gerechtfertigte Antwort für die Fragen, welche Periode der EA-Optimierung zu wählen, und wie lange die optimierte EA-Performance im Durchschnitt dauern wird, so dass man wissen könnte, in welchem ​​Tempo die Re-Optimierung durchgeführt werden soll. Q. Warum ist die WFO-Bibliothek für MetaTrader 5 nicht verfügbar. MetaTrader 5 wird in Zukunft wahrscheinlich eine Vorwärts-Optimierung nativ als neuen Modus des eingebauten Testers unterstützen. Wenn Sie diese Bibliothek dringend auf MetaTrader 5 portieren möchten, senden Sie bitte Ihre Anfrage an den Autor - bei hoher Nachfrage kann sie nachgeholt und freiwillig an alle Requester gesendet werden, die eine Originalversion für MetaTrader 4 besitzen. Q. Warum WF-Optimierung Und Testperioden werden in einem einzigen Testerpass A durchgeführt. Ein einziger Testerpass, der in das Optimierungsfenster und den Vorwärtstest unterteilt ist, wird verwendet, weil es einfach ist, entsprechende Optimierungs - und Testperioden zuzuordnen. In der Tat, MQL4 bietet keine Mittel für die Verknüpfung von 2 unabhängigen Tester Pässe miteinander. Darüber hinaus, auch wenn es möglich war, würde das Testen von Vorwärtsschritten als Optimierungsläufe behandelt und damit eine Vorspannung für eine optimale Parametersuche eingeführt. Und wenn wir vorwärts Tests mit Null-Leistungsindikator markieren, um die Vorspannung zu beseitigen, würde der Tester die meisten Vorwärts-Tests überspringen, während er genetischen Algorithmus verwendet. Und die Verweigerung der Genetik scheint unpraktisch zu sein. F. Warum Standardoptimierungsbeschränkungen bei der Verwendung von WFO A im Tester deaktiviert werden müssen. In der Tat sollten alle Flags auf der Registerkarte Optimierung des Dialogfelds Expert Properties vor der Verwendung der WFO-Bibliothek gelöscht werden. Dies geschieht deshalb, weil die Einschränkungen auf entsprechende Werte angewendet werden, die für den gesamten Zeitraum berechnet wurden, aber die Periode wird intern durch WFO auf Optimierungs - und Vorwärts-Testteile geteilt, wobei nur Optimierungswerte wichtig sind. Die WFO-Bibliothek berechnet alle wichtigen Parameter für beide Teile separat und bietet Ihnen einen Zugriff auf Optimierungsindikatoren über spezielle Variablen, die in benutzerdefinierten Formeln verwendet werden können. Wenn Sie eine Einschränkung verwenden möchten, können Sie einen Ausdruck für den Leistungsschätzer angeben, bei dem der spezifische Parameter mit einem Schwellenwert überprüft wird und wenn die Bedingung nicht erfüllt ist, wird der Schätzwert auf 0 gesetzt. Wenn Sie z. B. alle Pässe löschen möchten Relativer Drawdown größer als 50, kannst du deinen Hauptleistungsschätzer auf den folgenden Ausdruck min (max (50 - DDREL, 0), 1) multiplizieren. Q. Einige Werte des Gewinnfaktors in den Tischen erscheinen seltsam. Warum A. Weil Profitfaktor als Verhältnis von Gewinnen und Verlusten berechnet wird, kann es Fälle geben, in denen es tatsächlich undefiniert ist - dies geschieht, wenn es überhaupt keine Verluste gibt. Standardmäßig weist MetaTrader 4 in solchen Fällen den DBLMAX-Wert für den Profitfaktor auf, aber das ist keine gute Idee, denn ein Test mit 1 Profitiver Handel und ein weiterer Test mit 10 gewinnbringenden Trades erhalten den gleichen Profitfaktor. Darüber hinaus, wenn Profitfaktor in einem Compound Performance Schätzer verwendet wird, wird DBLMAX höchstwahrscheinlich Unregelmäßigkeit einführen. Aus diesem Grund bietet die Bibliothek 2 verschiedene Möglichkeiten, um überflossene Gewinnfaktoren zu behandeln. Wenn der Schätzer wfobuiltinloose oder wfobuiltinstrik ist. Profitfaktoren größer als 10 werden als 10 multipliziert mit Quadratwurzel der Anzahl der Trades angepasst. Wenn ein anderer Schätzer ausgewählt ist, kannst du die wfosetPFmax-Funktion verwenden, um eine relativ große Zahl als Profitfaktor-Obergrenze anzugeben, aber deutlich niedriger als DBLMAX, zum Beispiel 100. Schließlich, wenn du wfoexpression wählst. Sie können spezielle Fälle behandeln, indem Sie den Gewinnfaktor-Surrogat aus dem Bruttogewinn (GP-Variable) und dem Bruttoverlust (GL variabel) mit beliebiger spezifischer Formel berechnen. Q. Woher weiß ich, dass ein Walk-Forward-Test bestanden oder fehlgeschlagen ist. Die WFO-Bibliothek markiert nicht explizit Vorlaufergebnisse als übergeben oder fehlgeschlagen, da die Benutzer die gewünschten Kriterien unterscheiden können. Als Faustregel gilt ein Test als übergeben, wenn der Wirkungsgrad über 50 liegt und die Konsistenz über 50 liegt, und der Drawdown nicht mehr als 30. Man kann auch darauf achten, dass die Verteilung der Gewinne auf Vorwärtsversuchen keine unterschiedlichen Ausreißer enthält (wenn am größten Gewinn pro Pass produziert mehr als 50 des Gesamtgewinns). All diese Faktoren können in den Tabellen des jeweiligen Berichts visuell überprüft werden. Q. Warum Walk-Forward Drawdown als grobe Schätzung markiert ist, normalisiert A. Dieser Drawdown wird auf der Forward-Balance-Kurve berechnet, wobei ausschließlich Gewinne oder Verluste bei jedem Schritt (als Ganzes) verwendet werden und keine zugrunde liegenden Trades berücksichtigt. Dies macht den Drawdown grobe Schätzung. Um einen genauen Drawdown zu berechnen, sollte man eine komplette Liste von Trades haben, aber die WFO-Bibliothek rettet sie nicht um der Effizienz willen. In der Tat, wenn es dies tun würde, würde jeder einzelne Pass eine separate Datei erzeugen, und die Anzahl der Pässe kann Hunderte von Tausenden sein. Der Drawdown wird als normalisiert bezeichnet, da er aus dem annualisierten Gewinn aus In-Sample-Daten (Optimierungszeitraum) statt der Erstablagerung berechnet wird. Der konventionelle Drawdown kann je nach einem willkürlichen Einzahlungsbetrag, der freiwillig vom Händler gewählt wird, drastisch variieren. Das macht es schwer, die Risiken zu verstehen. Zum Beispiel, mit einer ersten Einzahlung gleich 10000 ein Drawdown auf 1000 ist nur 10, aber für 2000 seine 50. Wenn annualisierte Gewinn anstelle von Einzahlung verwendet wird, zieht Drawdown die Risiken in der universellen Maßnahme entsprechend dem Handelssysteme potenzielle Effizienz skaliert (durchschnittliche Rentabilität ). Q. Was ist die Bedeutung von Abweichung in den Berichten, wie man es interpretiert A. Die Tabellenzeile mit Abweichung zeigt die Standardabweichung () des entsprechenden Wertes als Maß für ihre Dispersion, so wie weit sie über ihren Durchschnitt hin - und her schwankt. Ist die Abweichung gleich oder größer als der Durchschnitt (oder der Mittelwert), so erscheint der entsprechende Parameter unzuverlässig, weil sein beobachteter Wert höchstwahrscheinlich das Zeichen leicht ändern wird, unabhängig von dem erwarteten, und das ist zum Beispiel für Gewinne sehr wichtig. Zum Beispiel, wenn der durchschnittliche Gewinn 100 ist und die Abweichung 100 ist, dann ist die Wahrscheinlichkeit eines Verlustes etwa 15,8, wenn die Abweichung 50 ist - die Wahrscheinlichkeit eines Verlustes beträgt 2,2, und wenn die Abweichung 33 ist, dann ist die Wahrscheinlichkeit eines Verlustes nur 0,1. Im Gegenteil, wenn die Abweichung 200 ist, steigt die Wahrscheinlichkeit eines Verlustes auf bis zu 31 an. Dies wird durch die nachstehende Grafik veranschaulicht. Wir verwenden hier die Normalverteilung, das kann umstritten werden, aber es ist gut untersucht und anwendbar (unter bestimmten Annahmen) für die meisten der langlebigen Versuchsreihen (wir gehen davon aus, dass wir eine ausreichende Anzahl von Vorlaufpässen haben). Q. Meine Optimierung hat mit dem Fehler gestoppt Tester Memory Handler: Tester gestoppt, weil nicht genug Speicher. Was kann ich tun A. Du versucht, eine zu massive Optimierung durchzuführen, die alle verfügbaren Ressourcen für den MetaTrader 4 Tester verbraucht hat. Das ist kein Thema der Bibliothek. Dies ist eine Begrenzung des Testers und Betriebssystems. Sie müssen irgendwie Ihre Optimierungseinstellungen vereinfachen oder mehr Ressourcen auf Ihren PC hinzufügen. Hier sind einige Methoden: verkürzen Sie den Bereich der Prüfungstermine (zB 2-3 Jahre statt 5-6), verringern Sie die Anzahl der für die Optimierung aktivierten Parameter, reduzieren Sie die Anzahl der Iterationen für optimierte Parameter (zB können Sie abnehmen Anzahl der Vorwärtsschritte in der Kosten der Erhöhung der Vorwärtsschrittweite in der gleichen Anzahl von Malen), versuchen Sie, MT4 Speicher freizugeben, indem Sie alles entladen, außer dass die EA optimiert wird (beachten Sie, dass MT4 nach dem Entladen neu gestartet werden sollte, weil es viele Dinge intern anfängt Und sie in Gedächtnis gelassen), ermöglichen genetischen Algorithmus in der Tester, fügen Sie phisical Speicher zu Ihnen PC. F. Was ist das minimale benutzerdefinierte Fenster und benutzerdefinierte Schrittgrößen A. Es empfiehlt sich, die benutzerdefinierte Fenstergröße ab 1 Monat und höher, letztlich - zwei Wochen festzulegen. Der minimale benutzerdefinierte Schritt, sowie sein Inkrement (beide sind in Prozente in diesem Modus zugewiesen) sollten so ausgewählt werden, dass nach ihrer Übersetzung in die Zeitskala (berechnet als Bruchteil der Fenstergröße) youll mindestens einen ganzen Tag erhalten. Wenn die minimale Schrittgröße 10 ist, macht es keinen Sinn, Fenstergröße weniger als 10 Tage zu verwenden. Das gilt auch für ihre Schritten. Zum Beispiel kann man 10 Tage als das minimale Fenster und sein Inkrement wählen. Dann sollten Sie 10 als den minimalen Schritt und sein Inkrement verwenden, um Brüche von Tagen zu vermeiden. Wenn Sie die Schritte 5 und 5 inkrementieren müssen, dann sollte die minimale Fenstergröße und ihr Inkrement 20 Tage sein. Q. Ich glaube, ich habe einen Fehler gefunden. Was soll ich tun A. Zeig mir deine Einstellungen für den Tester und für EA. Beschreiben Sie, was Sie erreichen wollen und was Sie bekommen. Schicken Sie mir generierte Dateien, falls vorhanden. Wenn es eine Bibliothek Problem, senden Sie mir die Tester Protokolle mit Fehlern. Wenn es ein Reporter Problem, senden Sie mir Protokolle aus der Registerkarte Experten. Auf der FAQ - Fragen 4, um Drawdown 50 auszuschließen, würdest du Ausdruck min (max (50 - DDREL, 0), 1) als Multiplikator der Hauptleistungsschätzerformel verwenden. Frage bitte, wie man Profitfaktor weniger als 1,2 ausschließen Ich habe versucht, die Formel zu modifizieren, um Gewinnfaktor lt 1.2 auszuschließen, aber entschuldigt noch kein Glück noch. Versuchen Sie dies zum Beispiel: min (max (PF - 1.2, 0), 1).

No comments:

Post a Comment