Optimierung und Out-of-Sample-Tests. - Seite 3

 
Integer: Alles wird sich zu Hause als nützlich erweisen. Es macht keinen Sinn, es mit MQ zu vergleichen, denn dieses Programm testet sich nicht selbst, es führt nur den Tester aus
Niemand lehnt den Prüfer ab. Der Tester ist gut, daran gibt es keinen Zweifel. Ich habe mich auf den Optimierer bezogen. Das sind die Optimierer, die wir vergleichen können. Nun gut, das Thema ist ewig, es wird nie enden. ...
 
leonid553:

Ich denke, es wäre eine nützliche Ergänzung für den mt4-Tester. Es ist möglich, und wahrscheinlich wird es irgendwo von jemand anderem umgesetzt.


Sie haben Recht - sie wurde bereits umgesetzt. Siehe zum Beispiel hier (MT4NetTester Projekt). Bitten Sie nur nicht darum, es zu geben, es ist maßgeschneidert.
 
Integer:
Mak:
Leute, bei mir funktioniert das jetzt schon eine ganze Weile.
Richtig unter TradeStation, und nicht kostenlos ... :))
Ich sehe keinen Sinn darin, dies unter MT zu tun, wir sind es nicht gewohnt, für Arbeit zu bezahlen.


Ich bin auch fast fertig))) Und es ist nicht nötig, etwas in den Expert Advisor einzubetten - das Programm wird als Datei mit einer Reihe von Parametern heruntergeladen

Leute! Und wer hindert Sie daran, einen Artikel in diesem Thread zu schreiben, seine Entwicklung mit einer Beschreibung zu veröffentlichen und ein Honorar zu erhalten?

Ich bin nicht auf der Suche nach einem Gratisgeschenk. Ich habe genug Fleiß. Nicht genug Spezialwissen. Was macht es für einen Unterschied, wer Sie bezahlen wird?

 
leonid553:

Guten Tag an alle.

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". Wir haben zum Beispiel ein Datum vom 1. Januar 2006 bis zum 1. Januar 2007 festgelegt. 2006 bis 1. Januar 2007.

Wir haben mehrere tausend Expert Advisors erhalten. Danach speichern wir die Seite mit den OPTIMIERUNGSERGEBNISSEN 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 vAreAs übrig, die außerhalb der Stichprobe Gewinne erwirtschaftet 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, ist es bereits von jemandem irgendwo implementiert. Wenn es jemand weiß, bitte den Link mitteilen!

Ich kann aufgrund meiner bescheidenen Kenntnisse nicht herausfinden, wie ich die Idee in die Praxis umsetzen kann.

Dies wird als Walk-Forward-Optimierung (WFO) oder Walk-Forward-Analyse (WFA) bezeichnet.
Es ist ein altes und beliebtes Thema im Westen.
 
Mathemat:
OK, der Grundgedanke ist klar. Nun, dann die letzte Frage an alle, die dieses Projekt durchgeführt haben (d.h. Belford, Mak, Integer): Lohnt es sich? Natürlich ist es schön, einen "Optimierer" zu haben, der nicht nur eine Kurvenanpassung vornimmt (wie metaquote), sondern auch versucht, die Strategie anhand von Daten zu testen, die außerhalb der Stichprobe liegen, aber verdient er wirklich eine höhere Punktzahl als der MQ-Optimierer (der auch gut ist, aber nur als Kurvenanpassung)?
Im Großen und Ganzen lohnt es sich, aber wenn wir uns den WFO-Prozess selbst anschauen, sehen wir, dass es sich auch um eine Optimierung handelt, die nur komplexer ist.
Wir wählen die Besten der ersten Serie aus den Besten der zweiten Serie aus und so weiter. - auch dies ist eine Optimierung mit eigenem Fitting.

Mein Optimierer ist nur ein Märchen :)))

Erstens ist es genetisch und sehr effizient - es sucht sehr schnell.
Zweitens können Sie beliebige benutzerdefinierte Optimierungskriterien verwenden (dies ist eine große Leistung).
Drittens: Die neue Version ermöglicht die Optimierung nach mehreren Kriterien gleichzeitig.
 

