In einem Blog von mir hatte ich mal einen Artikel zu Fehltrades im NinjaTrader-Backtest geschrieben. Dieser ist immer noch aktuell und so interessant und wichtig, dass ich ihn auch hier gerne posten möchte.
Es wird aufgezeigt, das ein Plustrade im höheren Timeframe, hier 8 Minuten, in einer höheren Auflösung, hier 1 Minute, dennoch ein Verlusttrade ist. Leider erkennt NinjaTrader dies nicht und man muss deshalb bei der Programmierung und Auswertung sehr aufpassen. Verlässt man sich auf einen NinjaTrader-Backtest, ist es also nicht gesagt, dass die Ergebnisse, mit denen des Live-Handels auch übereinstimmen.
NinjaTrader berechnet im Backtest immer nur das Open, High, Low, Close der einzelnen Bars. Das bedeutet, je höher der Timeframe gewählt wird in dem man handeln möchte, desto mehr Fehlergebnisse können auftreten. Alle Kurse zwischen diesen 4 Werten sind NinjaTrader erstmal unbekannt. Hierzu ein einführendes Beispiel:
Wir handeln im M8-Timeframe. Durch das geringe Profit-Target des Systems (es könnte ein Scalping-System sein) kommt es oft vor, dass Trades am selben Bar wieder geschlossen werden.
Schaut man sich den Trade an (linkes Bild), sieht man, dass 2 Kontrakte Long gehandelt wurden. Der Einstieg erfolgt per Limit an dem Tief der Vorkerze, des vorherigen M8-Bars. Das Profit-Target ist durch einen grünen Punkt, der Stop-Loss durch einen roten markiert. Das Profit-Target wird erreicht, alles scheint gut gelaufen zu sein … zumindest zeigt es der Backtest so. Im Livetrading wird der M8 Bar natürlich von vielen kleinen Ticks bzw. Trades bestimmt. Diese bekommt NinjaTrader so im Backtest und in diesem hohen Timeframe nicht mit, so dass ein korrektes Kursverhalten nicht vorausberechnet werden. Fehltrades sind die Folge.
Schauen wir uns zu derselben Chart-Situation nun den M1-Chart (rechtes Bild) an, erkennt man, dass die beiden relevanten M8-Bars (markiert mit den farbigen Rechtecken) in Wahrheit ganz anders als wie von NinjaTrader erwartet aussehen. Der Einstiegskurs ist das Tief des ersten Rechtecks (und damit des ersten M8-Bars). Hier ist es die linke, untere Ecke des ersten Rechtecks. Das zweite Rechteck umfasst den zweiten M8-Bar. Das Einstiegslimit wird am fünften M1-Bar des zweiten Rechtecks getriggert und der Kurs läuft direkt weiter nach unten und nicht mehr nach oben, wie es NinjaTrader im vorherigen Bild vermutet hat. Wir hätten hier also einen Verlusttrade und keinen Gewinntrade gehabt
Da ein Scalping System locker 30-50 Trades am Tag machen kann und jeder dieser Trades potentiell ein Verlusttrade sein könnte, der Backtest aber auch bei jedem Trade das Gegenteil behaupten könnte, haben wir hier ein Problem in höheren Timeframes. Dies hat zur Folge, dass Backtesting-Systeme immer in kleineren Timeframes oder mit einem zweiten Timeframe im Code getestet werden müssen. Kleinere Timeframes führen dazu, dass NinjaTrader im Backtest mehr Daten zur Verfügung hat.
Im kleinen Bild links sehen wir den bereinigten Misstrade im kleinerem Timeframe. Der XBar-Stop ist dafür da, den Trade nach X-Bars auszustoppen, hier genau nach einem Bar. Welche Größe für den kleineren Timeframe ausreichend ist, muss von System zu System entschieden werden.
Zusätzlich zur einem korrekten Backtest gibt es noch weitere Punkte, die unbedingt während eines Systemtests beachtet werden müssen. Die Backtestergebnisse sind fast niemals mit den Live-Ergebnisse 100%ig zu vergleichen. Es gibt weitere Punkte, die bei einem Backtest zu beachten sind. Generell kann erhöhte Kursvolatilät innerhalb weniger Sekunden das Ergebnis immer verfälschen. Hier spielen Punkte wie Splippage, Zeit der Abarbeitung der Order, Dauer der Codeausführung, eine wichtige Rolle. In weiteren Artikeln werden diese und anderen Punkte tiefer gehend betrachtet werden.
Es bleibt festzuhalten, dass (automatische) Handelssysteme immer auf dem Demo-Konto getestet und dann die Ergebnisse mit denen aus dem Backtest verglichen werden sollten. Zudem sollte der Backtest immer mit kleineren Timeframes (wenn möglich) ausgeführt werden, um eine hohe Genauigkeit der Tradeausführungen zu erhalten.
Erfolgreiche Trading Tage
Holger Breuer