Algorithme et backtest

Lorsque je me suis intéressé au Momentum, mon idée était de simplifier le temps passé à investir au maximum. Étant ingénieur de formation, j'ai donc cherché à développer un algorithme qui analyse une liste d'actions (plus de 500 aux USA et près de 300 en Europe) et m'indique celles qui sont les plus intéressantes à acheter.
La stratégie Momentum classique basée sur la performance des 3, 6 et 12 derniers mois ne me donnait pas satisfaction, j’ai donc cherché à identifier une configuration plus intéressante en regardant les évolutions journalières, hebdomadaires et mensuelles.
Biais du survivant
Il était important pour cela d’utiliser des valeurs boursières cohérentes, sans biais du survivant. Celui-ci a lieu lorsqu’on prend un panier d’actions “survivantes” comme Domino’s Pizza par exemple, présente dans le SP500 en 2024, puis on regarde ce que donnerait l’algorithme avec ce panier d’actions “survivantes” depuis 1995 par exemple. Le problème, c’est que Domino’s Pizza n’est inclus dans le SP500 que depuis Mai 2020 ! Et a une tendance haussière de 40% par an de 2008 à 2020 (ou 4800% au total), et 4% par an de 2020 à 2025 (ou 30% au total) ! On voit le biais de performance que cela peut générer.

De mon expérience, la performance d’un backtest est multipliée par deux pour un backtest sur 20 ans, si aucun mécanisme n’est mis en place ! On peut en effet trouver des backtests sur internet mais souvent, ils ne prennent pas en compte ce biais et il devient facile de penser avoir trouvé une martingale avec 50% de rendement voire plus ! Il a donc fallu utiliser pour chaque mois et chaque année de backtest, une liste des actions incluses au sein de l’indice pour ce mois ou cette année en particulier.
Optimisation
Puis, durant de nombreuses soirées et week ends de travail étalés sur presqu'un an, j'ai exécuté ce qu'on appelle un backtest, pour vérifier si cet algorithme propriétaire appliqué aux valeurs des actions sur les 20 ou 30 dernières années était pertinent dans le temps, et s’appliquait aussi bien au marché américain qu'européen. Il a fallu pour cela tester de nombreuses configurations différentes, avec des backtests pour chaque configuration dans le but de trouver celle qui atteint la meilleure performance avec la volatilité la plus acceptable pour un nombre d’actions donné sur les 20 ou 30 dernières années.
J’ai aussi travaillé à optimiser l’algorithme de façon à ce que les changements d’actions aient lieu le moins souvent possible. Pour cela, il a fallu identifier les actions ayant le plus de potentiel pour rester au moins quelques mois au sein du portefeuille. Le résultat étant une moyenne de changement d’actions chaque mois d’environ 27%. Donc pour un portefeuille de 10 actions, en moyenne 2 à 3 actions seront vendues chaque mois, et 2 à 3 actions seront achetées chaque mois. Ce qui limite le travail de rééquilibrage ainsi les frais, donc augmente également la performance.
Cet algorithme a enfin l'avantage d'automatiser l'analyse pour éviter tout biais psychologique. En effet, j’avais jusqu’ici tendance à suivre mon instinct pour investir, ce qui n’était pas toujours judicieux, et me coûtait du stress lors de la prise de décision sur “Est-ce que je dois vendre/acheter ?”. Désormais, via cet algorithme, je sais que sur le temps long (quelques années) la décision d’investissement sera à priori positive, ce qui me libère du temps pour autre chose, donc augmente également la performance horaire (performance rapportée au temps passé).
Panier d'actions pour le backtest
Pour information, le panier d’actions que j’ai utilisé pour mon backtest est le suivant pour les USA:
- SP500 (500 plus grandes sociétés cotées aux USA)
Et pour l’Europe:
- SBF120 (120 plus grandes sociétés cotées en France)
- Dax40 (40 plus grandes sociétés cotées en Allemagne)
- Bel20 (20 plus grandes sociétés cotées en Belgique)
- Ibex35 (35 plus grandes sociétés cotées en Espagne)
Il était assez compliqué de trouver des données boursières fiables sur les ajouts et retraits d’actions dans l’indice sans exploser le budget. J’ai donc exclu le Nasdaq (sociétés cotées dans la Tech aux USA), le Aex25 (Pays-Bas), le MidDax (complète le Dax40 allemand) ou le Stoxx600 (Europe). Je me suis en plus limité au plus grand marché qu’est la zone Euro, donc j’ai mis de côté le Royaume-Uni ou la Suisse par exemple. En effet, même avec un CTO, alterner entre différentes monnaies induit des frais de changes qui ne sont pas anodins, donc à éviter en plus de complexifier le rééquilibrage.
Sont aussi supprimés les doublons comme ASML qui est présent sur plusieurs marchés. L’idée étant de privilégier des actions liquides, facilement disponibles pour la plupart dans des enveloppes classiques (AV ou PEA) et à défaut sur compte titre ordinaire (CTO).
Panier d'actions pour les portefeuilles
A l’issue de ce backtest, j’ai donc pu mettre en place différents portefeuilles que je propose sur ce site et cette Newsletter, composés d’une sélection de 5, 10, 15 ou 20 actions, et basés sur les indices évoqués au dessus et complétés. Il y a donc pour les USA (avec 500 valeurs):
- SP500
Et pour l’Europe (avec près de 300 valeurs):
- SBF120 (120 plus grandes sociétés cotées en France)
- Dax40 et MidDax (90 plus grandes sociétés cotées en Allemagne)
- Bel20 (20 plus grandes sociétés cotées en Belgique)
- Ibex35 (35 plus grandes sociétés cotées en Espagne)
- Aex25 (25 plus grandes sociétés cotées aux Pays-Bas)
On pourrait reprocher au SBF120 ou au MidDax d’être notamment composés de “petites” valeurs à moins d’un milliard de capitalisation seulement, c’est vrai mais c’est le cas pour une dizaine de valeurs pour ces deux indices à l’heure où j’écris ce texte, donc j’estime que ces valeurs sont suffisamment liquides pour un petit épargnant. Il sera toujours envisageable de supprimer ces valeurs de sa sélection au besoin.
De plus, les backtests avec le SBF120 ou uniquement avec le CAC40 ont permis de mettre en évidence une bien meilleure performance avec le SBF120 (par exemple la performance brute pour un portefeuille de 10 actions tombe à 18% avec uniquement le CAC40 contre 26% avec le SBF120 !).
Graphiques en échelle log ou linéaire ?
La majorité des graphiques présentés par la suite le seront en échelle log, en effet elle permet d’appréhender au mieux une performance dans le temps. De plus, une tendance avec intérêts composés s’affiche sous forme de droite en échelle log, ce qui permet une lecture très facile.

