Modélisation Stochastique avec Prorealtime

  • 733
  • 0
La suroptimisation des stratégies est un risque majeur en trading algorithmique. Dans cet article, je vais vous présenter un modèle permettant de savoir si votre système de trading automatique est suroptimisé ou non.

Définitions et concepts



Le test du stochastique est un test très important en robotique, surtout quand un robot équipé d’une intelligence artificielle tel qu’une voiture autonome, doit interagir avec le monde extérieur.

Ce test consiste à faire varier légèrement certaines propriétés de l’environnement dans lequel le robot va intervenir et à observer son comportement.

Définition du test du stochastique
Le test du stochastique est un test très important en robotique, surtout quand un robot équipé d’une intelligence artificielle tel qu’une voiture autonome, doit interagir avec le monde extérieur.

Ce test consiste à faire varier légèrement certaines propriétés de l’environnement dans lequel le robot va intervenir et à observer son comportement.

Objectif du test du stochastique
Globalement, le test du stochastique cherche à mesurer le degré flexibilité d’un système autonome. On peut le classer dans la catégorie des stress tests.

Pour que le test soit validé, il faut que de petites variations des propriétés de l’environnement n’entraînent pas de grandes variations de la performance du système testé.


Application du test sur Prorealtime



Retour sur le test de la variation du spread
La seule propriété environnementale que l’on peut tester sur la plateforme Prorealtime est le spread.

Pour que le test du stochastique soit validé, il faut qu’une petite variation du spread n’entraîne pas une variation importante de la performance du système de trading automatique testé.

Adaptation du test à Prorealtime
S’il n’est pas possible d’appliquer des variations sur l’environnement de test, on peut les appliquer sur les paramètres internes du système que l’on veut tester.
On pourra faire varier légèrement la valeur des variables impliquées dans l’ouverture et la gestion d’une position.

Si par exemple votre système ouvre une position quand la valeur RSI est égale à 30, il faut que la performance de votre système soit faiblement impactée avec une valeur du RSI allant de 29 à 31.

Conditions de validation du test

Ce test va se dérouler en deux étapes :

1. Test unitaire
Pour valider le test du stochastique, il faudra d’abord tester chaque variable une par une en faisant varier légèrement leur valeur.

2. Test global
Dans un second temps, il faudra lancer un test global qui testera toutes les combinaisons des légères variations de valeurs intégrant toutes les variables directement impliquées dans l’ouverture et la gestion d’une position.

Ce que l’on cherche à savoir
Ce qu’on cherche à vérifier, c’est que votre système est légèrement sous-optimisé, c’est à dire qu’il a un degré de liberté suffisant pour supporter un léger changement dans l’environnement.


Test unitaire du Stochastique



Problématique initiale

Lorsque l’on utilise l’optimiseur des variables, ce dernier choisi naturellement la valeur pour laquelle la performance de la stratégie est la plus élevée. Cela est très tentant de choisir cette valeur mais le problème est qu’elle est souvent suroptimisée.

Sur le graphique représentant la courbe des gains que je vous ai présenté au chapitre « Algorithme du Gradient Descent » de mon livre, on voit très nettement que la valeur générant le plus grand gain forme une sorte de pique :




La valeur de la variable représentée par le carré rouge sur ce graphique est de 102 et génère un gain supérieur à 600€.

Cependant la valeur qui la précède de seulement 1 (donc 101) aurait généré un gain de 500€.

Pour seulement 1 point de différence, la performance de la stratégie varie de plus de 20% !

Nous sommes donc dans un cas typique de suroptimisation, et la modélisation stochastique va nous aider à éviter ce problème.

Objectif du Test unitaire du Stochastique
Le test unitaire du Stochastique consiste donc à tester chaque variable une par une. Une légère variation de leur valeur ne doit pas entraîner une variation importante de la performance du système.

Lancement d’un test
Pour réaliser ce test il faut ouvrir l’optimiseur des variables et ajouter la variable que l’on souhaite tester.

