Mon parcours et mes projets en datascience


Analyse et comparaison de différents produits financiers


Avant propos

Je ne suis pas conseiller financier, donc pas habilité à donner des conseils en ce domaine. Cet exposé est à but purement pédagogique et ne constitue en aucun cas un conseil en investissement.

La problématique de l'investisseur

Epargner c’est renoncer à dépenser de l’argent aujourd’hui pour le dépenser dans un futur plus ou moins proche, c’est différer sa consommation dans le temps. Si la valeur nominale de l’épargne peut être garantie contre une faible rémunération (livret A par exemple), il subsiste deux risques : voire la valeur réelle de son argent se déprécier avec l’inflation et ne plus être en mesure de profiter de l’argent de son épargne.

Investir c’est acheter un produit financier (action, obligation) en espérant le revendre plus cher. Le prix des produits financier varient au cours du temps et le risque de voir la valeur de son investissement réduite à zéro n’est pas négligeable.

Pour contrer ce risque, l’adage veut que l’on ne mette pas tous ses œufs dans le même panier : il est préférable d’acheter plusieurs produits financiers suffisamment différents pour que les gains soient supérieurs aux pertes. L’autre pratique à mettre en place est de régulièrement réajuster les actifs que l’on possède dans son portefeuille : en racheter certains, en vendre d’autres.

Cette page va montrer comment choisir la composition de son portefeuille et comment arbitrer régulièrement sa composition avec des outils développés en Python.

Note : En bourse un investisseur peut acheter des actions ou obligations de manière individuelle ou adhérer à un fond géré par des professionnels. Dans ce dernier cas l’adhésion et le retrait prennent du temps car les gérants doivent calculer la valeur liquidative de la part de l’individu pour augmenter le capital du fond ou le réduire. De plus, les frais de ces fonds sont élevés (2% du capital payable annuellement). Il existe un produit financier nommé Exchange Traded Fund (ou ETF) qui représente une part de fond à capital fixe et qui peut être vendu sur le marché comme une action, c’est-à-dire immédiatement si un acheteur est présent. L’intérêt des ETF est qu’ils peuvent copier un indice boursier comme le CAC40 ou le SP500 et il a été montré que sur le long terme les fonds gérés par des professionnels ne font pas mieux que l’indice boursier de référence d’un pays.

Optimiser l'allocation d'actifs : Harry Markowitz

Cet américain a révolutionné la gestion financière en 1952 en introduisant sa théorie moderne du portefeuille.

Le paradigme est de considérer non pas le prix des actifs mais leur rendement (variation du prix) et de considérer celui-ci comme une variable aléatoire. Ainsi il est possible de calculer :

La théorie va plus loin qu'une simple transformation. Markowitz fait l'hypothèse que les variables aléatoires suivent une loi normale. En effet, l'espérance et l'écart-type de plusieurs variables aléatoires suivant des lois normales se calculent facilement.

Soient i et j des indices se référant aux actifs i et j ainsi que p l'indice se référant au portefeuille, et en considérant que les actifs suivent une loi normale, alors : Où E(Rp) est l'espérance de performance du portefeuille p, E(Ri) est l'espérance de l'actif i.
Var(Rp) est la variance du portefeuille p, Var(Ri) la variance du portefeuille i et Var(Rij) la covariance des actifs i et j.
Wi est le poids de l'actif i dans le portefeuille (sa fraction).

La problématique est désormais de trouver le vecteur W, la répartition des actifs qui minimise Var(Rp) en garantissant une espérance E(Rp) à une valeur souhaitée :

W = arg ( minimize( Vol(Rp) ) )
s.c. E(Rp) = Rmin

Ce type de problème mathématique se résoud bien avec la méthode des moindres carrés par exemple.

Il s'avère qu'en pratique la rentabilité des actifs ne suit pas une loi normale, ce qui rend la théorie fragile dans les faits.

Analyse avec Python

Présentation des données

Grâce à Python, à la librairie pandas et aux outils proposés dans le MOOC Investment Management with Python and Machine Learning disponible sur Coursera, nous allons étudier différents ETF dont les données ont été récupérées sur Curvo.eu. Nous avons récupéré les données mensuelles de plusieurs ETF :

Les données récupérées sont des séries temporelles de montants en euros. Il s'agit de la valeur au cours du temps d'un investissement initial et unique de 10 000€ sur l'ETF. De plus, aucune des séries temporelles ne démarrent à la même date.

Les prix de l'immobilier parisien ont été récupérés sur le site du Ministère des Finances. Il s'agit d'un indice de prix annuel.

Ces caractéristiques ne constituent pas un obstacle : Les actifs représentent des produits financiers types (actions, obligations, or, cryptomonnaies) et des secteurs géographiques (USA, Europe, France, Pays développés, Pays émergents, Monde).

NB : le passage de rendement mensuel à annuel se fait via une moyenne geométrique.

Comparaison des actifs

Pour chaque actif la série temporelle de prix est transformée en série de variations relatives, puis nous calculons l'espérance de rendement annuel et son écart-type annuel. Les résultats sont présentés dans le tableau ci-dessous :

ActifEspérance de rendement annuelEcart-type de rendement annuel
sp500 0,1140,143
cac40 0,0850,163
msciw 0,1250,130
acwi 0,1150,127
emgmkt 0,0410,144
gold 0,0360,149
btc 1,1321,665
bonds 0,0470,075
Prix-Paris 0,0640,98

NB : 0,114 équivaut à 11,4%, nous utiliserons indifférement ces deux types de notation.

Nous représentons les différents actifs dans un plan risque/rendement. La présence de l'actif Bitcoin dans la figure A complique la lecture du graphique. Le Bitcoin est tout en haut à droite, signe d'un fort rendement annuel mais aussi d'une forte volatilité. La figure B représente le même type d'information sans le Bitcoin. Nous repérons dans la partie inférieure gauche du graphique les actifs peu risqués et peu rémunérateurs, et en haut à droite les actifs risqués et rémunérateurs. Au sein de cette classe, nous pouvons distinguer l'actif offrant le meilleur compromis risque/rendement : le MSCIW.

Les actifs gold et emerging market présentent en revanche, comparativement aux autres actifs, un risque élevé pour un rendement faible. Nous verrons tout de même que ce n'est pas une raison suffisante pour les négliger.

Actifs dans le plan risque/rendement
Figure A : Actifs dans le plan risque/rendement.
Le risque et le rendement du Bitcoin écrasent les comparaisons possibles des autres actifs entre-eux.
Actifs dans le plan risque/rendement sans le Bitcoin
Figure B : Actifs dans le plan risque/rendement sans le Bictoin.

Matrice de corrélation

Au delà du risque et du rendement de chaque actif pris individuellement, il est important de regarder la covariance des actifs entre-eux. D'une part parce que la covariance renseigne sur le comportement des actifs, à la hausse et à la baisse : deux actifs réagissent-ils globalement de la même façon au cours du temps ? D'autre part, la covariance rentre dans le calcul de l'écart-type du portefeuille. Nous sommes obligé d'exclure les prix de l'immobilier parisien car il s'agit de variations annuelles, contre mensuelles pour les autres actifs.

Le calcul de la covariance de plusieurs actifs se représente aisément dans une matrice de covariance qui peut ensuite être normalisée en matrice de corrélation. La figure C représente la matrice de corrélation des actifs. Cette figure montre que les actifs représentatifs des actions, quelque soit le secteur géographique, sont fortement corrélés entre eux. Mais à l'inverse les autres actifs sont peu corrélés entre eux et avec les actions.

Le recours à la matrice de corrélation montre que l'actif gold, peu corrélé avec d'autres actifs a son intérêt dans un portefeuille.

NB : Notons que l'analyse porte sur un temps assez court (11 ans) et que l'intervalle 2011 à 2021 correspond à une période de marché haussier pour les actions et baissier pour l'or.

Matrice de corrélation des actifs
Figure C : Matrice de corrélation des actifs

Allocation de Markowitz : choisir la composition de son portefeuille

A partir de l'algorithme d'optimisation développé dans le MOOC, nous réalisons plusieurs optimisations de Markowitz sur l'ensemble de nos actifs (hors prix de l'immobilier parisien) et sur la période totale. Nous faisons varier à chaque fois le rendement souhaité.

La figure D présente les allocations d'actifs en fonction du rendement souhaité. Tant que le rendement souhaité est relativement faible, la répartition est un panachage de plusieurs actifs et hormis pour un rendement de 5%, un seul type d'actif de la classe action est sélectionné : MSCIW. Quand le rendement demandé commence à être important, la répartition est un mixte de Bitcoin (dans le rendement est élevé) et de MSCIW. Le fait que cet actif soit le seul à être sélectionné parmis les ETF actions s'explique par le fait que tous les ETF actions sont fortement corrélés entre eux et MSCIW est celui qui présente le meilleur rendement pour un risque moindre que les autres (cf figure B).

La figure E représente les différents portefeuilles générés par l'allocation de Markowitz et positionnés dans le plan risque/rendement des actifs. Cette analyse nous enseigne que jusqu'à un rendement désiré de 25% le portefeuille est dans une zone de risque similaire aux actions. Avec un rendement désiré de 20%, le risque du portefeuille est même inférieur à celui des ETF actions.

Allocation d'actif selon rendement désiré du portefeuille
Figure D : Allocation d'actifs selon le rendement désiré du portefeuille
Portefeuilles générés par l'allocation dans le plan risque/rendement
Figure E: Portefeuilles générés par l'allocation et positionnés dans le plan risque/rendement

Rééquilibrer régulièrement son portefeuille

Nous venons de voir comment l'allocation de Markowitz permet de créer des portefeuilles optimisant risque et rendement. Néanmoins, l'allocation marche à posteriori et elle a été réalisée sur toute la période. Dans la réalité l'investisseur va décider d'un taux de rendement souhaité, il va calculer une allocation, investir, puis suivre son plan d'investissement au cours du temps. Nous avons développé un algorithme simulant une stratégie d'investissement au cours du temps :

  1. Les X premières années, aucun investissement n'est réalisé.
  2. Au bout de X années, l'allocation de Markowitz est calculée sur les X dernières années, un montant initial est investi.
  3. Chaque mois l'investissement est actualisé
  4. Au bout d'un an, l'allocation de Markowitz est recalculée sur les X dernières années, le portefeuille est rééquilibré* selon la nouvelle allocation, puis retour au point 3.
  5. L'algorithme s'arrête lorqu'il n'y a plus de nouvelles données mensuelles.
*: Un rééquilibrage consiste à acheter et vendre des actifs pour conserver une proportion d'actifs déterminée.

Quelques simplifications ont été prises par rapport à la réalité : pas de taxes, pas de frais de transaction et les actifs sont indéfiniment divisables.

L'algorithme suit la constitution de plusieurs portefeuilles en même temps pour permettre les comparaisons : Vous pouvez retrouver le code de mon algorithme sur ma page github.

L'algorithme ne sera pas testé sur les données qui avaient été présentées dans la partie "Allocation de Markowitz : choisir la composition de son portefeuille". En effet, nous ne possédions que 11 ans de données. L'algorithme sera testé sur trois jeux de données allant de janvier 1985 à janvier 2022 : le MSCIW, Un indice obligataire et de l'or. Nous nous restreignons à trois actifs faiblement corrélés car nous avons vu que l'optimization de Markotwitz prévélégiait des compositions de ce type.