Ich habe ein Beispiel für die Umsetzung meines Optimierungskriteriums im Thema"init() während der Optimierung" veröffentlicht. Und ich versuche, einen Artikel darüber zu schreiben. Die verwendete Methode erlaubt meiner Meinung nach eine Menge Dinge zu tun, von WFO bis hin zum eigenen genetischen Algorithmus.

 
Mathemat:
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 gleichzeitig auf allen Datensätzen erfolgen (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 scheint mir, dass das Testen (Trainieren, Validieren, Ausführen usw.) außerhalb der Stichprobe die Menge A="Gewinnbringende Parametersätze in der Stichprobe" auf die Menge B="Gewinnbringende Parametersätze in der Stichprobe sowie außerhalb der Stichprobe" reduziert . Die Optimierung über Stichproben und außerhalb der Stichprobe ergibt die Menge C="Parametersätze, die bei Stichproben und außerhalb der Stichprobe rentabel sind".

Ist die Menge B in der Menge C enthalten? Meiner Meinung nach offensichtlich ja, denn Satz B enthält "Parametersätze, die sowohl in der Stichprobe als auch außerhalb der Stichprobe rentabel sind", und daher sind sie "Parametersätze, die in der Stichprobe + außerhalb der Stichprobe rentabel sind".

Was ist also in C im Vergleich zu B überflüssig?

Natürlich gibt es unter den C-Sätzen auch Parametersätze, die in der Stichprobe (nur in der Stichprobe) unrentabel sind, sich aber außerhalb der Stichprobe rächen, d. h. wir verlieren Geld in der Stichprobe, aber außerhalb der Stichprobe zahlt es sich mehr als aus.

Außerdem gibt es in der Menge C Parameter, die in der Stichprobe profitabel sind (nur in der Stichprobe), aber außerhalb der Stichprobe unrentabel sind, d. h. wir verdienen Geld in der Stichprobe, verlieren aber Geld außerhalb der Stichprobe.

Bei einem Pass-Through erhalten wir also Menge C, die die Teilmenge D="Parametersätze, die weder in der Stichprobe noch außerhalb der Stichprobe rentabel sind, aber im Allgemeinen in der Stichprobe + außerhalb der Stichprobe rentabel sind" enthält und nicht in Menge B enthalten ist. Wenn dies für uns ein Problem darstellt, ist es viel einfacher zu lösen als Tests außerhalb der Stichprobe.

Aber vermeiden wir die Kurvenanpassung durch Out-of-Sample-Tests? Nein. Außerdem kann man argumentieren, dass die strengste Anpassung (die Rentabilität muss in den einzelnen Plots beachtet werden) bestehen bleibt und nur die Teilmenge D (vielleicht das gesuchte Kind?) verworfen wird, was man kaum als Anpassung bezeichnen kann. Durch die Aufteilung des Testzeitraums in Segmente vermeiden wir lediglich den Ausschluss von Parametern, die in einem der Segmente unrentable Ergebnisse liefern. Alles, was wir erreichen, ist Rentabilität in jedem Segment. Die logische Schlussfolgerung aus diesem Ansatz ist die Rentabilität jedes einzelnen Geschäfts. Wer allein garantiert uns, dass uns nicht der Teufel der absoluten Kurvenanpassung solch wunderbare Parameter präsentiert?

 

Ein EA ist nicht dasselbe wie ein EA! Es gibt EAs, für die die von mir beschriebenen Tests am optimistischsten sind.

Was haben wir hier zum Beispiel zu verlieren? Nichts!

 
Vita:
Durch die Unterteilung des Testzeitraums in Segmente vermeiden wir lediglich den Ausschluss von Parametern, die in einem der Segmente unrentable Ergebnisse liefern. Alles, was wir erreichen, ist Rentabilität in jedem Intervall. Die logische Schlussfolgerung aus diesem Ansatz ist die Rentabilität jedes einzelnen Geschäfts. Wer allein garantiert, dass uns solche wundersamen Parameter nicht vom Teufel der absoluten Kurvenanpassung präsentiert werden?

Ich würde es so formulieren: Wir markieren einige Nachbarschaften bestimmter Extrema durch die erste Optimierung und überprüfen ihre Stabilität durch die zweite (außerhalb der Stichprobe). Natürlich gibt niemand eine Garantie dafür, dass sie auch in Zukunft stabil bleiben werden. Das Fehlen von Leistungsgarantien ist jedoch ein charakteristisches Merkmal aller Prognosen.

Natürlich können wir die gleichen Informationen erhalten, wenn wir die Ergebnisse der Optimierung für die gesamte Stichprobe verarbeiten. Meines Erachtens wird dieser Prozess jedoch sehr viel zeitaufwändiger sein, sowohl was die Softwareimplementierung als auch was die Zählzeit betrifft.

 
lna01:
Lebenslauf:
Durch die Unterteilung des Testzeitraums in Segmente vermeiden wir lediglich den Ausschluss von Parametern, die in einem der Segmente unrentable Ergebnisse liefern. Alles, was wir erreichen, ist Rentabilität in jedem Intervall. Die logische Schlussfolgerung aus diesem Ansatz ist die Rentabilität jedes einzelnen Geschäfts. Wer allein garantiert, dass uns solche wundersamen Parameter nicht vom Teufel der absoluten Kurvenanpassung präsentiert werden?

Ich würde es so formulieren: Wir markieren einige Nachbarschaften bestimmter Extrema durch die erste Optimierung und überprüfen ihre Stabilität durch die zweite (außerhalb der Stichprobe). Natürlich kann niemand garantieren, dass sie auch in Zukunft stabil bleiben werden. Das Fehlen von Leistungsgarantien ist jedoch ein charakteristisches Merkmal aller Prognosen.

--> Was bringt das Splitting im Vergleich zum End-to-End-Lauf?

Natürlich können wir die gleichen Informationen erhalten, wenn wir die Optimierungsergebnisse für die gesamte Stichprobe verarbeiten. Ich habe jedoch den Eindruck, dass dies ein sehr viel zeitaufwändigerer Prozess wäre, sowohl was die Softwareimplementierung als auch was die Zählzeit betrifft.

--> Wenn Sie mit "Verarbeitung von Optimierungsergebnissen über die gesamte Stichprobe" das Verwerfen von Menge D meinen, dann bin ich anderer Meinung - das Verwerfen von Ergebnissen, die zu Zwischenverlusten führen (in der Stichprobe oder außerhalb der Stichprobe), ist eine elementare Aufgabe, die während der Optimierung selbst über die gesamte Stichprobe gelöst wird, d.h. es ist keine Verarbeitung nach der Optimierung erforderlich. Das Ergebnis ist sofort Menge B. Und keine zeitraubenden zusätzlichen Prüfungen außerhalb der Stichprobe.

Grund der Beschwerde: