Was ist ein Backtest und welche Informationen liefert er?
Systematische Handelsstrategien zielen darauf ab, wiederkehrende Muster aufzuspüren und diese gewinnbringend auszunutzen. Für eine disziplinierte Umsetzung dieses Vorhabens bedarf es eindeutiger Regeln für den Einstieg, Ausstieg und die Steuerung der Positionsgröße. Die Qualität und Robustheit der zuvor in einen Code überführten Handelsstrategie lässt sich auf Basis historischer Daten überprüfen. Diese Simulierung von Kauf- und Verkaufstransaktionen wird als Backtest bezeichnet. Der Backtest liefert Antworten u.a. auf die nachfolgenden Fragen und ermöglicht damit eine objektive Beurteilung der Handelsstrategie:
Welche Performance wurde mit der Strategie in der Vergangenheit erreicht?
Welche Drawdowns traten in der Vergangenheit auf und wie lange dauerten diese an?
Wie oft tritt das zu handelnde Muster gewöhnlich auf und wie häufig kann es profitabel gehandelt werden?
Wie verhält sich die Strategie in unterschiedlichen Marktphasen?
Welchen Anteil haben Ausreißer an der Gesamtperformance?
Welche Korrelation weist die Kapitalkurve im Vergleich zur Benchmark oder anderen Handelsstrategien auf?
Ausführliche Informationen zum Ertrag und Risiko der Handelsstrategie lassen sich anhand unterschiedlicher Kennzahlen im Performancebericht ablesen. Hierzu gehören z.B. der Profit Faktor, der maximale Drawdown, Sharpe und Sortino Ratio sowie die Schiefe und Wölbung der Verteilung.
Der Code muss auf den Prüfstand
Jede Handelsstrategie beruht auf einem Algorithmus, der in einer Programmiersprache verfasst und anschließend auf historische Daten angewandt wird. Hierbei muss die korrekte Syntax verwendet werden, um die Funktion innerhalb der verwendeten Software sicherzustellen. Um Fehler beim Backtest zu vermeiden, ist aber auch hier ein Blick auf die Details zwingend notwendig. So sollte z.B. geprüft werden, ob ein sog. Look-ahead Bias vorliegt. Eine weit verbreitete Fehlerquelle ist z.B. die Verwendung von Kursdaten oder Variablen für die Generierung von Handelssignalen, obwohl erstere zu diesem Zeitpunkt noch nicht zur Verfügung standen. Ein klassisches Beispiel ist z.B. die Verwendung des Schlusskurses (der logischerweise erst am Ende des Handelstages feststeht) zum Intraday-Einstieg. Insbesondere bei Handelsstrategien, die mehrere Time Frames oder nachträglich revidierte Datensätze nutzen, wird dieser Fehler häufiger übersehen.
Datenqualität ist das A und O
Neben dem Programmiercode ist die Qualität der zugrunde liegenden Daten eine der zentralen Voraussetzungen für die Erstellung eines präzisen Backtests.
Wird an dieser Stelle gespart, sind alle weiteren Schritte zwecklos, da verfälschte Handelssignale und dementsprechend unbrauchbare Performancedaten ausgewiesen werden. Dabei kommt es auf viele einzelne Details der Beschaffenheit der Daten an: Zuallererst müssen die Daten korrekt und vollständig sein und eine ausreichend lange Historie abdecken, die unterschiedliche Marktphasen enthält. Je nachdem welche Instrumente getestet und später gehandelt werden sollen, sind Adjustierungen zu beachten bzw. unterschiedliche Datensätze notwendig. Bei Aktien z.B. spielen Splits und Dividendenausschüttungen eine wichtige Rolle bei der Berechnung der Ein- und Ausstiegssignale und der sich daraus ergebenden Performance. Der Kurs einer Aktie, die in den letzten Jahrzehnten einen oder gar mehrere Splits durchlaufen hat, wird in der Regel nachträglich für die gesamte Historie adjustiert, sodass die tatsächlich gehandelten Kurse in der Vergangenheit verfälscht sind. Abhilfe schaffen hier deshalb Datensätze, die „as traded“-Kurse enthalten und damit eine saubere Datengrundlage für das Testen bieten.
Bei Terminkontrakten wiederum spielen Kurslücken nach einem Kontraktwechsel eine zentrale Rolle. Um korrekte Ergebnisse zu erhalten, müssen alle historischen Rollover Gaps entsprechend bereinigt werden. Hierzu haben sich mehrere Methoden etabliert (Link zur Studie). Die am häufigsten eingesetzte Rückwärtsadjustierung sorgt dafür, dass Kurssprünge, die zum Kontraktwechsel aufgrund einer Contango- oder Backwardation-Struktur bestehen, bereinigt werden.
Einen weiteren Stolperstein stellen Backtests dar, die mehrere Ein- und Ausstiege innerhalb eines Handelstages aufweisen, aber keine Intradaydaten verwenden. Da hochaufgelöste Daten (z.B. Tickdaten) i.d.R. nicht für lange Zeiträume zur Verfügung stehen, ist dies häufig der Fall. Da die Sequenz des Höchst- und Tiefstkurses „innerhalb“ der Tageskerze (intrabar) nicht bekannt ist, ist bei der gleichzeitigen Verwendung mehrerer Ein- und Ausstiege innerhalb der gleichen Bar Vorsicht geboten. Aufgrund der zu niedrig aufgelösten Datenreihe kann nicht mit Sicherheit bestimmt werden, ob z.B. zuerst der Stop ausgelöst oder aber das Kursziel erreicht wurde. Viele Softwaretools legen hier vereinfachte Annahmen bei der Berechnung zugrunde, die jedoch nichts mit dem tatsächlichen Marktgeschehen zu tun haben.
Pre-Inclusion und Survivorship Bias
Ein oftmals vernachlässigter Aspekt bei der Datenbeschaffung ist die korrekte historische Zusammensetzung von Aktienindizes.
Soll eine Handelsstrategie z.B. Werte des S&P 500 handeln, so muss für einen fairen Benchmark-Vergleich zwingend sichergestellt werden, dass alle Zu- und Abgänge beim Index auch beim Backtest exakt in der gleichen Form abgebildet werden. Ein Kardinalfehler ist der Test mit den aktuellen Mitgliedern des Index und damit die Annahme, dass diese Aktien während der Testperiode immer Teil der Benchmark waren. Betrachten wir folgendes Beispiel:
Die Google-Aktie wurde im Jahr 2006 in den Index aufgenommen. Der Kurs lag damals bei fast 400 USD.
Reicht der Backtest z.B. bis in das Jahr 2004 zurück, so wäre die Google-Aktie im Backtest bereits vor der eigentlichen Indexaufnahme Teil der Simulation und zwar zu Kursen von etwa 100 USD.
Dieser Pre-Inclusion Bias sorgt für eine deutliche Überzeichnung der Performance, sodass der Backtest seine Aussagekraft verliert.
Der Survivorship Bias beschreibt ein weiteres Phänomen, das mit der Zusammensetzung von Aktienindizes zu tun hat: Aktien, die zum aktuellen Zeitpunkt nicht mehr im zugrunde liegenden Index vertreten sind, fallen im Backtest unter den Rost, wenn die historische Zusammensetzung nicht im Backtest berücksichtigt wird. Jene Aktien haben in der Regel eine schwache Entwicklung (oder gar eine Insolvenz) hinter sich, bevor sie aus dem Index entfernt werden. Genau dieser Umstand sorgt daher ebenfalls für eine Überzeichnung der Backtest-Performance, weil schwache Werte zu keinem Zeitpunkt im Backtest berücksichtigt werden. Besonders anschaulich ist dieser Effekt beim US-Technologieindex Nasdaq zu beobachten, wo die Mehrzahl der Indexmitglieder aus dem Jahr 2000 heute nicht mehr Teil des Index ist. Beide Effekte sorgen bei der Verwendung ungeeigneter Daten für eine Überzeichnung der Backtest-Performance. Um diese Fehlerquelle zu eliminieren, bedarf es einer Datenhistorie, die alle historischen Indexveränderungen berücksichtigt und auch alle Datenreihen der Delisted Stocks enthält.
Berücksichtigung realistischer Kosten
Jede Transaktion kostet im realen Handel Geld und muss zwangsläufig in realistischer Höhe beim Backtest berücksichtigt werden. Neben den reinen Transaktionskosten, die sich aus Kommissionen und dem Bid-Ask-Spread zusammensetzen, gibt es allerdings noch weitere Kostenkomponenten, die je nach Handelsinstrument und Region große Unterschiede aufweisen können. Gerade bei Handelsstrategien, die einen hohen Turnover haben, können die Kosten einen signifikanten Teil der Performance auffressen. Die zum Einsatz kommenden Orderarten der jeweiligen Handelsstrategie spielen ebenfalls eine wichtige Rolle. Ein Beispiel: Breakouts, die mit Stop-Ordern getestet und gehandelt werden, dürften eine höhere Slippage aufweisen als Mean-Reversion-Ansätze, die Limit-Orders verwenden.
Abhilfe schafft hier die Berücksichtigung der vorherrschenden Liquidität und die Begrenzung der maximalen Positionsgrößen in Abhängigkeit des vorliegenden Markttiefe.