Page Git-Hub du projet

La figure G montre sur les 37 ans de données les différents portefeuilles par rendement souhaité. La figure H montre les différents portefeuilles optimaux dans le plan risque-rendement.

matrice de corrélation des actifs
Figure F : Matrice de corrélation des actifs
Allocation d'actif
Figure G : Allocation optimale d'actifs selon rendement souhaité
Portefeuilles générés
Figure H : Portefeuilles optimaux dans le plan risque-rendement

Nous faisons plusieurs simulations en faisant varier conjointement les rendements annuels souhaités et la durée en années sur laquelle nous faisons l'allocation.

Au total nous faisons 30 simulations différentes. Les résultats sont représentés dans la figure I (cliquez sur l'image). Chaque simulation est représentée par son rendement moyen et l'écart-type de son rendement. Les résultats sont peu visibles, nous pouvons tout de fois reconnaitre que le niveau de risque (écart-type) dans toutes ces simulations est inférieur au risque de l'actif MSCIW.

Nous remarquons également que dans certains cas le rendement moyen est supérieur au rendement moyen du MSCIW. Par contre nous n'obtenons pas à coup sûr le rendement désiré : il est parfois supérieur, il est parfois inférieur.

Il n'y a pas de tendance qui se dessine entre rendement désiré, période à prendre en compte pour calculer les réallocations et risque de la stratégie. Il faut rester prudent avec nos résultats.

Allocation d'actif
Figure I : Résultats des 30 simulations en terme de rendement moyen et de risque

Concentrons sur une des simulations qui a donné les meileurs résultats : 10% de rendement souhaité et une période de 9 ans pour calculer les allocations de Markowitz.

La figure J montre que cet investissement permet de passer de 5 000€ en 1994 à 60 000€ en 2022. Si l'on avait suivi une allocation fixe avec rééquilibrage le montant atteint au bout de 28 ans aurait été de 25 000€ environ (nous parlons de montants nominaux), 40 000€ pour un investissement sur le seul MSCIW.

La figure K montre les compositions des portefeuilles au cours du temps avec la stratégie rolling optimization. Les changements d'allocations sont très brutaux. Par exemple, après 3 ans investit en 100% MSCIW, l'algorithme recommande d'investir à 100% en or au 1er janvier 2007. C'est intéressant car c'est à la veille de la crise des subprimes qui fit plonger la bourse et vis l'or monter (fait habituel en période de crise). Néanmoins, d'un point de vue psychologique il faut un certain courage pour suivre une recommandation aussi brutale.

Allocation d'actif
Figure J : Valeurs des portefeuilles au cours du temps pour les trois stratégies
Portefeuilles générés
Figure K : Composition des portefeuilles chaque année pour la stratégie rolling optimization.

Quand nous regardons le cours des actifs relativement à la plus haute valeur atteinte (drawdowns - figure L), nous voyons qu'avec la stratégie rolling optimization nous chutons parfois de 15%, contre près de 55% pour l'investissement sur le seul actif MSCIW. Cela semble indiquer que la stratégie rolling optimization permet de se prémunir des chutes brutales de marchés.

Allocation d'actif
Figure L : Drawdown des trois stratégies

Conclusion

Pour choisir dans quel actif investir, il est possible d'utiliser une méthode rationnelle cherchant à déterminer le meilleur compromis. Pour ensuite gérer son investissement dans le temps il est aussi possible de recaluler l'allocation optimale sur une base régulière. Néanmoins les résultats restent fragiles et aucune tendance ne se dessine, les résultats obtenus dépendent du scénario qui a été réalisé (cours historiques des actifs) et il faut être prudent pour en déduire une quelconque méthode d'investissement.

Il pourrait être intéressant de simuler plusieurs scénarii pour le cours des actifs via un modèle basé sur le mouvement brownien : on pourrait ainsi évaluer nos stratégies en terme de statistiques de réussite.