Monte Carlo - Simuler la gigue des paramètres
Dans le monde réel du trading, les conditions du marché sont en constante évolution. La volatilité change, la liquidité fluctue et le flux de données lui-même peut présenter d'infimes variations d'un tick à l'autre. Par conséquent, même une stratégie bien optimisée peut ne pas être performante. exactement comme prévu par un backtest, car ses paramètres de base ou les calculs de ses indicateurs peuvent subir un léger "jitter" ou une instabilité lorsqu'ils sont confrontés à des conditions réelles. Cette simulation Monte Carlo est conçue pour tester la résistance de votre stratégie à de tels écarts mineurs et imprévisibles par rapport au comportement parfait du backtest.
Si nous appliquons ce test de Monte Carlo, la simulation introduit deux effets potentiels sur les transactions au sein de chaque cycle de backtest généré :
-
Scintillement de la condition (entrées manquées) : Sur la base de la Sauter ProbabilitéDans ce cas, un pourcentage aléatoire de transactions est simplement supprimé du backtest. Cela permet de simuler les cas où une légère fluctuation des paramètres peut faire en sorte qu'une condition d'entrée, qui a été remplie dans le backtest historique, soit manquée de justesse dans un scénario réel légèrement différent.
-
Variation du niveau de sortie (fluctuation P/L) : Pour les métiers pas sautée, un pourcentage aléatoire supplémentaire (défini par Ajuster Probabilité) verront leur résultat final légèrement modifié. Pour ce faire, il convient de modifier l'élément Fermer Prix de la transaction. Le montant de la modification est calculé sous la forme d'un pourcentage aléatoire (jusqu'à concurrence du montant de la modification). Pourcentage d'ajustement du prix maximum) de la fourchette de prix initiale de cette transaction spécifique (de l'ouverture à la clôture). Il est important de noter que cet ajustement peut être positive ou négativeL'effet de gigue peut donc se traduire par un résultat aléatoire légèrement meilleur. ou un prix de clôture légèrement inférieur, simulant des variations mineures dans les points d'exécution du Stop Loss, du Profit Target ou du Trailing Stop.
En d'autres termes, en exécutant 500 (ou un nombre différent) backtests de simulation, chacun appliquant différents sauts aléatoires et ajustements de prix bidirectionnels aléatoires à la liste des transactions, vous obtenez une perspective Monte Carlo sur la sensibilité de la performance de votre stratégie à de petites instabilités aléatoires dans sa propre logique d'exécution ou dans sa réaction aux données du marché.
Par exemple, l'exécution de 100 simulations à l'aide de ce test produira 100 courbes d'équité différentes, chacune représentant une trajectoire de résultat plausible compte tenu de ces variations aléatoires mineures.
Ce test diffère considérablement de l'application d'un glissement fixe ou de la simulation d'un temps d'arrêt aléatoire. Il ne se contente pas de dégrader les résultats de manière cohérente, il introduit un facteur de risque. perturbation probabiliste directement liée à la sensibilité potentielle des paramètres internes de la stratégie. Une simulation pourrait ignorer les transactions #3 et #25, détériorer légèrement la transaction #10 et améliorer légèrement la transaction #42. Une autre simulation pourrait ne pas tenir compte de la transaction #15, mais appliquer des ajustements de prix plus importants (positifs et négatifs) aux transactions #8, #33 et #50. En évaluant la distribution des résultats à travers de nombreuses simulations, vous pouvez évaluer la véritable robustesse de la stratégie par rapport au type de variations opérationnelles subtiles souvent rencontrées en direct.
Comment importer des extraits personnalisés (comme ce test de Monte Carlo) dans SQX :
https://strategyquant.com/doc/programming-for-sq/import-export-custom-indicators-and-other-snippets/