Völlig unterschiedliche Ergebnisse vom selben Experten

 

Ich bin sehr, sehr verwirrt mit den Ergebnissen, die ich von Metatrader's Backtester bekomme. Ich hoffe, dass jemand ähnliche Erfahrungen gemacht hat und vielleicht eine Idee hat, woran meine Probleme liegen könnten.

Ein von mir entwickelter Experte erzielte in Backtests und bei einer Vielzahl von Variationen in Optimierungs- und Walkforward-Optimierungsläufen hervorragende Ergebnisse. Dann plötzlich, ohne dass ich bewusst große Änderungen vorgenommen habe, wurden die Ergebnisse mittelmäßig/marginal. Und heute sind die Ergebnisse plötzlich wieder hervorragend.

Ich habe jetzt Backtesting-Berichte mit genau demselben Experten, denselben Daten, derselben Einstellungsdatei und völlig unterschiedlichen Ergebnissen. Ich habe mein Bestes getan, um sicherzustellen, dass die Daten identisch sind (ich habe sie aus den gestern heruntergeladenen Verlaufsdaten rekonstruiert und trotzdem heute ganz andere Ergebnisse erhalten als damals).

Das einzige, was ich gefunden habe, was anders sein könnte, ist die Streuung. Soweit ich es erkennen kann, geht MT4 davon aus, dass der Spread während eines gesamten Backtesting-Laufs derselbe war wie der aktuelle. Eine recht merkwürdige "Eigenschaft" des Systems, aber nicht die Erklärung für meine Beobachtungen, denn mit engen Spreads waren die Ergebnisse heute mittelmäßig, während die Ergebnisse mit etwas breiteren Spreads gestern unglaublich gut waren.

Nach diesen Erfahrungen bin ich mir nicht mehr sicher, ob ich mich auf die Informationen, die ich von der Software erhalte, verlassen kann, und brauche dringend eine Erklärung, mit der ich in Zukunft vermeiden kann, in die Irre geführt zu werden (auf die eine oder andere Weise).

Hier sind Diagramme der mittelmäßigen Ergebnisse und der unglaublich guten Ergebnisse für Backtests mit demselben Experten, demselben Zeitraum (2011/1/1 bis 2011/7/26) und denselben Einstellungen. Die Trades sind typischerweise für Stunden oder länger offen und verwenden keine Take Profits oder Stop Losses (alle Ein- und Ausstiege basieren nur auf dem Status der Indikatoren). Die Anzahl der Trades in den beiden Läufen beträgt 211 und 173. Im zweiten Diagramm sind Verluste zu verzeichnen, aber der Gewinnfaktor ist sehr hoch.


 
Elroch:


Ich habe jetzt Backtesting-Berichte mit genau demselben Experten, denselben Daten, derselben Einstellungsdatei und völlig unterschiedlichen Ergebnissen. Ich habe mein Bestes getan, um sicherzustellen, dass die Daten die gleichen sind (Rekonstruktion aus heruntergeladenen Verlaufsdaten gestern, ich habe immer noch sehr unterschiedliche Ergebnisse heute zu damals).


Laden Sie Ihre Daten erneut herunter, trennen Sie Ihr Terminal (ich tue dies, indem ich mich mit einer ungültigen Kontonummer anmelde), löschen Sie Ihre Historie und die bereits im Terminal gespeicherten Daten, importieren Sie Ihre Daten, M1 nehme ich an? machen Sie die anderen Perioden, die Sie benötigen, mit dem Periodenkonverter und importieren Sie sie ... überprüfen Sie, dass Sie die Daten haben, die Sie für den Datumszeitraum benötigen, den Sie ausführen möchten ... führen Sie Ihren EA aus.
 
Danke, aber ich habe mehr als einmal die Daten aus 10 Jahren heruntergeladener 1-Minuten-Daten auf die von Ihnen vorgeschlagene Weise erstellt, die Software viele Male neu gestartet, den genauen EA und die Einstellungen gespeichert und trotzdem bei einem späteren Durchlauf völlig andere Ergebnisse erhalten. Ich bin immer noch verwirrt.
 

Elroch:

Ein von mir entwickelter Experte erzielte in Backtests und über eine breite Palette von Variationen in Optimierungs- und Walkforward-Optimierungsläufen hervorragende Ergebnisse.

Dann plötzlich, ohne dass ich bewusst große Änderungen vorgenommen habe, wurden die Ergebnisse mittelmäßig/marginal.

Heute wurden die Ergebnisse dann plötzlich wieder hervorragend.

Der Tester verwendet den AKTUELLEN Spread. Ihr EA reagiert sehr empfindlich auf die Änderungen.
 
WHRoeder:
Der Tester verwendet den AKTUELLEN Spread. Ihr EA reagiert sehr empfindlich auf die Änderungen.

Wie ich bereits erwähnt habe, habe ich das bemerkt, aber da ich heute mit einem Spread von 1,2 Pips nur mittelmäßige Ergebnisse erzielt habe, ist das nicht die Erklärung.
 

Wenn Ihre Ein- und Ausstiege wirklich nur auf Indikatorwerten basieren, Sie mit moderaten Losgrößen handeln und einen guten Durchschnitt in Pips/Trade verdienen, bleiben nicht viele Optionen übrig:

a) Verlaufsdatei kaputt machen

b) etwas wie Zufälligkeit enthalten

c) abhängig von einer globalen Variable (die zwischen den beiden Tests geändert wurde)

d) einige Broker-Einstellungen könnten sich geändert haben (unwahrscheinlich)

Warum führen Sie den Test nicht im Modus "Jeder Tick" durch? Das wird Ihnen die Qualität der Daten zeigen.

 

Sind die psudo Ticks Strategie Tester erstellt identisch für jeden Testlauf und tun Indikatoren, die von der EA verwendet werden, erstellen Sie Werte für jeden Tick der letzten Bar, wie sie beim Live-Handel würde?

 

Vielen Dank für Ihre interessanten Hinweise, zzueg.

(a) Es scheint undurchführbar, dass eine beschädigte Verlaufsdatei die Abfolge der Backtesting-Ergebnisse mit demselben EA erklären könnte: d.h. mittelmäßige Ergebnisse, hervorragende Ergebnisse, mittelmäßige Ergebnisse und ähnliche hervorragende Ergebnisse über einen Zeitraum seit Freitag letzter Woche, in dem ich neue Installationen von Metatrader durchgeführt habe, alle Daten aus heruntergeladenen, angeblich hochwertigen 1-Minuten-Daten rekonstruiert habe usw.

(b) Das Problem mit jeder Erklärung aufgrund von Zufallseffekten (einschließlich schlechter Daten) ist, dass es sehr schwierig ist, zu sehen, warum dies die Trades durchweg enorm besser machen sollte.

(c) Ein paar Tage lang dachte ich, es könnte sich um eine versehentliche Änderung in meinem Code handeln. Aber heute, als ich die unglaublich guten Ergebnisse erhielt, habe ich sofort eine Kopie des Experten (Quelle und ex4) und der Einstellungsdatei gespeichert. Aber genau derselbe Experte und dieselben Einstellungen lieferten bei einem späteren Durchlauf nur mittelmäßige Ergebnisse.

(d) Ja, ich bin mir nicht sicher, ob der Broker über den Spread hinaus noch viel zu sagen hat. Dies sind natürlich alles Backtests und kein Live-Handel, und die Daten wurden größtenteils aus heruntergeladenen 10 Jahren 1-Minuten-Daten erstellt.

