Menu Fermer

Backtest de l’opportuniste : inversion de croisements de moyennes mobiles

“It is better to invert reality than to copy it.”
Giuseppe Verdi

Au fur et à mesure qu’on avançait sur les backtests des moyennes mobiles, voyant à quel point les performances étaient nulles, j’ai dit pour plaisanter (ou pas :)) “Franchement ! Avec des performances aussi mauvaises systématiquement, peut-être qu’on devrait essayer d’inverser les sens des signaux d’achat / vente ! Si ça se trouve on serait au top de la perf !” Ce n’est pas ce que j’ai dit texto, mais l’idée est là 🙂

Qu’à cela ne tienne, ce n’était pas des paroles en l’air ! De manière générale, il n’y a pas de stratégie ou de modèle trop pourri pour ne pas être testé. Une intuition, une idée, une expérience personnelle sur le marché, toutes ces choses ont une légitimité à être testées pour être automatisé. Il n’y a pas de mauvaise stratégie, il n’y a que des stratégies qui ne fonctionnent pas. Je préfère tomber sur une stratégie complètement incongrue, mais qui passe les backtests avec de bonnes performances et sans biais, plutôt que m’en remettre à une stratégie “universellement reconnue comme bonne”, mais dont les backtests prouvent le contraire.

Qui plus est, on a bien vu que même les soi-disant bonnes idées, quand elles sont un peu éprouvées correctement, elles ne tiennent pas vraiment la route non plus.

Prérequis

Cet article, c’est juste celui des Stop Loss / Take Profit dans l’autre sens, il n’y a donc pas d’autre prérequis : les points de sorties (Stop Loss et Take Profit)

Comme d’habitude, il faut dérouler la pelote de laine des prérequis : backtest des croisements de moyennes mobiles, principes de backtest…

Je vais y rajouter les notions de risques également, car nous verrons que certaines choses vont nous interpeller : Levier simple, Drawdown et Margin Call

Ainsi que l’Alpha pour une meilleure évaluation des stratégies : le coefficient Alpha

Execution

Rien de particulier ici en ce qui concerne la stratégie en elle-même. On est toujours dans du croisement de moyenne mobile, avec des périodes, des Stop Loss et des Take Profit qu’on va faire varier de temps en temps.

A la base, il est de notoriété publique que quand la moyenne courte croise la moyenne longue à la hausse c’est un signal d’achat et vice-versa. Les backtests montrent que ce n’est pas aussi clair, à fortiori quand on commence à mettre des points de sorties spécifiques. Bien souvent les Stop Loss touchent avant les Take Profit.

Rappel sur le crossover période 50-100, avec des Stop Loss / Take Profit à 3% tous les  2 :

Pas génial… Plutôt égal, donc je ne suis pas certain qu’en inversant, on en sorte un gain substantiel :

Quand même… On sort une petite perf à 15%… Humm… Le principe des crossover serait-il un mythe jamais éprouvé ? La réalité a l’air de montrer que le comportement est l’inverse de ce qui est communément admis.

Essayons avec le même SL / TP, mais avec des périodes de 20 et 50 :

Un beau graphe de performances bien pourries… Une belle décroissance régulière, finissant sur quasiment 40% de pertes. Et si on inverse le sens des signaux ?

Waow ! Ce n’est plus pareil du tout là… Une courbe croissante régulière, avec quelques corrections, et de bons pics… Voyons le drawdown pour voir si le rendement obtenu n’est pas juste le prix d’un risque démesuré :

Wooow ! C’est de mieux en mieux… On ne subit quasiment pas de drawdown. Dans un sens, c’est plutôt logique car on a mis des Stop Loss à 3%, du coup on ne s’autorise pas de drawdown plus elevé. Et comme à priori on a beaucoup plus de trades gagnants, on ne subit pas de gros drawdown dus à une succession de trades perdants.

On a un stratégie qui touche les 60% de gains sans levier (soit un peu plus de 6% annualisé) et qui n’a pas de drawdown… En levier 10 (levier version grand-mère, sans intérêt :)) c’est 600% de gains, soit 27% annualisé.

Durant cette même période, le CAC passe de 3800 à 5300 environ, soit 40% de gains environ. Avec les 60% de notre stratégie, notre Alpha est de 1.5, ce qui est très honorable. On fait 50% de mieux que notre benchmark.

Conclusion

Il vient de se passer quelque chose d’assez fou ici. On est parti d’une stratégie communément admise, pour se rendre compte que finalement elle ne fonctionnait absolument pas. Au vue des performances réellement minables, je m’étais dit pour rigoler qu’on pourrait essayer d’inverser cette stratégie. Je ne m’attendais pas à trouver quelque chose comme ça. Il semblerait que le lag joue en notre faveur dans ce cas là. Les cours étant globalement cycliques (alternant des phases de montées et de descentes), tout en suivant une certain tendance, on a l’impression qu’on peut utiliser le lag. Au début on lui reprochait de ronger nos bénéfices potentiels, mais là on dirait qu’il nous donne une sorte de Go pour le retournement.

Je ne vais pas continuer sur cet article pour voir les autres configurations et essayer de voir si d’autres paramètres fonctionnent ou non. (C’est d’ailleurs quelque chose que je peux vous inviter à faire par vous-même) On est tombé par hasard sur une possibilité de stratégie rentable, et ce serait dommage de ne pas l’exploiter. Malheureusement, il y a encore beaucoup d’éléments qu’il nous faut aborder pour déterminer si elle est réellement viable ou non, et je pense en particulier à l’overfitting. A ce stade, il est important de savoir si c’est juste un “coup de bol” ou si c’est vraiment une stratégie rentable indépendamment du jeu de données, et qui n’est pas trop sensible à une infime variation de paramètres.

Néanmoins, en attendant, je ne peux que vous renouveler ce petit avertissement sur ce qu’on lit à propos des “superbes stratégies rentables” ou de ces “indicateurs qui vont nous rapporter xx% par an”. Tant que ce n’est pas corroboré par l’expérience et des tests dans de vrais conditions, ça ne vaut rien. Ce n’est rien de plus que des idées reçues, ou des succès très dépendants du jeu de données ou de l’instrument. Preuve : l’idée la plus commune sur les moyennes mobiles se révèle être l’inverse de la réalité sur l’indice majeur Français… A partir de là, j’ai envie de dire qu’on ne peut plus avoir confiance en quoique ce soit !! 🙂

1 Comment

  1. Ping :Machine Learning, le premier backtest : régression linéaire o/ – AutoQuant

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *