Au cours des derniers mois, le serveur de partage et Strategy Quant X ont tous deux été mis à jour avec de nouveaux snippets, ce qui permet d'évaluer la robustesse des stratégies. Nous définissons la "robustesse" comme la capacité des stratégies à préserver leurs attributs qualitatifs au fil du temps.
Nous avons inclus trois nouveaux tests Monte Carlo et un extrait de Money Management. Nous allons maintenant fournir une description concise de chacun d'entre eux et de la manière dont ils peuvent contribuer à l'expansion réussie de la courbe d'équité de vos stratégies, vous permettant ainsi de naviguer avec succès sur le chemin d'un trader algorithmique.
Nous avons ajouté les nouveaux extraits suivants :
- Monte Carlo - Modifié Randomiser les paramètres de la stratégie
- Monte Carlo - Randomiser le SWAP d'un backtest entier
- Monte Carlo - Randomiser le SWAP de chaque transaction
- Dimensionnement de la position proportionnelle fixe
- Nouveaux blocs personnalisés basés sur la logique Is rising/ Is falling
Cet article de blog explique et détaille ces snippets et comment les utiliser.
Monte Carlo - Paramètres de stratégie aléatoires personnalisables
Il s'agit d'un Randomiser les paramètres de la stratégie test. Pour le test par défaut, les paramètres aléatoires sont prédéterminés. Les options de trading sont aléatoires dans la pratique, alors que les Shifts ne le sont pas. À mon avis, une telle configuration nous empêche d'évaluer les stratégies de départ de manière aussi détaillée que nécessaire.

