Optimierung und Out-of-Sample-Tests.

 

Guten Tag zusammen.

Nach der Optimierung eines EA müssen wir oft mehr als ein Dutzend der vom Optimierer vorgeschlagenen Parameter in einer Nerd-Out-of-Sample-Analyse überprüfen.

Ich habe eine Idee zur Optimierung von Expert Advisors außerhalb des Beispiels. Nehmen wir an, wir haben den Expert Advisor mit der Optimierung durch eine Reihe von Parametern "beauftragt". Zum Beispiel, ab dem 1. Januar. 2006 bis 1. Januar 2007.

Wir haben mehrere tausend Expert Advisors erhalten. Danach speichern wir die Seite mit denOPTIMIERUNGSERGEBNISSEN als separate Datei. Als Nächstes legen wir den folgenden Zeitraum für die Optimierung fest, d. h. wir fügen einen oder zwei Monate hinzu, oder so viele, wie wir brauchen.

In unserem Fall haben wir z.B. vom 1.1. 2007 bis zum 1. Juni 2007, und wieder ermöglichen wir eine Optimierung. Der Optimierer sollte die Parameter nicht in EXPERT'S PROPERTIES übernehmen, sondern sie nacheinander aus der Datei auswählen, die wir nach der ersten Optimierung gespeichert haben. Nach dieser zweiten Optimierung bleiben nur noch die vAriens übrig, die außerhalb der Stichprobe Gewinne erzielt haben!

Das Ergebnis ist im Idealfall, dass wir die "idealen Parameter" erhalten, mit denen wir später arbeiten und online testen können!

Ich denke, dass dies eine nützliche Ergänzung für den mt4-Tester sein wird. Wahrscheinlich, und höchstwahrscheinlich, wird es bereits von jemandem irgendwo umgesetzt. Wenn es jemand weiß, bitte den Link mitteilen!

Aufgrund meiner bescheidenen Kenntnisse weiß ich nicht, wie ich die Idee in die Praxis umsetzen soll.

 
leonid553, Sie gehen in die richtige Richtung, denn die bestehende "Optimierung" ohne Prüfung von Out-of-Sample-Daten ist eine reine Kurvenanpassung. Der Grundalgorithmus sollte jedoch komplexer sein, wie bei Programmen für neuronale Netze. Alle "Optimierungen" sollten auf alle Datensätze gleichzeitig angewendet werden (dies ist der Wunsch der Entwickler). Sie können natürlich auch mit nur zwei Datensätzen arbeiten, aber es ist besser, drei vorzusehen - Training (A), Validierung (B) und Test (C). Nun, unter den gegebenen Bedingungen werden Sie mehr oder weniger so arbeiten müssen, wie Sie es vorschlagen.
 
Es besteht die Möglichkeit, dem Experten eine Datei mit Parametern zu übergeben, die er dann bei der Optimierung verwendet. Oder es geht auch einfacher: Optimieren Sie in einem Zeitintervall, dann in einem anderen, speichern Sie alles in Excel und vergleichen Sie :-)
 
dimontus:
Oder es könnte einfacher sein, in einem Zeitintervall zu optimieren, dann in einem anderen, alles in Excel zu speichern und zu vergleichen :-)
Nein, Dimontus, so funktioniert das nicht. Zwei unterschiedliche Kurvenanpassungen an unterschiedliche Daten bringen nichts.
 
Wenn sie also gleich sind, d.h. dieselben Parameter in unterschiedlichen Zeitintervallen zu ähnlichen Ergebnissen führen, ist das dann nicht das, was der Autor des Threads will?
 
Wozu eine Kurvenanpassung auf der zweiten Ebene, wenn man die vielversprechenden Optimierungssätze auf der ersten Ebene einfach durch die zweite Ebene hindurchsieben kann?
 
Wie meinen Sie das?
 
Ich habe die folgende Variante ausprobiert:
Ich teste den Expert Advisor über den gesamten verfügbaren Zeitraum, wähle das Segment mit der schlechtesten erwarteten Auszahlung (Einbruch im Diagramm) und optimiere es, dieses schlechteste Intervall
Ich siebe (so viel wie möglich) lokale Extrema von Hand aus
Die Routinearbeit besteht dann darin, die Optimierungsdaten des schlechtesten Intervalls in den Optimierer einzufügen und den Expert Advisor mit diesen Daten über das gesamte verfügbare Intervall laufen zu lassen
von dem, was ich bekomme, wähle ich das Fleisch aus...:-)
 

In Anbetracht der obigen Ausführungen sehe ich folgende Möglichkeit:

Um einen einfachen zusätzlichen Expert Advisor zu erstellen, - und laden Sie alle erhaltenen Parametersätze nach der ersten Optimierung in ihn.

Jedes Set hat einen eigenen Index. Und dann fügen wir einfach diesen zusätzlichen EA anstelle des ersten in den Tester ein und optimieren ihn über die Probe hinaus, und der Optimierungsparameter wird die LOKALE ANZAHL der eingefügten Sets sein!

Das ist zwar etwas kompliziert, aber viel besser als eine manuelle Out-of-Sample-Optimierung ...

Das einzige, was wir brauchen, ist die Vielseitigkeit dieses Zusatzes.

 
Das macht Sinn, leonid553. Wenn Sie es getan haben, stellen Sie es in Code Base oder hier ein, wenn Sie nichts dagegen haben. Ich bin mir sicher, dass viele Leute es bereits wollen... Ich denke schon lange darüber nach, aber ich kann es einfach nicht in die Hand nehmen. Nur bei Optimierungsparametern, die außerhalb der Stichprobe liegen, muss ich darüber nachdenken, weil ich irgendwie die Ergebnisse der Tests mit dem ersten Datensatz berücksichtigen muss.
 
leonid553:

In Anbetracht der obigen Ausführungen sehe ich folgende Möglichkeit:

Um einen einfachen zusätzlichen Expert Advisor zu erstellen, - und laden Sie alle erhaltenen Parametersätze nach der ersten Optimierung in ihn.

Jedes Set hat einen eigenen Index. Und dann fügen wir einfach diesen zusätzlichen EA anstelle des ersten in den Tester ein und optimieren ihn über die Probe hinaus, und der Optimierungsparameter wird die LOKALE ANZAHL der eingefügten Sets sein!

Das ist zwar etwas kompliziert, aber viel besser als eine manuelle Out-of-Sample-Optimierung ...

Das einzige, was wir brauchen, ist die Vielseitigkeit dieses Zusatzes.

Ich glaube nicht, dass es so einfach sein wird, denn für jeden optimierten Parameter werden in Verbindung mit anderen Parametern mehrere Extrema identifiziert, und es könnte möglich sein, eine Lösung zu finden, wenn diese Extrema dem Eingang des neuronalen Netzes zugeführt werden.
Grund der Beschwerde: