$cat projects/memoire-markowitz.md
Markowitz × Crypto-actifs — Mémoire ESSEC (16/20)
année
2024–2025
rôle
Auteur unique
stack
Excel + Solver, VBA, Python (cvxpy, quadprog JS)
durée
6 mois
// la question
Un Conseiller en Gestion de Patrimoine (CGP) doit allouer l'argent de ses clients entre actions, obligations, or, immobilier… Faut-il y ajouter de la crypto ? Si oui, combien, à quel profil de risque, sous quel cadre fiscal et juridique ?
C'est la question centrale de mon mémoire de fin d'études ESSEC, dirigé par un professeur de finance. La réponse n'est pas idéologique — elle est quantitative : on mesure, on compare, on tranche.
// pourquoi ça compte
- Pour le client Une mauvaise allocation = soit du rendement laissé sur la table, soit du risque mal cadré (drawdown subi en cas de crise).
- Pour le conseiller Les régulateurs (MiFID II, MiCA) imposent un devoir de conseil documenté. Recommander 5% de crypto sans justification chiffrée, c'est un risque pénal.
- Pour la théorie Les crypto-actifs sont volatils, jeunes, peu corrélés au reste. Markowitz tient-il le choc, ou faut-il sortir l'artillerie moderne (Black-Litterman, HRP) ?
// markowitz en 90 secondes
En 1952, Harry Markowitz (Nobel d'économie 1990) prouve une chose simple mais contre-intuitive : la diversification réduit le risque sans sacrifier le rendement, à condition que les actifs ne bougent pas tous en même temps.
Mathématiquement, il s'agit de trouver les pourcentages wi à investir dans chaque actif pour minimiser la variance (la vol au carré) du portefeuille, sous une contrainte de rendement attendu.
Le problème, en symboles :
min w⊤ Σ w
s.c. Σ wi = 1 (somme = 100%)
wi ≥ 0 (pas de short)
w⊤ μ = r* (rendement cible)
μ = vecteur des rendements moyens
Σ = matrice de covariance
w = vecteur des poids
En faisant varier le rendement cible r*, on obtient une courbe : la frontière efficiente. Tous les portefeuilles au-dessus sont impossibles. Tous ceux en-dessous sont dominés (même rendement, plus de risque, ou même risque, moins de rendement). Le travail de l'investisseur, c'est de choisir un point sur cette courbe selon son appétit au risque.
// les profils SRI — où le client se situe
Le SRI (Summary Risk Indicator) est un score réglementaire MiFID II / PRIIPs allant de 1 (très défensif) à 7 (très offensif), basé sur la volatilité annualisée du produit. Chaque client a un profil. Le portefeuille doit s'y aligner.
| SRI | Vol annualisée | Profil type | Allocation classique |
|---|---|---|---|
| SRI 1 | ≤ 0,5% | Très défensif | 100% fonds € / oblig court terme |
| SRI 3 | 5–12% | Équilibré (prudent) | ~60% oblig + 40% actions diversifiées |
| SRI 5 | 15–30% | Dynamique | ~80% actions + 20% diversificateurs |
| SRI 7 | > 80% | Très offensif | Concentré, single-stock, crypto, levier |
// l'idée du mémoire
Pour chaque profil SRI, je calcule deux frontières efficientes sur les mêmes données hebdo 2020–2025 :
- SC Sans Crypto — 9 actifs traditionnels (obligations US 10Y, MSCI World, Euro Stoxx 50, CAC40, S&P 500, Dow Jones, NASDAQ100, Or, REIT).
- AC Avec Crypto — les 9 mêmes + un indice crypto custom (BTC / ETH / FIL / MKR, choisis pour leur diversité fonctionnelle).
Pour chaque profil SRI, je compare le rendement attendu, la volatilité réalisée, et le ratio de Sharpe (rendement supplémentaire par unité de risque). Si AC domine SC à risque égal, alors la crypto a sa place. Si AC sous-performe ou ne change rien, le mémoire conclut à son inutilité.
// comment lire le graphe qui suit
- →Axe X = volatilité acceptée. Plus tu vas à droite, plus tu acceptes que ton portefeuille fluctue.
- →Axe Y = rendement annualisé du portefeuille optimal pour cette vol cible.
- →La courbe orange = frontière de ton univers actuel (par défaut, tous les actifs).
- →La courbe grise pointillée = frontière de référence "Sans Crypto" — pour comparer en permanence.
- →L'étoile dorée ★ = portefeuille au Sharpe maximal sous ta vol acceptée. Là où ton rendement par unité de risque est le plus élevé.
- →Le plateau horizontal = au-delà de la vol max atteignable, ajouter du risque ne rapporte plus. L'univers est saturé sur l'actif le plus rentable.
À tester pour ressentir la pédagogie : 1. Clique sur Sans crypto (preset univers) → tu vois la courbe orange s'écraser sur la grise. Sans crypto, le rendement plafonne à ~19,65% (NASDAQ100 max). 2. Re-clique sur Avec crypto + SRI 5 → tu vois ton rendement passer à ~43%. +24 points de rendement, à risque égal. 3. Sharpe-optimal au SRI 7 sur l'univers Sans crypto → tu retombes sur SRI 3 (vol 12%, Sharpe 0,96). Au-delà, le Sharpe SC décroît. Bascule en Avec crypto et reclique : le Sharpe-optimal saute à SRI 7 (vol 73,8%, Sharpe 1,38). C'est exactement la différence pédagogique du mémoire.
// explorer interactif — frontière efficiente
Choisis ton univers d'investissement, déplace le curseur de volatilité acceptée, ou clique sur les profils SRI. L'optimisation Markowitz est recalculée en direct dans ton navigateur.
⚠ Sélectionne au moins 2 actifs pour pouvoir diversifier.
Contrôles
Métriques du portefeuille
Allocation optimale
Lexique — les 7 termes clés à connaître
Frontière efficiente
Pour chaque niveau de risque accepté, le rendement maximum atteignable. Tout point au-dessus de la courbe est impossible. Tout point en-dessous est sous-optimal.
Plateau
Au-delà d'une certaine vol, ajouter du risque ne paie plus — l'optimiseur a déjà concentré 100% sur l'actif le plus rentable.
- Sans crypto : plateau à 19,65% (NASDAQ100)
- Avec crypto : plateau à 104,4% (Indice Crypto)
SRI (Summary Risk Indicator)
Score réglementaire MiFID II / PRIIPs allant de 1 à 7, reflétant la volatilité annualisée du produit.
- SRI 1 — 0,5% (fonds €, oblig courtes)
- SRI 3 — 12% (équilibré prudent)
- SRI 5 — 30% (dynamique)
- SRI 7 — 100% (max risque)
Ratio de Sharpe
(Rendement − rf) / Volatilité
Rendement supplémentaire par unité de risque. C'est le chiffre que regarde un quant.
- < 0,5 — médiocre
- 0,5 → 1 — correct
- 1 → 2 — bon
- > 2 — excellent
Vol acceptée vs réalisée
Acceptée = la contrainte que tu fixes (l'axe X). Réalisée = la vol effective du portefeuille optimal trouvé.
Sur le plateau, la réalisée reste plafonnée à la vol max atteignable par l'univers — même si tu pousses la cible plus haut.
Quadratic Programming (QP)
Famille d'équations mathématiques très bien connue : on cherche les meilleurs pourcentages à investir.
Le solveur quadprog tourne dans ton navigateur (~10 Ko) et trouve la meilleure solution en quelques millisecondes.
Limites du Markowitz long-only
- Sensible aux estimations (μ, Σ bruités)
- Pas de régularisation
- Pas de validation out-of-sample
Solutions modernes : Black-Litterman (priors bayésiens), HRP (Hierarchical Risk Parity), shrinkage Ledoit-Wolf sur la covariance.
En une phrase
Une famille d'équations mathématiques où l'on cherche les meilleurs pourcentages à investir, sous des règles simples (somme = 100%, pas de % négatif).
L'analogie de la salade
Imagine que tu prépares une salade composée. Tu as 10 ingrédients possibles, chacun avec un goût (rendement) et un risque de gâcher la salade (volatilité). Tu veux la plus savoureuse, sans dépasser un niveau de risque de ratage. Le QP, c'est la recette mathématique qui te dit exactement combien mettre de chaque ingrédient.
Pourquoi "quadratic" ?
Parce qu'on minimise le risque, et le risque (variance) se calcule en élevant les écarts au carré. Toute équation avec un "carré" comme cible s'appelle quadratique.
Pourquoi c'est puissant ?
Ce type d'équation est ultra étudié depuis 50 ans. Des outils gratuits (quadprog, cvxpy) trouvent la meilleure solution en quelques millisecondes — et c'est garanti d'être la vraie meilleure, pas juste "pas trop mal". Pas de bidouille, pas de tâtonnement.
Concrètement ici
Tu donnes au solveur trois choses : les rendements moyens des actifs, leurs corrélations, et ta vol max acceptée. Il te rend les pourcentages optimaux. C'est exactement ce qui tourne dans ton navigateur quand tu bouges le slider — instantané.
Le problème que ça règle
Markowitz classique a un défaut : il fait aveuglément confiance aux rendements historiques. Si l'or a fait 15% sur les 5 dernières années, il suppose qu'il fera 15% les prochaines. Souvent faux.
L'idée de Black-Litterman
Inventé chez Goldman Sachs en 1990 par Fischer Black et Robert Litterman. L'idée : on combine deux sources d'information.
1. L'équilibre du marché : si tout le monde investit déjà 60% en actions, c'est probablement que les rendements attendus justifient ces poids. On part de là comme baseline.
2. Tes propres opinions : "je pense que la tech va surperformer de 3% sur l'année", avec un niveau de confiance. Tes opinions ajustent la baseline, mais ne la remplacent pas.
Pourquoi c'est mieux
Résultat : des allocations plus stables, moins extrêmes. Markowitz pur t'envoie souvent 100% sur l'actif qui a fait le meilleur backtest. Black-Litterman te répond : "OK, mais si tout le monde n'y est pas allé, c'est qu'il y a peut-être une raison".
Cadre mathématique
Bayésien : la baseline = prior, tes opinions = likelihood, l'allocation finale = posterior. C'est de l'inférence bayésienne appliquée à la finance.
Le problème que ça règle
Markowitz a besoin d'inverser la matrice de covariance Σ. Avec 100 actifs et 5 ans de données, cette matrice est très bruitée — l'inverse explose. Tu obtiens des allocations délirantes (200% sur un actif, -150% sur un autre, ou ultra-concentrées).
L'idée de HRP
Inventé en 2016 par Marcos López de Prado (chercheur quant chez AQR / Cornell). Au lieu d'inverser la matrice, HRP construit l'allocation par regroupement hiérarchique.
1. Clustering : on regroupe les actifs qui se comportent pareil (par exemple : toutes les actions tech ensemble, toutes les obligations ensemble).
2. Allocation top-down : on répartit le capital entre les groupes d'abord (50% actions / 30% oblig / 20% or), puis à l'intérieur de chaque groupe.
3. Inverse de la variance : à chaque niveau, on alloue plus aux actifs/groupes les moins volatils.
Pourquoi c'est mieux
Pas d'inversion de matrice → pas d'explosion numérique. Allocations plus robustes, plus diversifiées. En out-of-sample, HRP bat souvent Markowitz, surtout quand le nombre d'actifs est grand.
L'inspiration
Vient du machine learning (clustering hiérarchique). C'est l'exemple parfait de la finance moderne qui pioche dans le ML.
Le problème que ça règle
La matrice de covariance Σ estimée sur des données historiques est trop bruitée. Les corrélations qu'elle reporte sont surestimées par hasard sur certains actifs et sous-estimées sur d'autres. Markowitz exploite ce bruit et construit des portefeuilles aberrants.
L'idée du shrinkage
Au lieu d'utiliser la matrice estimée brute, on la "rétrécit" (shrink) vers une cible plus simple et plus robuste. Comme si on disait : "fais un peu confiance aux données, mais pas complètement".
Formule : Σ_final = α × Σ_target + (1−α) × Σ_estimée
Où Σ_target est typiquement la matrice identité (toutes corrélations = 0) ou une matrice à corrélation moyenne constante.
L'apport Ledoit-Wolf
Olivier Ledoit et Michael Wolf (papier 2004) ont trouvé une formule pour calculer automatiquement le coefficient α optimal. Pas besoin de le tâtonner : la formule te le donne, en fonction de la quantité de bruit dans tes données.
Pourquoi c'est mieux
Plus tu as peu de données par rapport au nombre d'actifs, plus α est grand (= plus on shrinke). Résultat : Markowitz devient stable, les allocations cessent d'osciller à chaque mise à jour de données. Standard de l'industrie depuis 20 ans.
// ce que ce mémoire montre
- 1.
Le ratio de Sharpe est amélioré sur tous les profils SRI quand on ajoute la crypto.
Ce n'est pas du rendement gratuit — c'est de la diversification. La crypto bouge avec ses propres facteurs (adoption, halving BTC, narratives), peu corrélés aux indices actions.
- 2.
À SRI 5 (vol cible 30%), passer de SC à AC fait bondir le rendement de 19,65% à 43,17%.
C'est l'intervalle de risque le plus utilisé en gestion de patrimoine. Refuser la crypto à ce profil, c'est un coût d'opportunité documentable.
- 3.
À SRI 7, le Markowitz long-only tend vers une allocation 100% crypto.
Limite classique du modèle non régularisé : il optimise sur des moyennes historiques, pas sur des espérances robustes. Un Black-Litterman ou un HRP corrigerait ce biais.
- 4.
Sans crypto, le Sharpe culmine dès SRI 3 (0,96) puis décroît vers SRI 7 (0,71). Avec crypto, il continue de monter jusqu'à SRI 7 (1,38).
Pédagogiquement décisif : sur les actifs traditionnels, prendre plus de risque que SRI 3 ne rémunère plus assez. La crypto étire la zone où le risque additionnel reste payé — c'est le vrai apport, pas juste un boost de rendement brut.
// méthodologie de calcul
Données
2020-01-05 → 2025-04-27
Optimiseur
QP long-only
Annualisation
(1+rw)52−1
Taux sans risque
rf = 2,80%
Le notebook ci-dessous reproduit les chiffres du jury au pp près. Il est pensé pour être lu : commentaires explicatifs, formules LaTeX, sortie graphique vérifiable.
// récap chiffré (4 profils SRI)
| Profil SRI | Vol cible | Rdt SC | Rdt AC | Sharpe SC | Sharpe AC | Δ Sharpe |
|---|---|---|---|---|---|---|
| SRI 1 (Défensif) | 0,5% | 3,25% | 3,38% | 0,93 | 1,17 | +0,24 |
| SRI 3 (Équilibré) | 12% | 14,40% | 18,26% | 0,96 | 1,29 | +0,33 |
| SRI 5 (Dynamique) | 30% | 19,65% | 43,17% | 0,71 | 1,35 | +0,64 |
| SRI 7 (Offensif) | 100% | 19,65% | 104,39% | 0,71 | 1,38 | +0,67 |
Chiffres du jury ESSEC (Excel + Solver). La replication Python (notebook) donne les mêmes valeurs à ±1pp près. SC = Sans Crypto, AC = Avec Crypto.
// limites assumées du modèle
- Pas de régularisation La matrice de covariance estimée sur 278 obs est bruitée. Un shrinkage Ledoit-Wolf ou un Black-Litterman avec views réduirait la sensibilité aux outliers.
- Pas d'out-of-sample L'optimisation tourne sur 2020–2025 sans validation hors échantillon. Un walk-forward (entraîner sur 2020–2023, tester sur 2024–2025) montrerait la vraie performance prédictive.
- Indice crypto qualitatif BTC/ETH/FIL/MKR choisis par jugement (capi + diversité fonctionnelle), pas par PCA ou clustering statistique. Subjectif.
- Long-only Pas de short, pas de levier. Ça simplifie la pédagogie mais coupe une partie de la frontière de Markowitz.
- Fiscalité post-optimisation L'optimisation se fait brute, puis on applique flat tax 30% (crypto) vs 17,2% (assurance-vie). Idéalement, la fiscalité devrait être intégrée dans l'objectif.
// statut
Mémoire noté 16/20. Présenté en jury ESSEC. Disponible sur demande.
// honnêtement
Excel + VBA + Solver, c'était l'outil que j'avais. Aujourd'hui je referais le tout en Python avec cvxpy, un shrinkage Ledoit-Wolf sur la covariance, un walk-forward out-of-sample, et un benchmark Hierarchical Risk Parity. Le mémoire ne m'a pas donné des réponses — il m'a donné une pile de questions précises. C'est exactement ce qui me pousse à continuer.