Dégrade de manière aléatoire les prix d'exécution pour simuler le slippage réel et l'élargissement du spread. Teste la robustesse de la stratégie au fil de simulations Monte Carlo avec des schémas probabilistes d'imperfections d'exécution.
Les imperfections d'exécution, telles que le slippage de prix ou les spreads temporairement élargis, sont fréquentes en trading réel. Ces facteurs peuvent rendre le prix de clôture réel d'un trade moins favorable que le cours idéal observé ou visé lors du backtest. Cette simulation Monte Carlo modélise l'impact de tels aléas d'exécution.
Si nous appliquons ce test Monte Carlo, un pourcentage aléatoire de trades (Probability) au cours du backtest verra son résultat d'exécution dégradé. Cela est obtenu en détériorant le ClosePrice des trades sélectionnés. L'ampleur de la dégradation du ClosePrice est également aléatoire pour chaque trade concerné, calculée sous forme de pourcentage aléatoire (jusqu'à Max Degradation Percent) de l'écart de prix couvert par ce trade spécifique (du OpenPrice au ClosePrice d'origine). Un prix « pire » signifie un prix de clôture plus bas pour les positions acheteuses et plus élevé pour les positions vendeuses, réduisant ainsi les gains ou augmentant les pertes.
Autrement dit, en exécutant 500 (ou un autre nombre de) backtests, où chaque backtest applique cette dégradation de prix aléatoire à un sous-ensemble différent de trades et avec une sévérité variable, vous pouvez obtenir une analyse Monte Carlo de la sensibilité de la stratégie aux variations de la qualité d'exécution.
Dans cet exemple particulier, nous pourrions exécuter 100 simulations en appliquant une dégradation aléatoire de l'exécution comme décrit.
Ce test diffère de l'application d'une valeur fixe de slippage à toutes les transactions. Ici, l'effet de dégradation est probabiliste :
Le choix des transactions affectées est aléatoire (basé sur la probabilité).
L'ampleur de la dégradation subie par chaque transaction affectée est également aléatoire (jusqu'à Max Degradation Percent de son range).
Par conséquent, chaque exécution de simulation représente un scénario de backtest unique. Une simulation peut voir les transactions n°5, n°23 et n°58 dégradées de faibles montants, tandis qu'une autre simulation peut affecter les transactions n°12, n°23, n°45 et n°70, la transaction n°23 subissant potentiellement une dégradation de prix plus importante que dans la première simulation. Si le nombre de simulations Monte Carlo est défini sur 500, il y aura 500 résultats de backtest uniques, chacun reflétant un modèle plausible différent d'imperfections d'exécution aléatoires. Cela permet d'évaluer la robustesse de la stratégie face aux variations d'exécution imprévisibles rencontrées sur les marchés réels.
Comment importer des snippets / indicateurs personnalisés dans SQX :
Vous me connaissez sous le nom de clonex. Je m'appelle Ivan Hudec — j'ai conçu les blocs gratuits que vous utilisez ici, et j'écris au sujet de la recherche qui les sous-tend sur algotrading.space. Vous avez un projet à concrétiser ? Collaborez avec moi.