Vous pouvez voir la configuration de l'extrait dans l'exemple ci-dessus.
Monte Carlo Modified Randomize Strategy parameters est un snippet paramétrable qui vous permet de rendre aléatoires les paramètres utilisés dans les stratégies. Vous pouvez spécifier ce que vous souhaitez rendre aléatoire.
- Périodes
- Déplacement
- Constantes
- Autres paramètres
- Sortie utilisée
- Sortie inutilisée
- Booléen
- Options de négociation
Ce test améliore considérablement votre capacité à tester des stratégies et des. Mon flux de travail typique comprend plusieurs étapes pour l'utilisation de ces tests.
- Je randomise les périodes des indicateurs.
- Je randomise les sorties utilisées - stop loss et objectifs de profit.
- Je randomise les constantes.
- ...
La plupart des stratégies incluent un indicateur avec un paramètre de type Période (par exemple, la moyenne mobile a une période de 20). C'est la première dans laquelle je détermine si la stratégie n'est pas suroptimisée au niveau de la période. Ensuite, je randomise les paramètres d'un type : Sortie utilisée (stop loss et objectifs de profit). Dans le cas des décalages, si vous testez le paramètre de type Décalage, utilisez des valeurs de changement maximum de 100 ou plus. La variation maximale de 100 ou plus indique que le décalage peut se déplacer vers le bas ou vers le haut de 100% ou plus (de 1 à 2).
La symétrie des paramètres (les mêmes paramètres s'appliquent aux transactions longues et courtes) peut également être définie. Par défaut, ce paramètre est fixé à True.
Monte Carlo Randomize SWAP d'un backtest entier
Un SWAP est la commission d'intérêt ou le crédit qui est appliqué au compte d'un trader lorsqu'il maintient une position pendant la nuit sur le marché des changes ou des CFD. Ces frais sont déterminés par le différentiel de taux d'intérêt entre les deux devises d'une paire de devises ou par le coût de maintien d'une position en CFD. Elle peut être positive (crédit) ou négative (débit) en fonction du sens de la transaction et du différentiel de taux d'intérêt.
Si nous appliquons ce test de Monte Carlo, chaque backtest contiendra des valeurs de swap générées de manière aléatoire dans la fourchette [-Fourchette, Fourchette]. En d'autres termes, en effectuant 500 backtests (ou un nombre différent) avec des swaps générés de manière aléatoire, vous pouvez acquérir une perspective d'analyse de Monte Carlo sur la modification des swaps.

Dans cet exemple particulier, nous avons effectué 100 simulations avec un SWAP aléatoire pour chaque transaction.
Ce paramètre dans l'extrait est soumis au hasard :
- Plage : la plage dans laquelle le swap est sélectionné.
Un nombre aléatoire compris entre -20 et 20 est généré lorsque l'option Plage = 20 est sélectionnée. Le deuxième nombre aléatoire sera négatif si le premier est positif. Cela permet de s'assurer que l'on spécifie de manière cohérente des écarts positifs et négatifs.
Les paramètres suivants sont fixes et ne sont pas soumis à la randomisation :
- Type de swap - Méthode de calcul du swap (points, argent, pourcentages)
- Tripple Swap Le jour où un triple swap est appliqué
- Heure pendant laquelle le swap est compté
Il est possible de modifier chacun des paramètres mentionnés précédemment.
Monte Carlo Randomize SWAP de chaque transaction

Dans cet exemple particulier, nous avons effectué 100 simulations avec un SWAP aléatoire pour chaque transaction.
Ce test diffère du précédent en ce sens qu'il randomise chaque transaction dans le backtest actuel. La transaction initiale peut impliquer un swap long positif et un swap court négatif, tandis que les transactions suivantes peuvent avoir des combinaisons de swaps entièrement distinctes. Par conséquent, ce test met en œuvre un swap aléatoire pour chaque transaction. Si le nombre de simulations de Monte Varlo est fixé à 500, il y aura 500 backtests existants, chacun ayant un swap unique.
La performance de la stratégie en présence de taux d'intérêt changeants qui influencent la taille des swaps devrait être simulée par ces deux tests.
Dimensionnement proportionnel fixe de la position.
Le dimensionnement proportionnel fixe des positions est un snippet de money management qui vous permet de relier la taille fixe des contrats de lot à une proportion spécifique du solde. Cela permet une adaptation plus efficace à l'augmentation ou à la diminution du solde pendant les backtests.

L'exemple ci-dessus illustre la courbe croissante des capitaux propres/du solde et l'augmentation du nombre de lots échangés lors de chaque transaction.
Exemple de dimensionnement fixe Proportionnel dans les contrats à terme
La stratégie avec Fixed Money proportional sizing négocie un micro-contrat Nasdaq pour chaque solde de 2000. Si le solde est de 4000, la stratégie négociera deux micro-contrats.
Exemple de dimensionnement fixe Proportionnel en Forex
J'ai un solde de 2000 et j'aimerais négocier tous les 500 lots de 0,01. Dans ce cas, je négocierai 0,04 lot et j'aurai entre $2000 et $2500 sur mon compte. Si mon solde atteint 2501, je négocierai 0,05 lot.
Paramètres
- Taille de la commande par par proportion de l'équilibre
- 1TP9Part du solde
- Mininmum Taille de la commande
Le Money Management est implémenté pour les plateformes Metatrader 4, Metatrader 5, Tradestation et Multicharts.
En hausse/en baisse Blocs personnalisés
Les blocs personnalisés sont essentiels pour optimiser la flexibilité des stratégies de trading algorithmique dans StrategyQuant X. Ils permettent aux utilisateurs d'établir leur propre logique et règles de trading en plus de l'ensemble standard d'indicateurs ou d'actions disponibles sur la plateforme.
Les blocs personnalisés peuvent être utilisés pour générer des conditions, des signaux ou des indicateurs uniques qui conviennent à des stratégies de trading particulières. Par exemple, il est possible d'établir un bloc personnalisé qui détermine si l'indice de force relative (RSI) reste au-dessus d'un seuil prédéterminé pendant un nombre donné de barres. Les utilisateurs ont ainsi la possibilité de réguler la manière dont leurs stratégies répondent à des conditions de marché spécifiques au fil du temps
Une logique avancée, telle que la détection de fausses cassures, de mouvements de prix consécutifs ou de conditions personnalisées impliquant des comparaisons multiples, peut également être incorporée dans des blocs personnalisés. Ces blocs peuvent être configurés dans l'assistant Algo ou utilisés directement dans le Builder de StrategyQuant ou dans le modèle de stratégie.
La logique du bloc personnalisé isRising/isFalling a permis la possibilité de personnalisation. Ces blocs sont paramétrés de manière plus précise que le bloc par défaut -> Vous pouvez définir/optimiser la durée de la montée ou de la descente de plus de 2 mesures.

Dans cet exemple, nous pouvons voir que le bloc personnalisé Is Rising BarRange peut être optimisé de 2 à 24 mesures.
Il y a 54 nouveaux blocs personnalisés au total.
Vous pouvez télécharger tous les snippets dans codebase ici.
C'est incroyable, le Montecarlo en détail est toujours nécessaire !!!