L'un des obstacles rencontrés est ce que l'on nomme la sur-optimisation d'un algorithme sur une période donnée, donc par définition limitée dans le temps.
Lors de cette période de test, le marché traité passera par de multiples phases et les enchaînera les unes après les autres (exemple: consolidation, sortie de range, triangle, trend etc). Or lors d'autres périodes les configurations rencontrées seront d'amplitudes, de durées, de fréquences différentes.
Ainsi le premier piège des backtests est de se laisser entraîner dans la recherche des paramètres qui maximisent le résultat du test sur la période déterminée.
Malheureusement ce qui paraît optimum dans un contexte spécifique risque fortement de ne plus l'être dans un autre contexte, ici une autre période de test, dans le passé ou... l'avenir, notamment lorsque le robot sera propulsé dans un futur environnement réel.
La suroptimisation a souvent pour caractéristique d'être fragile et c'est ce qui va nous permettre d'en diagnostiquer la présence. L'equity flotte (varie) beaucoup et surtout les valeurs proches des paramètres testés ne permettent pas de reproduire les résultats.
Voici une illustration graphique du principe
Sur l'axe horizontal des x, nous avons le paramètre que l'on va faire varier. Par exemple, cela peut être un SL, un TP, un écart TP-SL, un ratio TP/SL, une taille d'ordre, un momentum, un seuil d'indicateur x etc. Peu en importe la nature, c'est le paramètre variable dont on souhaite observer l'influence sur le résultat.
L'axe vertical y indique la performance, souvent il va s'agir de l'equity. Notons au passage que la performance pourrait aussi être autre chose tel que un max DD, absolu ou relatif, un profit factor etc.
La figure ci-dessus montre deux exemples, l'un avec une courbe en rouge, le second en bleu.
On y voit des pics de performance isolée. Si l'on fait varier le paramètre x, à la hausse ou à la baisse, la performance décline de façon significative. On dira que la dynamique est élevée.
En revanche on note aussi la présence de plateaux de performance, éventuellement moins élevée que les pics et surtout avec des zones de valeurs du paramètre x assez distinctes du/des pics.
Ce sont ces zones qui sont un indice d'une probabilité forte d'être face à une logique décisionnelle fournissant des résultats robustes, contrairement aux pics qui devraient immédiatement alerter le backtesteur.
Les pics sont la signature caractéristique d'une suroptimisation.
La meilleure option sera souvent de se placer au centre du plateau, même s'il ne s'agit pas du maximum du plateau.
Ainsi je conseille fortement aux apprentis backtesteurs de réaliser ces courbes de performance en faisant varier les paramètres à tester sur de vastes plages.
C'est très long et énergivore mais ce sera une protection contre des désillusions ultérieures et cela permettra aussi de mieux comprendre pourquoi les perfs montent ou baissent et ce qu'il faudrait changer. Cela invite également à explorer des voies que l'on n'avait pas envisagées spontanément.
Bons tests !