Je poste à nouveau un message de ce type à l'intention de tous les nouveaux développeurs de robots de trading.
Faire gaffe à l'enthousiasme des premiers pas, notamment aux backtests sur des périodes courtes (1 an voire moins), et surtout à ce que l'on appelle la suroptimisation.
La suroptimisation est la recherche du jeu de paramètres qui permettront d'obtenir un résultat maximisé. Ces paramètres peuvent être par exemple une amplitude de TP et SL, une longueur de moyenne mobile, un seuil de rsi ou de macd, un type de moyenne mobile etc, la liste des valeurs paramétriques de tel ou tel indicateur étant sans fin.
Voici une image résumant la problématique. Il s'agit d'une matrice de résultats en fonction de la variation de deux paramètres TP et SL (ici exprimés en centième de points TP 50000 = TP 500, le sous-jacent qui a servi à bâtir cet exemple est le Dow Jones).
On visualise donc immédiatement l'espace des résultats - profits ou pertes - selon ces deux dimensions de TP et SL.
On voit apparaître un point particulier dans cet espace à deux dimensions TP/SL: le TP600 avec SL 400.
Et surtout ses voisins sont clairement moins 'performants', voire perdants
C'est là une situation préoccupante et il ne faut surtout pas se réjouir d'avoir trouvé un optimum hyper rentable car il ne s'agit en fait que d'un artefact statistique.
Il se trouve que par hasard l'évolution du sous-jacent a été momentanément en synchronisation avec votre algorithme.
En général il suffira pour s'en convaincre - si nécessaire - de tester l'algo sur une autre période pour vérifier que les résultats ne sont en fait pas du tout stables.
En trading algorithmique la suroptimisation est un obstacle (et danger) permanent.
Et plus la période testée sera courte (moins de quelques années), plus on y sera exposé.