En comparaison voici un graphique en échelle linéaire avec les mêmes données, sur la même période de temps, impressionnant mais impossible d’en conclure quoi que ce soit, en début de graphique tout est compressé en bas, et en fin de graphique tout est compressé vers le haut.

Limites du backtest
Quelques limites de ce backtest sont à souligner:
- Lors d’un rééquilibrage, pour l’exemple d’un portefeuille de 10 actions donc avec 10% investis sur chaque action, au bout d’un mois une action peut avoir augmenté ou diminué. Mon backtest comptabilise cette performance mais considère (pour simplifier les calculs) que le portefeuille est rééquilibré “gratuitement” donc si une action a surperformé, une petite partie du capital investi dans l’action sera considéré comme revendu, et ce capital sera utilisé pour être réparti sur les autres actions au prorata.
- L’algorithme considère aussi que toutes les actions peuvent être achetées par fractions, donc un portefeuille de 10 000€ investi sur 10 actions et positionné par exemple sur une action au prix unitaire de 1500€ aura 0.66 actions ce qui n’est pas dans la pratique possible. Il est donc parfois compliqué sur certaines actions de se positionner, sauf en assurance vie qui autorise ce genre de pratique.
- Pour les calculs de fiscalité, l’algorithme considère que toutes les actions sont éligibles au PEA, dans la pratique les foncières en sont exclues mais souvent présentes en assurance vie.
- Le backtest est effectué en négligeant l’effet €/$, donc la performance pour un portefeuille aux USA sera en $ et sera impactée si les fonds sont rapatriés en €. Je considère en effet qu’il est illusoire d’espérer anticiper sur l’évolution de l’€/$, celui-ci étant dépendant principalement de décisions politiques.
- Les valeurs utilisées sont celles de clôture de fin de mois, mais dans la pratique les achats et vente auront lieu le lendemain avec un léger écart (à la hausse ou à la baisse).
- Certaines actions ont fusionné, ou ont été délistées comme par exemple Yahoo qui a été en partie acquise par Verizon et Altaba et dont les données boursières ne sont plus disponibles facilement aujourd’hui (à moins de payer une licence de données boursières à quelques milliers d’euros bien sûr). Ces actions sont donc absentes du backtest.
Prochain article: Système anti-drawdown