In dem ersten Artikel über erfolgreiches Backtesting haben wir statistische und verhaltensbezogene Verzerrungen diskutiert, die unsere Backtestleistung beeinflussen. Wir haben auch Softwarepakete für das Backtesting diskutiert, darunter Excel, MATLAB, Python, R und C++. In diesem Artikel werden wir prüfen, wie Transaktionskosten berücksichtigt werden, sowie bestimmte Entscheidungen, die bei der Erstellung einer Backtest-Engine getroffen werden müssen, wie z. B. Bestelltypen und Datenfrequenz.
Einer der häufigsten Anfängerfehler bei der Implementierung von Handelsmodellen besteht darin, die Auswirkungen von Transaktionskosten auf eine Strategie zu vernachlässigen (oder grob zu unterschätzen). Obwohl oft davon ausgegangen wird, dass die Transaktionskosten nur Brokerprovisionen widerspiegeln, gibt es in der Tat viele andere Möglichkeiten, wie Kosten auf einem Handelsmodell angesammelt werden können.
Die direkteste Form der Transaktionskosten, die durch eine algorithmische Handelsstrategie entstehen, sind Provisionen und Gebühren. Alle Strategien erfordern irgendeine Form des Zugangs zu einer Börse, entweder direkt oder über einen Maklervermittler (
Broker bieten im Allgemeinen viele Dienstleistungen an, obwohl quantitative Algorithmen nur wirklich die Börseninfrastruktur nutzen. Daher sind die Brokerage-Provisionen pro Handel oft gering. Broker berechnen auch Gebühren, die Kosten für das Clearen und Abwickeln von Geschäften sind. Darüber hinaus sind Steuern von regionalen oder nationalen Regierungen auferlegt. Zum Beispiel gibt es in Großbritannien eine Stempelsteuer für Aktientransaktionen. Da Provisionen, Gebühren und Steuern im Allgemeinen fixiert sind, sind sie relativ einfach in einer Backtest-Engine zu implementieren (siehe unten).
Der Slippage ist der Preisunterschied zwischen dem Zeitpunkt, an dem ein Handelssystem sich für eine Transaktion entscheidet, und dem Zeitpunkt, an dem eine Transaktion tatsächlich an einer Börse durchgeführt wird. Der Slippage ist eine erhebliche Komponente der Transaktionskosten und kann den Unterschied zwischen einer sehr profitablen Strategie und einer, die schlecht abschneidet, ausmachen. Der Slippage ist eine Funktion der zugrunde liegenden Anlagenschwankungen, der Latenzzeit zwischen dem Handelssystem und der Börse und der Art der Strategie, die durchgeführt wird.
Ein Instrument mit höherer Volatilität ist eher in Bewegung, und so können sich die Preise zwischen Signal und Ausführung erheblich unterscheiden. Latenz wird als Zeitdifferenz zwischen Signalgenerierung und Ausführungsort definiert. Höhere Frequenzstrategien sind empfindlicher auf Latenzprobleme reagieren und Verbesserungen von Millisekunden auf diese Latenz können den Unterschied zur Rentabilität ausmachen. Die Art der Strategie ist auch wichtig. Momentumsysteme leiden im Durchschnitt mehr unter einem Schlupf, weil sie versuchen, Instrumente zu kaufen, die sich bereits in der Prognose-Richtung bewegen. Das Gegenteil gilt für Mittelumkehrstrategien, da sich diese Strategien in einer Richtung bewegen, die dem Handel entgegengesetzt ist.
Marktwirkung ist die Kosten, die Händlern aufgrund der Angebots- / Nachfrage-Dynamik der Börse (und des Vermögenswerts), durch die sie handeln wollen, entstehen. Eine große Bestellung für einen relativ illiquiden Vermögenswert dürfte den Markt erheblich bewegen, da der Handel auf eine große Komponente des aktuellen Angebots zugreifen muss. Um dem entgegenzuwirken, werden große Blockgeschäfte in kleinere
Mehr illiquide Vermögenswerte zeichnen sich durch einen größeren Spread aus, der die Differenz zwischen den aktuellen Angebotspreisen und den Angebotspreisen im Limit-Orderbuch darstellt. Dieser Spread ist eine zusätzliche Transaktionskosten, die mit jedem Handel verbunden sind. Der Spread ist eine sehr wichtige Komponente der gesamten Transaktionskosten - wie die unzähligen britischen Spread-Wettfirmen belegen, deren Werbekampagnen die
Um die oben genannten Kosten in einem Backtestsystem erfolgreich zu modellieren, wurden verschiedene Grade komplexer Transaktionsmodelle eingeführt. Sie reichen von einer einfachen Flachmodellierung bis hin zu einer nichtlinearen quadratischen Annäherung. Hier werden wir die Vor- und Nachteile jedes Modells skizzieren:
Flat-Transaktionskosten sind die einfachste Form der Transaktionskostenmodellierung. Sie gehen davon aus, dass eine feste Kosten mit jedem Handel verbunden sind. Daher repräsentieren sie am besten das Konzept von Brokerage-Provisionen und Gebühren. Sie sind nicht sehr genau für die Modellierung komplexerem Verhalten wie Schlupf oder Marktwirkung. Tatsächlich berücksichtigen sie nicht die Volatilität oder Liquidität von Vermögenswerten. Ihr Hauptvorteil ist, dass sie rechnerisch einfach zu implementieren sind. Sie sind jedoch wahrscheinlich, die Transaktionskosten signifikant zu unterschätzen oder zu überschätzen, abhängig von der eingesetzten Strategie.
Weiter entwickelte Transaktionskostenmodelle beginnen mit linearen Modellen, setzen mit stückweise linearen Modellen fort und schließen mit quadratischen Modellen ab. Sie liegen auf einem Spektrum von am wenigsten bis am genauesten, wenn auch mit am wenigsten bis am größten Umsetzungsaufwand. Da Schlupf und Marktwirkung von Natur aus nichtlineare Phänomene sind, sind quadratische Funktionen die genauesten bei der Modellierung dieser Dynamik. Quadratische Transaktionskostenmodelle sind viel schwieriger zu implementieren und können viel länger dauern, als für einfachere flache oder lineare Modelle zu berechnen, aber sie werden oft in der Praxis verwendet.
Algorithmische Händler versuchen auch, tatsächliche historische Transaktionskosten für ihre Strategien als Eingaben zu ihren aktuellen Transaktionsmodellen zu nutzen, um sie genauer zu machen. Dies ist ein schwieriges Geschäft und grenzt oft an die komplizierten Bereiche der Modellierung von Volatilität, Rutsch und Marktwirkung. Wenn die Handelsstrategie jedoch große Mengen über kurze Zeiträume handelt, können genaue Schätzungen der entstandenen Transaktionskosten einen signifikanten Einfluss auf das Endergebnis der Strategie haben und es lohnt sich daher, in die Erforschung dieser Modelle zu investieren.
Während Transaktionskosten ein sehr wichtiger Aspekt erfolgreicher Backtesting-Implementierungen sind, gibt es viele andere Probleme, die die Strategieleistung beeinflussen können.
Eine Wahl, die ein algorithmischer Händler treffen muss, ist, wie und wann er die verschiedenen verfügbaren Börsenorders nutzen kann. Diese Wahl fällt normalerweise in den Bereich des Ausführungssystems, aber wir werden sie hier betrachten, da sie die Strategie-Backtestleistung stark beeinflussen kann. Es gibt zwei Arten von Aufträgen, die ausgeführt werden können: Marktorders und Limit-Orders.
Eine Marktaufgabe führt einen Handel unmittelbar aus, unabhängig von den verfügbaren Preisen. So werden große Trades, die als Marktordern ausgeführt werden, oft eine Mischung aus Preisen erhalten, da jede nachfolgende Limit-Order auf der gegenüberliegenden Seite ausgeführt wird.
Limit Orders bieten einen Mechanismus für die Strategie, um den schlechtesten Preis zu bestimmen, zu dem der Handel ausgeführt wird, mit dem Vorbehalt, dass der Handel möglicherweise nicht teilweise oder vollständig ausgeführt wird. Limit Orders werden als passive Aufträge betrachtet, da sie oft unerfüllt sind, aber wenn sie ein Preis sind, ist garantiert.
Bei Backtests ist es wichtig, die Auswirkungen der Verwendung von Markt- oder Limit-Orders korrekt zu modellieren.
Es gibt besondere Probleme im Zusammenhang mit Backtesting-Strategien, wenn tägliche Daten in Form von Open-High-Low-Close (OHLC) -Zahlen verwendet werden, insbesondere für Aktien.
Billige oder kostenlose Datensätze leiden zwar unter Überlebensverzerrungen (die wir bereits in Teil I diskutiert haben), sind aber auch häufig zusammengesetzte Preisfeeds von mehreren Börsen. Dies bedeutet, dass die Extrempunkte (d. h. die offenen, schließenden, hohen und niedrigen) der Daten aufgrund kleiner Aufträge an regionalen Börsen sehr anfällig für
Dies bedeutet, dass, wenn Ihre Handelsstrategie einen umfangreichen Einsatz von einem der OHLC-Punkte speziell, Backtest-Leistung kann sich von Live-Leistung unterscheiden, da Aufträge je nach Broker und Ihren verfügbaren Zugang zu Liquidität an verschiedene Börsen geleitet werden können.
In den nächsten Artikeln werden wir die Leistungsmessung des Backtests sowie ein reales Beispiel für einen Backtesting-Algorithmus mit vielen der oben genannten Effekte betrachten.