ProRealTime
Pour partager sur le trading automatique, nos algorithmes, nos backtests

Attention à la suroptimisation

par Euraed » 28 sept. 2020 12:12

Il fut un temps où il y avait pas mal de codeurs sur le forum et il y avait une antienne répétée à l'envi, à juste titre: attention à la suroptimisation.
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.
ExempleFauxOptimum.jpg
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é.
Seuls les membres inscrits peuvent voir les fichiers.
L'inscription au forum prend moins de 30 secondes.

Re: Attention à la suroptimisation

par takapoto » 28 sept. 2020 13:05

:top: Rappel indispensable et bien illustré

Re: Attention à la suroptimisation

par AlgoFlex » 28 sept. 2020 13:39

Oui c'est vrai, Je travaille plus que le h1 comme base avec un tp de deux fois le sl minimum, sur 8ans et croise les résultats échantillonnage, j'évite la suroptimisation qui n'est pas assez flexible, ses deux derniers mois j'ai générer cent trente millions de stratégies et en est gardé une centaine comme base, je vais encore affiner pour en garder que 5 pour l'après Trump.

Re: Attention à la suroptimisation

par Motiyo » 28 sept. 2020 14:22

C'est vrai et cela pose aussi un problème pour tester manuellement en dehors de tout robot.
La solution se trouve probablement dans un paramétrage variable en fonction de la volatilité pour que les stops soient adaptés aux circonstances du moment (et ça devrait être valable aussi pour les paramètres des indicateurs)
Peut-être serait-il possible que le robot calcul les stops les mieux optimisés pour chacun des trades pour établir une moyenne de ces valeurs sur un temps donné afin d'effectuer lui-même l'adaptation.

Re: Attention à la suroptimisation

par Francis1 » 28 sept. 2020 14:28

:top:

Re: Attention à la suroptimisation

par Euraed » 30 sept. 2020 11:18

Identifier les algos dangereux (résultats non stables et aléatoires) est une chose et le calcul des matrices de résultats sur longue durée est un bon outil de détection.
A contrario voici un exemple de backtest d'algo (Dow Jones de 2017 à sept 2020) où l'on constate des gradients d'évolutions régulières sur de larges plages paramétriques.
ExempleGradientRégulier.jpg
Dans un tel cas on peut déjà être plus serein sur la robustesse des résultats. On perçoit que l'algo est passé au travers de multiples phases de marché (voir les cours DJ de 2017 à 2020) avec un comportement homogène quelle que soit la valeur des deux paramètres choisis.

Pour ma part c'est là l'une des qualités requises et des tests essentiels à mener avant de s'enthousiasmer sur sa dernière production en trading algorithmique.

Bien entendu ce type de matrice de résultats qui ne considère que l'aboutissement brut après 4 ans n'informe pas sur l'évolution intermédiaire de l'equity et notamment de sa volatilité. C'est un autre sujet et filtre sélectif de ses productions de robots.
Seuls les membres inscrits peuvent voir les fichiers.
L'inscription au forum prend moins de 30 secondes.

Re: Attention à la suroptimisation

par Euraed » 30 sept. 2020 12:00

@Motiyo
Selon ma propre expérience, c'est une option possible, parfois souhaitable, parfois non. Toutefois avant de l'aborder encore faut il avoir compris quel est l'impact statistique des règles d'adaptation du paramètre que l'on va chercher à moduler selon le contexte.
En ce sens l'étude systématique de l'impact d'un paramètre que l'on fera varier, tout en figeant tous les autres paramètres, sera utile pour comprendre le rôle de ce paramètre dans le contexte de l'algo testé.
Toutefois en présence de multiples paramètres variables les interactions entre paramètres pourront être multiples (ce qui complexifie la chose puisqu'alors il faut considérer un espace à n dimensions).
Dans la pratique explorer l'univers des possibles en 'manuel' sera extrêmement fastidieux, voire même impossible ou du moins très limité. C'est l'atout des simulations numériques qui vont permettre de projeter en un temps raisonnable les résultantes de ses compréhensions, intuitions et hypothèses.

Ainsi il n'est pas rare de constater que le résultat quantitatif de l'adaptation dynamique envisagée soit en fait une fausse bonne idée, quand bien même elle soit peut être psychologiquement plus confortable, surtout en trading discrétionnaire.
L'un des exemples est le trailing stop.
Seules des simulations exhaustives permettront d'établir s'il y a statistiquement amélioration ou détérioration du comportement escompté.

Quoiqu'il en soit, même avec l'aide des simulations numériques, c'est un parcours très long et méthodique, on pourrait même dire une ascèse.

Re: Attention à la suroptimisation

par VB6backtester » 01 oct. 2020 16:52

Tout simplement bravo ! il faudrait que je programme mon soft de backtest pour avoir cette visu 2D. J'ai tendance à régler mes variables 1 par 1.

Re: Attention à la suroptimisation

par AlgoFlex » 01 oct. 2020 21:11

La robustesse d'un algo est un sujet intéressant, j'accorde plus trop d'importance aux montecarlo c'est un indicatif, par contre les temps est symbole proche sont parlant sur la résistance je trouve, par exemple EUR/USD en h1 peut se tester en GBP/USD 1h/30mn pour entrevoir une limite possible.

Re: Attention à la suroptimisation

par VB6backtester » 04 oct. 2020 17:43

Comprend pas

Sujets similaires
attention a l'or
par G'sT » 15 oct. 2012 21:15 (3 Réponses)
L'euphorie des gains sur Forex: !!! Attention !!!
par Les3BB » 29 janv. 2013 22:02 (4 Réponses)
Value Basket.com....attention arnaque !
par frigolite » 05 juil. 2014 12:16 (4 Réponses)
Attention avec multiple ProOrder
par clodreb » 14 août 2014 15:03 (2 Réponses)
ATTENTION discours de JANET YELLEN
par Eversa » 30 oct. 2014 10:21 (1 Réponses)
Attention arnaque Algorates
par George Henry » 17 déc. 2014 14:58 (2 Réponses)
Attention à ce virus
par DarthTrader » 04 févr. 2015 21:20 (1 Réponses)
A l'attention de Benoist
par Altair » 23 avr. 2015 11:10 (12 Réponses)
Attention le 30 juin à 23H59 à la seconde de recalage
par falex » 01 juin 2015 13:37 (4 Réponses)
!!!Attention!!! Images et phrases subversives
par chifounou » 05 juil. 2015 14:14 (81 Réponses)