Backtesting der Daytrading-Strategie, wie geht man mit dem Spread um?

Ich entwickle derzeit eine Daytrading-Anwendung, die auf der Grundlage von Regeln und Algorithmen Aktien kauft oder verkauft, die derzeit eine Aktie in der Größenordnung von 100 pro Tag kaufen / verkaufen könnten.

Ich versuche, meine Strategie zu testen, aber ich weiß nicht, wie ich mit der Spanne zwischen Bid und Ask umgehen soll. Wenn ich zum Beispiel in meinem Backtesting annehme, dass ich zum aktuellen Preis kaufen kann, könnte ich ein verzerrtes Ergebnis erhalten, da der Kauf zum neuesten Preis davon ausgeht, dass jemand immer noch bereit ist, zu diesem Preis zu verkaufen, was möglicherweise nicht der Fall ist.

Gibt es hier Best Practices? Eines meiner großen Probleme ist, dass ich keinen Zugriff auf die historische Ordertiefe für jeden Datenpunkt habe, also kenne ich Ask und Bid nicht. Hier sind ein paar Optionen, die ich in Betracht gezogen habe (für den Kauf einer Aktie):

  • Verwenden Sie den neuesten Preis (In der realen Welt kann ich möglicherweise nicht zu diesem Preis kaufen)
  • Berechnen Sie die durchschnittliche Bewegung zwischen zwei Trades in der Aktie, addieren Sie diese zum letzten Preis und verwenden Sie diesen.

Und wenn ich Zugriff auf die Bestelltiefe hätte:

  • Verwenden Sie das aktuelle Gebot (Was ist, wenn das Volumen dieses Gebots viel kleiner als mein Volumen ist?)
  • Verwenden Sie den Durchschnitt von Ask und Bid.
Welche Auftragsarten würden Sie im wirklichen Leben und im Backtesting verwenden? Es sieht aus Ihrem Szenario Market Orders aus. Haben Sie darüber nachgedacht, Stop-Buy- und Stop-Sell-Orders zu verwenden?
Ja, mein Plan ist es, Marktaufträge zu verwenden. Aber selbst wenn ich Stop-Orders verwende, habe ich dann nicht das gleiche Problem? Nehmen wir an, eine Aktie erreicht (von einem höheren Preis) 5,00 $, das ist mein Auslöser, und dann möchte ich zu 5,00 $ kaufen, aber der aktuelle Brief ist 5,01 $, also werde ich nicht in der Lage sein, zu 5,00 $ zu kaufen.
Stop-Orders SIND Marktorders. Eine reguläre Stop-Order bedeutet nur, wenn der Preis Punkt X erreicht, wird die Order zum Markt gesendet. Bei einem Stop-Limit wird stattdessen die Limit-Order gesendet, aber der Standardwert ist der Markt für „Stop-Orders“.
Sie können eine Strategie ohne historische Daten nicht perfekt backtesten. Und selbst dann wird es nicht ganz genau sein, weil Sie keine Tick-für-Tick-Daten haben werden, die die Volumengröße angeben, die zu einem bestimmten Zeitpunkt verfügbar ist.

Antworten (3)

Ohne die Verwendung von Tiefendaten wäre die beste Näherung eine Funktion von Volatilität und Liquidität. Die Gewichte würden von Ihrer Größe abhängen. Ohne so weit zu gehen, wäre die einfachste Methode, darauf zu warten, dass der Preis durch Ihren Preis über x Prozent gehandelt wird. Dies setzt voraus, dass Ihre Positionsgrößen zuvor an die Liquidität für das Instrument angepasst wurden.

Das war meine ursprüngliche Idee, um einen "durchschnittlichen Spread" für eine bestimmte Aktie als Funktion von Volatilität und Liquidität zu berechnen. Ich werde es versuchen, um zu sehen, ob ich eine gute Berechnung für "durchschnittliche Streuung" finde.
Das klassische Problem bei der Verwendung von so etwas wie dem durchschnittlichen Spread ist, wenn die Preise am volatilsten sind und sich am stärksten auf die Ergebnisse auswirken, ist der Spread im Allgemeinen auch am breitesten und illiquidesten, was zu seltenen, aber großen Verzerrungen führt, da alle Faktoren oft gleichzeitig auftreten korreliert.
Das ist wirklich wahr. Ich nehme an, ein Vergleich der sehr kurzfristigen Volatilität mit der „durchschnittlichen“ längerfristigen Volatilität könnte etwas helfen, aber es ist kein Ersatz für echte Tiefe. Es wird darauf ankommen, ob mittelmäßige Änderungen der Slippage die Durchführbarkeit der Strategie bestimmen oder nicht.

Ich würde empfehlen, vorwärts zu testen.

Nehmen wir an, dass Ihre Käufe und Verkäufe den Markt nicht beeinflussen. Das ist ein Fehler, aber ein bewusster. Es bleibt so lange klein, wie du klein bleibst.

Was Sie dann tun können, ist das tatsächliche Ausführen der Strategie zu simulieren. Ich würde darauf achten, nicht nur zufällig Tage oder Zeiträume auszuwählen, um eine Simulation durchzuführen, sondern auch die Marktbedingungen zu definieren, die Sie darstellen möchten. Bull / Bear - Störungen, Quartalsberichte, Jahresberichte usw.

Wenn Ihre Methode(n) und Hypothesen das Vorwärtstesten überstehen, ist dies ein viel stärkerer Beweis als das Backtesting. Unabhängig davon, wie sorgfältig Backtesting durchgeführt wird, validieren Sie Ihre Hypothesen (in gewisser Weise) immer anhand derselben Daten, die zu ihrer Erstellung verwendet wurden – was meiner Meinung nach der häufigste und gefährlichste wissenschaftliche Kunstfehler ist.

Wie Sie zu Recht feststellen, benötigen Sie wirklich Zugang zu Ordertiefendaten, um eine Vielzahl von Verzerrungen in Bezug auf Spread/Liquidität zu vermeiden. Es wird dringend empfohlen, diese Daten so schnell wie möglich zu erhalten, da es ohne sie außerordentlich schwierig ist, eine Handelsstrategie genau zu testen. Wenn/wenn Sie Ordnungstiefendaten haben, müssen Sie die pessimistischsten und realistischsten Annahmen verwenden, wenn Sie Ihr Modell ausführen:

  • Sie sollten Ihrer Strategie immer nur erlauben, vom aktuellen Gebot zu kaufen
  • Lassen Sie nur die verfügbare Liquidität kaufen/verkaufen
  • Wenn Ihre Strategie Preise tiefer im Auftragsbuch vorschlug, sollten Sie diese auch zu den entsprechenden Liquiditäten kaufen/verkaufen
  • Sie müssen Ihre Bankroll-Schwankungen über Kelly oder ein beliebiges Geldverwaltungssystem modellieren, das Sie verwenden, um sicherzustellen, dass Sie mit dieser Strategie über den Zeitrahmen zahlungsfähig bleiben

Zwei weitere Zitate, an die man sich beim Backtesting einer Strategie immer erinnern sollte:

„Ich habe noch nie einen schlechten Backtest gesehen“

– Dimitris Melas

„Das erste Prinzip ist, dass man sich nichts vormachen darf – und man ist am leichtesten zu täuschen.“

--Richard Feynman

Danke, ich werde versuchen zu sehen, ob ich auch die Tiefendaten in die Hände bekomme, aber ich denke, es wird schwierig sein.