Mais cette fois-ci, on définit un intervalle allant de la première valeur précédente jusqu’à la première valeur suivante avec un pas de sorte que seul ces trois valeurs soient testées (valeur précédente, valeur optimisée et valeur suivante).

Je vais reprendre l’exemple donnée au chapitre « Les valeurs orpheline » de mon livre, en testant les valeurs du RSI de 13 à 15 :




Interprétation du résultat
La valeur du RSI trouvées par l’optimiseur des variables n’aurait pas franchi le test unitaire du Stochastique car sa première valeur précédente et sa première valeur suivante ont fait basculer la performance du système en perte :




En fait le test unitaire du stochastique nous aide à savoir si la valeur que l’on teste n’est pas un minima entouré par des valeurs perdantes, car l’algorithme du Gradient Descent ne verrait pas nécessairement ce problème.

Il va maintenant falloir faire ce test sur chacune des variables qui joue un rôle dans l’ouverture ou la gestion d’une position. C’est un travail laborieux mais nécessaire car, ni l’optimiseur des variables, ni le Gradient Descent et ni le Walk-Forward ne peuvent voir ce problème.

Je vous conseille de dupliquer votre système pour créer une version spécialement dédiée à ce test et au test global du Stochastique.

Test global du Stochastique



Objectif du Test global du Stochastique
Le test global du Stochastique a un but un peu différent de celui du test unitaire. Son objectif principal consiste à tester le degré de liberté global de votre système de trading automatique.

Pour que ce test ait du sens, il faut au préalable vous assurez qu’il n’y a plus de valeurs orphelines dans votre système.

Pour réaliser le test global du Stochastique, il suffit de faire varier légèrement la valeur de l’ensemble des variables impliquées dans la prise de décision avec l’optimiseur des variables.

Cela pourrait avoir du sens de lancer un test global du Stochastique sur les variables impliquées dans l’ouverture d’une position, et un second sur les variables utilisées pour la gestion d’une position ouverte. Car on pourrait considérer qu’il s’agit de deux activités métiers distinctes.

Lancement du Test
Pour l’exemple, je vais lancer un test uniquement sur quelques variables afin de faciliter la lecture du résultat. Pour lancer un test, je vais ouvrir l’optimiseur des variables, et ajouter trois variables de mesure de volatilité qui dans mon code s’appliquent sur des périodes différentes :




Interprétation du résultat
Pour que le test soit validé, il faut que la majorité des combinaisons soient gagnantes. Je pense qu’il faudrait qu’au moins 80 % des combinaisons soient gagnantes.
Si la majorité des combinaisons sont perdantes, il y a clairement un risque que votre système est suroptimisé et que votre stratégie ne supporte pas un changement dans le marché.

Concrètement, le Test global du Stochastique permet de vous assurer que votre système va supporter le déplacement des minimas trouvés par l’algorithme du Gradient Descent.

Résultat du lancement du test Stochastique




Toutes les combinaisons sont gagnantes, le test est validé.

Conclusion sur la modélisation stochastique



• C’est un stress-test permettant de valider la robustesse d’un système.

• On vérifie que le système a un degré de liberté suffisant pour supporter un changement dans l’environnement.

• Ce test permet de détecter si un système est partiellement ou totalement suroptimisé.

• Ce test est généralisable à toutes les propriétés du système.


Pour aller plus loin



Sur l’article originale et dans mon livre, je vous donne des explications sur la généralisation du modèle et sur ses limites : https://artificall.com/prorealtime/stochastic-modeling-with-prorealtime/#Generalization-of-the-stochastic-modeling


Trading Automatique avec ProRealTime





Livre également en vente sur amazon : https://amzn.to/3QiQcPZ
(Version broché à venir)


A propos du posteur

  • 0
  • 0
  • 2
  • 0

Ajouter un commentaire

no pic

Commentaires

0 Commentaires