(e) Da der Experte Positionen zum Eröffnungszeitpunkt des Balkens ein- und aussteigt und keine Stopps oder Gewinnziele verwendet (jedenfalls in der untersuchten Version), sind die einzigen Werte, die die Ergebnisse beeinflussen können, meines Erachtens die Eröffnungs-, Hoch-, Tiefst- und Schlusswerte von Balken der 5-Minuten- und höheren Charts (tatsächlich ist sogar der Schlusswert irrelevant: Es werden mehrere Varianten desselben Indikators verwendet, und diese verwenden zufällig (H+L)/2 als Datenpunkt, während der Ein- und Ausstieg zum Eröffnungszeitpunkt eines Balkens erfolgt, so dass die Eröffnungsdaten und die Spanne ebenfalls eine Rolle spielen. Ob ein Handel eröffnet oder geschlossen wird, hängt von den Werten der Indikatoren in früheren Leisten ab, nicht von der aktuellen Leiste.

...aber der Gründlichkeit halber habe ich einen Durchlauf mit "allen Ticks" gemacht. Die Ergebnisse waren praktisch identisch mit den vorherigen, mit einem winzigen Unterschied, der sich dadurch erklärt, dass der letzte Handel am letzten 1-Minuten-Balken und nicht am letzten 5-Minuten-Balken geschlossen wurde.


SDC, ich bin mir nicht sicher, ob jedes erzeugte Häkchen dasselbe ist, aber denken Sie an die Punkte, die ich in meiner Antwort an zzueg unter (e) oben genannt habe.
 

Ich habe nicht gemeint, dass sich die Ergebnisse in jedem Tick-Modus ändern, sondern ich interessiere mich für die Anzahl der gemeldeten Fehler im Chart.

Lücken in der Geschichte sind sehr unwahrscheinlich, da sie einen solchen Unterschied mit einer Strategie, die auf Indikatoren basiert, nicht erklären würde.

Ich hatte ähnliche Probleme nur mit korrupten Daten, da mein Terminal immer offline ist, habe ich so etwas nie mehr erlebt.

Mit globalen Variablen meinte ich: hast du so etwas wie GlobalVariableGet() in deinem Code, diese Variablen sind nicht auf die Testumgebung beschränkt.

Zum Schluss noch eine Frage an alle: irgendwelche Fehler im Log?

@SDC, ja, Pseudo-Ticks werden für jeden Lauf identisch generiert. Meiner Erfahrung nach weit über 90% Genauigkeit, aber trotzdem immer gleich.

 

Nochmals vielen Dank für Ihre Beobachtungen. Ich bin jetzt in der interessanten Situation, dass zwei Metatrader-Installationen zwei extrem unterschiedliche Ergebnisse liefern (selbst wenn ich den EA und die Einstellungen direkt von einer auf die andere kopiere und den Strategietester auf beiden laufen lasse). Dies würde auf die Daten hindeuten, aber es ist immer noch sehr schwer zu sehen, wie es könnte es aufgrund der Gründe diskutiert zu erklären. Ich frage mich, was der beste Weg ist, um zu sehen, welche Unterschiede es geben könnte.

Ich habe soeben die Protokolle der beiden Läufe auf den separaten Metatrader-Installationen überprüft, und in keinem der beiden Fälle sind Fehler aufgetreten.

Es gibt nichts wie GlobalVariableGet() in meinem Code. Der EA verwendet 5 Kopien eines einzigen benutzerdefinierten Indikators auf 4 verschiedenen Zeitrahmen mit einem, der einen anderen Parameter als die anderen hat.

 

Ich habe einen möglicherweise entscheidenden Hinweis gefunden, aber ich verstehe seine Bedeutung nicht wirklich.

Bei der Installation, die nur mittelmäßige Ergebnisse lieferte, habe ich mich von der Verbindung zum Echtgeld-Broker abgemeldet und mich wieder beim Übungs-Broker desselben Brokers angemeldet. Nachdem ich dies getan hatte (und nichts anderes), lieferte der Strategietester ähnlich spektakuläre Ergebnisse wie die andere Kopie von Metatrader (die auf demselben Übungs-Broker läuft). Übrigens ist der Broker Oanda.

Ich bin mir nicht sicher, wie der Metatrader-Client mit den historischen Daten umgeht, wenn er zwischen verschiedenen Broker-Kunden umschaltet, aber die Tatsache, dass alle alten Daten von denselben heruntergeladenen 1-Minuten-Daten stammen und nicht vom Broker, macht es für mich sehr schwierig, einen Sinn darin zu sehen, was hier passiert (die Trades zu Beginn des Jahres sind im Backtest-Lauf mit einer Verbindung zum Übungs-Broker viel besser als bei einer Verbindung zum echten Broker).

Grund der Beschwerde: