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

Attention à la suroptimisation

par Euraed » 28 sept. 2020 12:12

Il Futures 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
ExempleFauxOptimum.jpg (23.99 Kio) Vu 485 fois
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é.

Re: Attention à la suroptimisation

par takapoto » 28 sept. 2020 13:05

:top: Rappel indispensable et bien illustré

Re: Attention à la suroptimisation

par Ano782345 » 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
ExempleGradientRégulier.jpg (88.92 Kio) Vu 449 fois
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.

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 Ano782345 » 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

Re: Attention à la suroptimisation

par trappiste73 » 05 oct. 2020 08:32

Je viens mettre mon grain de sable comme d'habitude. Mais j'aborde les algos d'une toute autre façon : point de recherche de boîte noire qui marcherait par tous temps et indéfiniment mais beaucoup plus simplement celle de récurrences temporaires. Le backtest à plus d'un ou 2 ans ne m'intéresse pas du tout.
Bien sûr, la suroptimisation est un des pièges et l'observation des variables voisines à celles choisies (comme par exemple sur le TP ou SL), un des moyens de l'éviter ...
Je ne vais pas radoter : c'est juste pour dire que, comme en trading manuel, plusieurs approches sont possibles.

J'ai toujours autant de mal à bien comprendre les intervenants de ce forum passionant - "les récurrences temporaires"

par VB6backtester » 08 oct. 2020 08:28

J'ai toujours autant de mal à bien comprendre les intervenants de ce forum passionant - "les récurrences temporaires" ? pourquoi pas mais il te faut bien un minimum d'échantillons pour qualifier une méthode de test de ces récurrences ....

Re: Attention à la suroptimisation

par trappiste73 » 08 oct. 2020 09:11

oui : 1 à 2 ans ;)

Re: Attention à la suroptimisation

par trappiste73 » 08 oct. 2020 11:31

Il me semble que les équations mathématiques, raisonnements statistiques et probabilistes et autres objets séduisants jouent le rôle en trading auto des indicateurs en manuel.
Bon à la rigueur le Walk Forward Efficiency ...
Mais si j'ai toujours autant de mal à comprendre les chercheurs de boîte noire, je suis leurs aventures. :)

Re: Attention à la suroptimisation

par Benoist Rousseau » 08 oct. 2020 11:42

oui pas plus de 2 ans, plus cela ne sert à rien et on backteste sur un marché qui n'existe plus car il mute. C'est pour cela que quand je vois des backtests à 20 30 ans cela me fait hurler de rire. Il n'y avait même pas le minitel :lol:

Le marché a des cycles ne backtester pas trop profond, cela n'a aucune valeur. Rien que du bon sens quand on est un trader actif et discrétionnaire, on voit bien que le marché change et qu'on ne peut plus trader en 2020 comme en 2017

Re: Attention à la suroptimisation

par Euraed » 08 oct. 2020 17:48

Le comportement des marchés à l'avenir est inconnu (si ce n'est que sur le très long terme les indices sont toujours en hausse). Par des effets de cycle ou autres, peut être seront ils semblables à d'autres configurations du passé, ou pas, ou plus ou moins.
Au même titre que les marchés du futur n'existent plus, ceux de demain n'existent pas encore.
Peu importe, l'objectif d'une solution algorithmique étant d'être adaptative au nouveau contexte imposé, inconnu jusqu'à l'instant où il apparaît.
Que cette adaptation se fasse par un processus permanent de création/sélection manuel d'algo(s) adapté(s) au contexte de l'instant (solution Trappiste) ou directement dans le code (ce que je préfère).

Quoiqu'il en soit cette file ne propose pas une philosophie d'approche du trading automatique mais une méthode d'évaluation de robustesse d'algo face au problème et danger de la suroptimisation, que cela soit sur 1 mois, 3 ans ou 10 ans.

Tester sur 10 ans ne devrait pas correspondre à une validation statistique par le passé, ce sera le plus souvent une source de désenchantement, mais à une sollicitation de l'algo face à de multiples situations. Une longue durée permettant d'avoir une bonne variété de configurations, de sollicitations variées.
C'est donc une sorte de méthode de Monte Carlo empirique et réduite.

En tout cas, cette méthode permet de démontrer aisément que tout algo à logique simple ne tient pas dans la durée.
Exemple de logique simple: si état indicateur x alors action y.

Re: Attention à la suroptimisation

par trappiste73 » 08 oct. 2020 18:04

Je suis tout à fait d'accord.
Exemple d'un style d'algo simplet qui me plait :
Si tweet de Trump alors volatilité accrue à la baisse ou à la hausse, TP, SL.
On se doute bien qu'avant son statut de président : backtester n'a pas de sens. Et que j'espère bien que d'ici peu, il sera à jeter à la poubelle. :)

Re: Attention à la suroptimisation

par Euraed » 08 oct. 2020 18:30

Oui, backtester sur un algo 'Trump' avant son élection n'a aucun sens, mais backtester un algo qui a pour but de traiter des variations violentes, quelle qu'en soit l'origine, l'englobera lui et ses successeurs ou les déclarations de président de banque centrale, les annonces de Covid 21 ou les déclarations surprenantes d'autres personnages influents d'il y a 5 ans.
L'estampille Trump ou Tartempion n'ayant finalement que peu d'intérêt, seul l'effet provoqué étant intéressant et significatif pour le trader. On pourra donc s'entraîner grâce à tous les fauteurs de troubles du passé :mrgreen:

Re: Attention à la suroptimisation

par trappiste73 » 08 oct. 2020 18:37

Oula : trop compliqué pour moi, je reste uniquement sur Trump. ;)

Re: Attention à la suroptimisation

par Euraed » 10 oct. 2020 15:44

Toujours dans un esprit d'utilité collective, je viens de préparer un exemple qui montre la démarche à l'aide d'une stratégie de trading simple.

Le code du programme suit la logique de trading suivante:

Si la moyenne mobile rapide croise à la baisse la moyenne mobile lente, alors vente
Si la moyenne mobile rapide croise à la hausse la moyenne mobile lente, alors achat

Ici j'ai pris des moyennes mobiles sur des bougies de 10 minutes. Moyenne lente sur 30 bougies, Moyenne rapide sur 10 bougies.
Les pertes et profits sont déterminées lors de l'ouverture des ordres en fixant des SL et TP fixes.

On n'autorise qu' UN SEUL ordre ouvert simultanément.
Le système ne peut donc prendre de nouvel ordre qu'une fois que le précédent a été fermé, en profit ou en perte. Pas d'autre intervention.

Je le fait tourner sur le Dow Jones de 2017 à aujourd'hui.

Et voici typiquement les ordres qu'il passe (en haut le Dow Jones et en bas l'évolution de l'equity).
Précision, je présente les résultats avec des ordres à 1 USD le point. Ici l'échelle de temps est de 4H par Bougie.
On voit bien l'enchaînement des ordres. Il se passe peu de temps entre une clotûre et une nouvelle ouverture car la logique d'ouverture d'ordre décrite ci-dessus n'est pas très restrictive.

Le Dow étant autour de 20 000 points, on peut se dire que l'on va aller chercher environ 2% ou un peu plus d'évolution du cours sur chaque trade. Disons alors 500 points, c'est rond et sympa.
Que mettre comme SL ? disons que l'on va prendre environ 3 fois moins de perte si les cieux sont couverts, on arrondit et on fixe un SL à 150 points.
Voyons voir ce que cela donne en equity de début janvier 2017 à maintenant... (post suivant)

Sujets similaires
L'euphorie des gains sur Forex: !!! Attention !!!
par Les3BB » 29 janv. 2013 21: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 Amarantine » 30 oct. 2014 09:21 (1 Réponses)
Attention arnaque Algorates
par George Henry » 17 déc. 2014 13:58 (2 Réponses)
Attention à ce virus
par DarthTrader » 04 févr. 2015 20:20 (1 Réponses)
A l'attention de Benoist
Fichier(s) joint(s) par Altair » 23 avr. 2015 11:10 (12 Réponses)
Attention le 30 juin à 23H59 à la seconde de recalage
Fichier(s) joint(s) par falex » 01 juin 2015 13:37 (4 Réponses)
!!!Attention!!! Images et phrases subversives
Fichier(s) joint(s) par chifounou » 05 juil. 2015 14:14 (81 Réponses)
BROKER PLUS500 Attention DANGER
par Amarantine » 23 juil. 2015 17:25 (2 Réponses)