Einbeziehung realer Parameter in den simulierten (Papier-)Handel

Um die hier gestellte Frage etwas zu erweitern , möchte ich versuchen, eine Strategie mit einem simulierten (Papier-) Handel zu testen. Als ersten Schritt habe ich versucht, Broker zu finden, die eine bequeme simulierte Handelsplattform anbieten. Nach einigem Nachdenken habe ich mich jedoch für einen einfachen manuellen "Excel" -Ansatz entschieden. Meine Strategie basiert auf den folgenden Annahmen:

  1. Die Entscheidung, ob eine Position eröffnet/verlassen wird, wird von EOD getroffen, wenn der Schlusskurs für denselben Tag bekannt ist.
  2. Die Kauf-/Verkaufsaktion wird am Tag später durchgeführt, sobald der Handel beginnt.

Also werde ich im Grunde auf den nächsten Handelstag warten, die tatsächlichen Preise an diesem Tag sehen und den Preis aufschreiben, den ich bezahlt/erhalten hätte. Unnötig zu erwähnen, dass es mir hier vor allem darum geht, eine möglichst realitätsnahe Simulation zu erstellen. Also habe ich mir überlegt, welche Faktoren berücksichtigt werden müssen, um diesen Simulationsprozess etwas lebensechter zu gestalten. Dabei bin ich auf folgende Liste gekommen:

  1. Maklergebühren . Kann nach jeder durchgeführten Transaktion problemlos abgezogen werden.
  2. Steuer . Lässt sich leicht berechnen.
  3. Verfügbarkeit Käufer/Verkäufer???

Das letzte (dritte) Problem scheint problematisch, da ich nicht herausfinden kann, wie ich das berücksichtigen soll. Es ist völlig in Ordnung, nur den Schlusskurs für die Entscheidungsfindungsphase zu verwenden, aber wenn ich die Order am Tag danach ausführe, möchte ich sicher sein, dass ich die gewünschten Papiere tatsächlich kaufen/verkaufen kann, und das möchte ich nicht Nehmen Sie an, dass der Eröffnungskurs des Tages gleich dem Schlusskurs des letzten Tages ist. Nach meinem Verständnis muss ich also Zugriff auf das Auftragsbuch haben , um die tatsächlichen Geld-/Brief-Anforderungen zu sehen, einschließlich der Anzahl der Aktien (oder irgendetwas anderem). Es scheint mir, dass die Verwendung der Orderbuchaufzeichnungen in meinen Simulationen die Ergebnisse realer machen wird, sodass alle erfolglosen/teilweise ausgeführten Orders in die Berechnungen einbezogen werden.

Sind Sie einverstanden (damit? Kann ich tatsächlich auf diese Informationen zugreifen oder können sie indirekt auf irgendeine Weise berechnet werden? Welche anderen Faktoren könnte ich in meine Berechnungen einbeziehen, um sie robuster zu machen?

Antworten (2)

Ich glaube, du bist auf dem falschen Weg. Immer mehr Samples aus der realen Welt zu erhalten, macht Ihren Backtest nicht genauer, es bestätigt nur, dass Ihre Strategie einem bestimmten Sample-Pfad eines stochastischen Prozesses standhalten kann.

Der Grund, warum Sie es einfach finden, Gebühren, Provisionen, Steuern usw. einzubeziehen, liegt darin, dass es sich um einen statischen und konstanten Prozess handelt – nun, sie können sich im Laufe der Zeit ändern, sind aber definitiv nicht mit den Märkten korreliert.

Die Modellierung der Renditen über Nacht oder der obersten Ebenen des Auftragsbuchs am nächsten Tag ist eine ernsthafte Arbeit. Zuerst müssen Sie ein geeignetes Modell auswählen (das ist meist theoretische Arbeit, aber Erfahrung kann sehr helfen). Dann müssten Sie, um es datengesteuert zu machen, Tausende von Tagen mit Beispieldaten auf einer Reihe von Tausenden von Instrumenten durchpflügen, um ein „Gefühl“ (auch bekannt als signifikante Modellparameter) zu bekommen.

Apropos Data Mining, ich denke, Excel ist das falsche Werkzeug für den Job. Level-2-Daten (sogar nur die ersten 10 Levels) sind ein riesiger Blob. Beispielsweise wiegen die historischen Daten von NYSE OpenBook in den letzten 10 Jahren gewaltige 15 TB komprimiert (unkomprimiert 74 TB) und kosten 200.000 USD.

Wie auch immer, was andere Faktoren anbelangt, die berücksichtigt werden müssen:

  • Schlupf! Selbst wenn die ersten 3 Ebenen des Buches Ihre, sagen wir, 20.000-Bestellung problemlos unterstützen, könnte jemand anderes kurz vor Ihnen da sein und Sie würden auf die Ebenen 3, 4 und 5 durchfallen (kann mit einem Poisson-Prozess modelliert werden).
  • Positionslimits! Sie haben nicht gesagt, mit welchen Instrumenten Sie handeln, aber insbesondere im Bereich Rohstoff-Futures gibt es absolute Positionsgrenzen (über alle Laufzeiten), die Sie einhalten müssen.
  • Margin-Calls! Sie sind vom Makler initiierte plötzliche Positionslimits, beispielsweise als Ergebnis sich ändernder Margin-Anforderungen (kann mit einem Poisson-Prozess modelliert werden).
  • Kapitalmaßnahmen. Im Fall von Anleihen- oder Aktieninstrumenten sollten Sie wissen, dass der Eröffnungspreis am nächsten Tag Ex-Rechte, Ex-Dividende, Ex-Zinsen, Ex-Spin-offs usw. sein kann. Solche Aktionen wirken sich normalerweise auf die Notierungen aus, haben aber keine Auswirkung Ihre Investition (da Sie mit Bargeld oder mehr Instrumenten entschädigt werden).
  • Besondere Kapitalmaßnahmen: Squeeze-out, Liquidation, Konkurs, Feststellung der Wertlosigkeit; sie sind sogenannte Tail-Events und werden typischerweise mit einer Heavy-Tail-Verteilung modelliert. In Ihrem realen Backtest werden Sie diese nie finden, weil Sie unter dem sogenannten Survivorship Bias leiden

Wie also all dies in einem Backtest berücksichtigen? Persönlich würde ich für jeden Faktor, den Sie berücksichtigen möchten, einige Strafbedingungen (als % auf Renditebasis) eingeben, nicht fest codieren. Sie können dann einen Belastungstest durchführen , indem Sie diese Parameter untersuchen (dh einige Werte im Bereich von 0 zuweisen, was auch immer passt). Untersuchen Sie sie einzeln (stellen Sie jeweils nur einen Strafterm ein), um ein Gefühl dafür zu bekommen, wie die Strategie auf Stress durch diesen Faktor reagieren könnte. Dann können Sie den Backtest mit typischen (oder beobachteten) Kombinationen von Penalty-Faktoren durchführen und sie langsam insgesamt betonen.

Bearbeiten Sie
nur, um Verwirrung über die Terminologie zu vermeiden. Ein Backtest im engeren Sinne (hätte ich diese Strategie vor X Jahren implementiert, was wäre passiert?) wird von keiner Modellierung profitieren, nur weil die reale Welt für uns „das Sampling übernimmt“.

Um jedoch die Robustheit einer Strategie zu bewerten, sollten Sie die zusätzlichen Faktoren berücksichtigen und einige Stresstests durchführen. Wenn die Strategie in der realen Welt oder in einem No-Stress-Szenario gut abschneidet, aber Verluste produziert, sobald hin und wieder ein kleiner Schlupf auftritt, könnten Sie daraus schließen, dass die Strategie sehr fragil ist. Der Schlüssel liegt darin, den maximalen Stress zu untersuchen, den die Strategie bewältigen kann (mit welchem ​​​​Maß auch immer); wenn viel kann man die Strategie robust nennen.

Letzteres nenne ich persönlich einen Backtest; das erste Verfahren hieße "Verlängerung in die Vergangenheit" oder so.

Leichte Literatur:

Hallo und danke für deine ausführliche Antwort. Es war nie meine Absicht, Renditen über Nacht zu modellieren. Meine grundlegende Strategie ist 1. Treffen Sie eine Entscheidung basierend auf dem EOD-Preis. 2. Kaufen/verkaufen Sie das Papier aus Schritt eins am nächsten Morgen. Was ich also wirklich vermeiden wollte, ist eine Situation, in der ich fälschlicherweise annehme, ich hätte das Papier zu einem bestimmten Preis kaufen / verkaufen können (den ich nur aus jeder, auch leicht verzögerten Quelle lesen kann). Ich möchte die von Ihnen vorgeschlagenen Faktoren wie Slippage berücksichtigen.
Nun, und mein Punkt war, dass Sie nur einen Backtest-Pfad generieren, wenn Sie einfach Daten aus der realen Welt verwenden, was ein guter Anfang ist, um Strategien, die in der realen Welt nicht funktioniert hätten, sofort auszuschließen. Andererseits wissen Sie immer noch nicht, wie die Strategien unter Stress funktionieren. Und um Stress anzuwenden, ist es einfacher, ein Modell zu haben (Schlupf zum Beispiel ist ein Poisson-Prozess).
Vielen Dank für Ihren Einblick! Es ist sehr wertvoll. Aber werden künstlich angelegte Stressbedingungen noch echte Ergebnisse darstellen? Ich hatte den Eindruck, dass die Verwendung realer Daten mich den tatsächlichen Ergebnissen der "realen Welt" näher bringen wird. Könnten Sie mich bitte auf Informationsquellen verweisen, in denen ich mehr zum Thema Modellierung lesen kann? Welche stochastischen Prozesse kann ich verwenden, um andere Faktoren zu modellieren? (wie Poisson für Schlupf). Danke noch einmal!
Ich habe meine Faktoren etwas erweitert und einige Modellierungsvorschläge hinzugefügt. Außerdem habe ich unsere Terminologie geklärt.
@hroptatyr Tolle Antwort. Viele Leute lassen beim Testen von Strategien die Sensitivitätsanalyse aus.

Sie sagten, die Entscheidung wird von EOD getroffen. Wenn Sie die Entscheidung vor Börsenschluss getroffen haben, würde ich zum Schlusskurs ausführen. Wenn Sie Aktien mit einem anständigen Volumen handeln, würde ich mir keine Sorgen um die Liquidität machen.

Wenn die Gewinne Ihrer Strategie so gering sind, dass Ihre Gewinne beispielsweise durch die Geld-Brief-Spanne (ein Cent oder weniger für liquide Aktien) erheblich beeinträchtigt werden, würde ich den Ansatz überdenken. Sie werden feststellen, dass der Unterschied zwischen Markteröffnung und vorherigem Nachtschluss weitaus größer ist als das normale Geld-/Briefkurs.

Hallo und danke für deine Antwort. Die Verwendung des realen (endgültigen) Schlusskurses ist jedoch in meinem Fall entscheidend, da ich einen bestimmten Algorithmus zur Entscheidungsfindung verwende, der auf diesem Kurs basiert. Daher möchte ich nicht nur einen zufälligen Schlusskurs vor dem tatsächlichen (offiziellen) Schlusskurs wählen. Meine Gewinne sollten durch den Spread nicht wesentlich beeinträchtigt werden, aber ich denke nur, dass es mir mehr Einblick und mehr Raum für Verbesserungen geben wird.
Wenn Sie den Tagesschlusskurs brauchen, um die Entscheidung zu treffen, verstehe ich das. Mir ging es nicht um den Geld-/Briefkurs, sondern um die Differenz zwischen dem heutigen Schlusskurs und dem morgigen Eröffnungskurs.
Ich verstehe. Nun, das müssen wahrscheinlich die Simulationen herausfinden (die Bedeutung des Unterschieds zwischen dem heutigen Schlusskurs und dem morgigen Eröffnungskurs). Ich kann also einfach den aktuellen Preis verwenden, ohne mir Gedanken über die Geld-Brief-Spanne machen zu müssen.