Monte Carlo - Parameter-Jitter simulieren
In der realen Welt des Handels entwickeln sich die Marktbedingungen ständig weiter. Die Volatilität ändert sich, die Liquidität schwankt, und der Datenfeed selbst kann von Tick zu Tick winzige Abweichungen aufweisen. Folglich kann selbst eine gut optimierte Strategie nicht funktionieren genau wie in einem Backtest vorhergesagt, da die Kernparameter oder Indikatorberechnungen unter realen Bedingungen leichte Schwankungen oder Instabilitäten aufweisen können. Diese Monte-Carlo-Simulation dient dazu, zu testen, wie widerstandsfähig Ihre Strategie gegenüber solchen geringfügigen, unvorhersehbaren Abweichungen von ihrem perfekten Backtest-Verhalten ist.
Wenn wir diesen Monte-Carlo-Test anwenden, führt die Simulation zwei potenzielle Auswirkungen auf die Abschlüsse innerhalb jedes generierten Backtestlaufs ein:
-
Zustandsflimmern (verpasste Eingaben): Auf der Grundlage der Probability überspringenwird ein zufälliger Prozentsatz von Geschäften einfach aus dem Backtest entfernt. Damit werden Fälle simuliert, in denen leichte Parameterschwankungen dazu führen können, dass eine Einstiegsbedingung, die im historischen Backtest erfüllt wurde, in einem etwas anderen Live-Szenario knapp verfehlt wird.
-
Exit Level Variation (P/L Fluktuation): Für die Gewerbetreibenden nicht übersprungen, ein weiterer zufälliger Prozentsatz (definiert durch Probability anpassen) werden in ihrem Endergebnis leicht verändert. Dies geschieht durch Änderung der Preis schließen des Geschäfts. Der Änderungsbetrag wird als zufälliger Prozentsatz berechnet (bis zum Maximale Preisanpassung in Prozent) der ursprünglichen Preisspanne (Open bis Close) des betreffenden Geschäfts. Entscheidend ist, dass diese Anpassung sein kann positiv oder negativDas bedeutet, dass der Jitter-Effekt zufällig zu einem etwas besseren Ergebnis führen kann. oder leicht schlechterer Schlusskurs, der geringfügige Variationen bei Stop Loss, Profit Target oder Trailing Stop-Ausführungspunkten simuliert.
Einfach ausgedrückt: Durch die Durchführung von 500 (oder einer anderen Anzahl) Simulations-Backtests, bei denen jeweils verschiedene zufällige Übersprünge und zufällige bidirektionale Preisanpassungen auf die Handelsliste angewendet werden, erhalten Sie eine Monte-Carlo-Perspektive darauf, wie empfindlich die Leistung Ihrer Strategie auf kleine, zufällige Instabilitäten in ihrer eigenen Ausführungslogik oder ihre Reaktion auf Marktdaten reagiert.
Wenn beispielsweise 100 Simulationen mit diesem Test durchgeführt werden, ergeben sich 100 verschiedene Aktienkurven, die jeweils einen plausiblen Ergebnispfad unter Berücksichtigung dieser geringfügigen Zufallsvariationen darstellen.
Dieser Test unterscheidet sich erheblich von der Anwendung eines festen Schlupfes oder der Simulation von zufälligen Ausfallzeiten. Er führt nicht nur zu einer konstanten Verschlechterung der Ergebnisse, sondern auch zu einer probabilistische Störung steht in direktem Zusammenhang mit der potenziellen internen Parameterempfindlichkeit der Strategie. Eine Simulation könnte die Geschäfte #3 und #25 auslassen, das Geschäft #10 leicht verschlechtern und das Geschäft #42 leicht verbessern. Eine andere Simulation könnte nur das Geschäft #15 auslassen, aber größere Preisanpassungen (sowohl positiv als auch negativ) bei den Geschäften #8, #33 und #50 vornehmen. Indem Sie die Verteilung der Ergebnisse über viele Simulationen hinweg bewerten, können Sie die tatsächliche Robustheit der Strategie gegenüber der Art von subtilen operationellen Variationen beurteilen, die häufig in der Praxis auftreten.
Wie importiert man benutzerdefinierte Snippets (wie diesen Monte Carlo-Test) in SQX?
https://strategyquant.com/doc/programming-for-sq/import-export-custom-indicators-and-other-snippets/