Überoptimierung von Trading Systemen – so vermeidest du sie

Was die Überoptimierung von Trading Systemen mit Jump & Run Spielen wie Super Mario zu tun hat, wie man Überoptimierung erkennt und noch wichtiger – wie man eine mögliche Überoptimierung reduziert oder gar vermeidet, darüber sprechen wir in diesem Blog Beitrag, der sich an weit fortgeschrittene Trader richtet, die mit dem Backtesting von Trading Strategien vertraut sind.

Ich denke, hier kommt der wichtigste Artikel, der jemals in diesem Blog geschrieben wurde. Viel Spaß!

Bekannte Daten & Informationen

Ich erinnere mich noch gut, als in den 80er Jahren die Video Spiele aufkamen. Anfangs waren diese Spiele sehr einfach doch später stieg die Komplexität. Und irgendwann hatten alle einschließlich mir ein Ninetendo und wir zockten Super Mario, ein Jump & Run der ersten Stunde.

Damals, mit den ersten Konsolen, konnte man noch keine Spielstände abspeichern (!) und musste immer wieder von vorne Anfangen, wenn man alle seine virtuellen Leben verlor.

Das bedeutete aber auch, dass man die ersten Level, die man ja schon hunderte Male versucht hatte, immer wieder durchspielen musste. Was zur Folge hatte, dass man alle Hindernisse, alle Gefahren und alle Boni schon genau kannte und mit den ersten Levels keine Probleme mehr hatte.

Die Datenlage (das Spiel Level) war genau bekannt. So hatte ich keine Probleme, richtig zu reagieren. Auf unbekanntem Terrain, auf neuen Levels, da sah die Sache wieder anders aus. 

Dort waren neue Hindernisse, wo ich sie nicht erwartete und das war manchmal ganz schön frustrierend. Ich starb tausende virtuelle Tode…bis ich die Daten (das Spiel) erneut kannte und schon wusste, was geschehen würde.

Fragen sie sich, was das mit dem Backtesting zu tun hat? Nun – einiges, wie wir gleich sehen werden. Lassen sie uns das Problem genauer benennen.

Backtesting auf bekannten Daten

Möchte ich die Daten, beim Backtesting die historischen Kurse, in unserem Fall von Aktien, analysieren, ein bisher wunderbarer Schachtelsatz, steht mir dazu die ganze Vergangenheit zur Verfügung. Schränken wir es ein auf alle verfügbaren historischen Aktienkurse und diese Datenbestände reichen vermutlich mehr als 100 Jahre zurück.

Es geht nun nicht darum, wie sinnvoll es ist, möglichst weit in die Vergangenheit backzutesten. Es geht darum, ob ich alle Daten für den Backtest nutze oder ob ich mir Daten aufhebe.

Denn es ist – wie bei Super Mario – nicht weiter schwierig oder anders gesagt bloß eine Frage der Geduld und des Eifers, gute Regeln (Indikatoren) zu finden, die auf dieser Historie funktionieren. Denn diese Kurse kenne ich ja. So muss ich bloß Regeln und Filter finden, die darauf gute Ergebnisse bringen.

Die Frage, die ich mir als Entwickler vor allem stellen muss ist vielmehr, ob meine Regeln auch in Zukunft funktionieren werden, denn darum geht‘s ja letztlich.

Teste ich von heute weg zum Beispiel 20 Jahre in die Vergangenheit, ist der Rückschau-Zeitraum durchaus sinnvoll. Doch ob das fertige Trading System dann ab morgen funktioniert, ist schwer zu sagen.

Vermutlich wird es überoptimiert sein, aber das ist (leider) nicht sicher. Ob das System überoptimiert ist, das weiß ich nicht morgen und nicht in einem halben Jahr. Ich merke es mit Sicherheit erst nach einigen Jahren. Nämlich dann, wenn das Trading im echten Leben nicht mit den Ergebnissen des Backtests mithalten kann.

Wie kann ich nun Systeme entwickeln, die möglichst nahe an der Realität sind? Wir werden diese Frage gleich beantworten. Vorher sehen wir uns noch an, aus welchen beiden Gründen Überoptimierung entstehen kann.

Absichtliche Überoptimierung

In diesem Fall ist sich der Trader bewusst, dass er überoptimiert, also curve Fitting betreibt, wie es im englischen gerne heißt. Warum er das absichtlich macht kann viele Gründe haben. 

Meist sind es unlautere Absichten, um andere, die diese Problematik der Überoptimierung nicht kennen, in die Irre zu führen und extrem gute (zu gute) Renditen im Backtest auszuweisen.

Unabsichtliche Überoptimierung

Das ist ein heikler Punkt und der Grund, warum ich diesen Artikel schreibe. Die meisten Trader sind sich der generellen Problematik der Überoptimierung bewusst. 

Vor allem unsere Klienten werden immer wieder gebetsmühlenartig auf dieses Problem hingewiesen, weil die Überoptimierung eben das größte Problem bei Backtesting ist.

Trotz des Wissens, dass man nicht überoptimieren darf, passiert es in der Praxis häufig trotzdem. Vor allem geschieht es aus zu viel Ehrgeiz. Aus der Bemühung, das beste Trading System zu entwickeln.

Aus dem Versuch, jeden Prozentpunkt Performance im Backtest herauszuholen. Weil der Trader einfach Spaß daran hat, seine Systeme „hochzuzüchten“ und in Eifer nicht bedenkt, dass er gnadenlos überoptimiert.

Kommen wir daher zu der Frage zurück, wie man das Problem löst.

Unbekannte Daten

Der Profi testet nun nicht 20 Jahre in die Vergangenheit, um beim Beispiel weiter oben anzuknüpfen. Er teilt seinen Testzeitraum beispielsweise durch 2.

Auf einem der beiden Teile (nennen wir ihn Teil 1) entwickelt er seine Regeln und prüft sie, verbessert sie, optimiert sie. Auf dem anderen Teil (Teil 2), das ist jener Zeitbereich, den man sich – in der Theorie – niemals beim Entwickeln ansieht, werden die Ergebnisse, die sich mit Teil 1 ergeben dann überprüft.

Diesen Test macht man dann, wenn man mit Teil 1 so weit fertig ist, dass man sein System als gut befindet. Dabei gibt es jedoch einen wichtigen Grundsatz und ein Problem.

Man optimiert auch dann, wenn man nicht optimiert

Professionelle Systementwickler verstehen unter eine Optimierung (Weiterentwicklung oder Verbesserung) des Trading Systems die Nutzung der sogenannten Optimizer. Optimizer, es gibt mehrere Arten von Optimierungen, erledigen den Backtesting Prozess quasi von alleine.

Wenn ich wissen will, in welchem Wertebereich der RSI Indikator die besten Ergebnisse liefert, kann ich alle Werte einzeln von Hand testen. Das dauert aber Stunden. Ich kann aber auch – um schneller zu sein – dem Optimizer sagen, er soll den RSI vom Schwellwert 1-50 testen. Automatisch. Und die Ergebnisse bekomme ich in wenigen Minuten auf dem Silbertablett.

Überoptimierung ist jedoch nicht (nur) mit der zu exzessiven Nutzung der automatischen Optimizer Tools einer Backtesting Software verbunden. Vielmehr ist jeder Blick in den Testzeitraum 2 (wir hatten ihn oben so genannt), der mich veranlasst, in Testzeitraum 1 eine Änderung vorzunehmen, ein kleiner Schritt in Richtung Überoptimierung. Einer Überoptimierung, die man weder merkt noch die man absichtlich begangen hat.

Ein praktisches Beispiel: ich entwickle brav in Zeitraum 1 (sagen wir es sind 15 der zur Verfügung stehenden 20 Jahre Kurshistorie) meine Trading Strategie. Dann bin ich irgendwann fertig und mit den Ergebnissen zufrieden. Ich schaue nun, wie diese Regeln auf Zeitraum 2 (den letzten 5 Jahren funktioniert haben).

Und dann falle ich vom Stuhl, weil das System überhaupt nicht mehr gut funktioniert. So gut es auf bekannten Daten war, so schlecht ist es auf den (bisher) unbekannten Daten.

Anmerkung: die Trennung der 20 Jahre und die Teilung auf 15 und 5 Jahre sind nur eine Möglichkeit von vielen.

Was tue ich jetzt vermutlich?

Ich gehe zurück in meine bekannten Daten (Testzeitraum 1) und ändere meine Regeln. So lange, bis ich erneut zufrieden bin und wieder in Zeitraum 2 hineinschaue. Und dieses Loop, diese Feedbackschleife geht so lange, bis man sowohl in Zeitraum 1 und auch im Zeitraum 2 gute Ergebnisse hat.

Und genau das ist Überoptimierung. Egal ob man böse Absichten hatte oder es einfach nicht besser wusste. Egal ob man den Optimizer nutzt oder einfach nur hinschaut und eine Entscheidung trifft.

Zwei Anmerkungen zur Optimierung/Überoptimierung

Und beide Anmerkungen machen dieses Grundsatzproblem nicht einfacher…

Ein überoptimiertes Trading System kann trotzdem Gewinne machen und funktionieren. Aber es wird deutlich weniger Gewinn machen als der (überoptimierte) Backtest es verspricht.

Es gibt umgekehrt keine Garantie, dass ein nicht-überoptimiertes System Gewinne macht.

Problem Backtesting Software

Unsere bevorzugte Backtesting Software Wealth Lab kennt dieses Konzept mit den beiden Testzeiträumen (bekannte Daten und unbekannte Daten) grundsätzlich nicht. Es hat nur einen einzigen Gesamt-Zeitraum, den ich frei wählen kann.

Diese Splittung in 1 und 2 muss ich selber machen. Und zwar, in dem ich zuerst auf 1 arbeite und dann auf 2 prüfe. Was letztlich immer, ich wiederhole mich, eine kleine Überoptimierung ist.

Lösen lässt sich das Problem nur dann, wenn ich den Backtesting Ansatz ändere. Wenn ich die Zeiträume 1 und 2 verschmeltz, ohne auf den Daten von 2 direkt zu arbeiten. Und dann einen dritten Zeitraum schaffe, der die Ergebnisse von 1 und 2 vereint.

Nenne wir die Zeiträume 1 und 2 künftig besser „in sample“ und „out of sample Zeitraum, denn das sind die Fachbegriffe dafür.

In sample vs. Out so sample

In sample ist mein Entwicklungszeitraum – out of sample ist mein Kontrollzeitraum. Diese beiden Fachbegriffe sind üblich beim Backtesting und sie sollten sie sich einprägen.

Zeitraum 3 ist etwas, das man auch in fortgeschrittenen Trading Artikeln und Büchern kaum findet. Nennen wir diesen Zeitraum künftig „outermost range“.

Die outermost range (tm Thomas Vittner)

Diesen Zeitraum der outermost range sehe ich mir niemals an. Ich arbeite auf 1, die Software (siehe nächster Punkt) prüft gleichzeitig auf 2 und wenn 2 ähnlich gute Werte wie 1 liefert, nutze ich am Ende des gesamten Entwicklungsprozesses Zeitraum 3, diese outermost range.

Aber da muss ich mir 100% sicher sein, dass das System nicht überoptimiert wurde, was mit den weiter unten angeführten Lösungsansätzen und Zusatzprogrammen möglich wird.

Die outermost range ermöglicht es mir also, einen von mir gewählten Zeitraum als Echtgeld Trading Ersatz zu definieren. Ich spule die Zeit also – fiktiv – schnell voran und prüfe so, wie gut sich mein System im Echtgeldhandel entwickelt hätte. Und zwar ohne echtes Geld zu riskieren und darüber hinaus in wenigen Sekunden.

Wie das alles praktisch funktioniert, darüber sprechen wir im Quant Master 1.

Lösungsansätze technisch

Die Lösung, das wurde vorhin schon gesagt, liegt einerseits in einem etwas geänderten Entwicklungsprozess, andererseits im Kauf von weiteren Wealth Lab Zusatzmodulen (Extensions), die genau auf die Vermeidung der Überoptimierung abzielen. Mit diesen Tools kann man Überoptimierung erkennen und gegensteuern.

Anmerkung: dieser geänderte Ansatz der Systementwicklung ist keineswegs der einzig richtige Weg oder verpflichtend. Der herkömmliche Ansatz mit Teil 1 und 2 ist trotzdem ausgezeichnet. Es ist schon ein großer Erfolg, wenn man sich der generellen Problematik der Überoptimierung bewusst ist und mit in sample und out of sample arbeitet. Das ist schon mehr als 95% aller Trader machen. Will man in die absolute Elite sollte man sich jedoch diesen erweiterten Konzepten zuwenden.

Aber freuen sie sich nicht zu früh. Es gibt nicht die eine Metrik, die rot aufleuchtet, wenn das System überoptimiert ist. Um das Problem Überoptmierung zu erkennen muss man die Augen zusammenkneifen (wirklich – was es damit auf sich hat dann im Quant Master), Scatterplots, Punktwolken und komplexe Grafiken lesen lernen und schrittweise und strukturiert vorgehen.

Dass das ein Einsteiger nicht kann und auch niemand von ihm verlangt, das ist klar. Aber jeder, der schon backtetestete Systeme entwickelt hat, sollte dieses Problem ernst nehmen und diese Quant Master Methoden lernen.

Unser Ausbildungslevel 6 der Wissenseiter, Quant Master 1, widmet sich diesem Problem und zeigt, mit welchen Tools man in der Hochfinanz arbeitet, um Überoptimierung zu erkennen und zu reduzieren oder zur Gänze zu vermeiden.

Es ist unser einziges Ausbildungsmodul, das nicht zum Ziel hat, unsere Performance weiter nach oben zu bringen. Im Gegenteil. Mit den gezeigten Methoden wird ihr Performance mit Sicherheit schlechter. Aber nur im Backtest. Im echten Leben, im Live Trading bekommen sie so stabilere, verlässlichere und realistischere Backtests, was das Traden auch aus mentaler Sicht enorm vereinfacht.

Diese Quant Master 1 Veranstaltung (Level 6), die sich nur an Trading Experten richtet, die zumindest Level 2 unserer Ausbildung absolviert haben, findet in periodischen Abständen statt. Ob gerade Termine verfügbar sind, sehen sie hier:

Zum Quant Master 1

Abschließend zeigen wir Ihnen anhand eines Videos, wie ein überoptmiertes Trading System aussieht und wie man diese Überoptimierung mit den bereits erwähnten Extensions erfassen kann.

Wir wünschen gutes Trading und nicht-überoptimierte Trading Systeme!

Video zur Überoptimierung

ENDLICH ERFOLGREICH TRADEN
+ BONUS 1: Trader Coaching
+ BONUS 2: gratis Software

Gratis Trader Kurs

In diesem kostenfreien Online Basis Trading Kurs zeigen wir Ihnen die Grundlagen des erfolgreichen Börsenhandels.
GRATIS ONLINE KURS 'TRADING FÜR EINSTEIGER'