Analyse Quantitative et Optimisation de Portefeuille sur l’Indice MASI 20
Préparation des Données
Figure : prix hebdomadaire de chaque actif en bout de 2024
5.1 Préparation des Données
Dans le cadre de cette étude, nous avons exploité les données historiques de prix des principales
actions constituant l’indice MASI 20. Ces données ont été collectées puis structurées sous forme de
tableau temporel.
Afin de passer à une analyse quantitative pertinente, les prix ont été convertis en rendements
quotidiens, en utilisant la variation relative entre deux séances successives selon la formule suivante :
L’objectif de cette transformation est double :
Estimation du rendement espéré : calculé comme la moyenne arithmétique des rendements
historiques de chaque actif.
Construction de la matrice de covariance : celle-ci mesure la co-mobilité des actifs entre eux,
et constitue l’élément fondamental pour quantifier le risque combiné d’un portefeuille.
Σi,j= Cov(Ri,Rj)
Figure : matrice de covariance
Cette phase de prétraitement permet ainsi de structurer les données financières sous une forme
directement exploitable pour les algorithmes d’optimisation de portefeuille basés sur la théorie
moyenne-variance.
5.2 Construction de la Frontière Efficiente
La frontière efficiente constitue un outil fondamental de la théorie moderne du portefeuille. Elle
représente l’ensemble des portefeuilles optimaux qui offrent le meilleur rendement possible pour un
niveau de risque donné, ou inversement, le risque minimal pour un rendement espéré donné.
a) Formulation du problème
Pour chaque niveau de rendement cible Rp, on résout un problème de minimisation de la volatilité
du portefeuille sous contraintes :
b) Implémentation et visualisation
Nous avons fait varier Rp entre le rendement minimum et maximum observé parmi les actifs du MASI
20, afin de générer plusieurs portefeuilles efficients. Chaque portefeuille obtenu a été caractérisé par
son rendement espéré et son niveau de risque (volatilité), et les points ainsi obtenus ont été tracés
pour former la courbe de la frontière efficiente.
La visualisation réalisée colorie les portefeuilles selon leur ratio rendement/risque :
Graphique généré : Frontière efficiente du MASI 20, avec échelle de couleur représentant le ratio μ/σ
Cette représentation met en évidence les portefeuilles les plus performants au regard de leur
volatilité, et permet d’identifier le portefeuille tangent à la droite du marché (dans un modèle
incluant un actif sans risque).
5.3 Méthodes d’Optimisation de Portefeuille
Dans cette section, nous appliquons trois approches classiques et complémentaires d’optimisation
de portefeuille pour déterminer les pondérations idéales des actifs du MASI 20. Chaque méthode
repose sur des critères distincts de gestion du risque et de la performance.
5.3.1 Portefeuille à Variance Minimale
Cette méthode vise à minimiser la volatilité totale du portefeuille, indépendamment du rendement
attendu. Elle est particulièrement utilisée dans les contextes défensifs ou lorsque la priorité est
donnée à la stabilité.
🔹 Avantage : stratégie prudente, moins sensible aux erreurs d’estimation des rendements.
🔹 Inconvénient : peut conduire à des portefeuilles faiblement performants.
Figure :
5.3.2 Portefeuille Maximisant le Ratio de Sharpe
Ici, on cherche à maximiser la performance ajustée au risque, c’est-à-dire le ratio de Sharpe :
où rf est le taux sans risque, supposé nul dans notre cas pour simplification.
🔹 Avantage : permet de sélectionner un portefeuille efficient selon une logique de marché.
🔹 Remarque : cette méthode est très sensible aux valeurs de μ\muμ, qui peuvent être instables dans
les marchés émergents comme le MASI.
Figure :
5.3.3 Portefeuille à Parité de Risque (Risk Parity)
Cette approche vise à construire un portefeuille où chaque actif contribue également au risque
global. Contrairement aux méthodes précédentes, elle ne repose pas sur l'estimation des
rendements.
L'objectif devient alors :
🔹 Avantage : plus robuste aux incertitudes sur les rendements.
🔹 Remarque : elle tend à surpondérer les actifs faiblement volatils.
Figure :
Résultats : Pondérations Optimales
Après résolution des problèmes d’optimisation sous contraintes, nous obtenons pour chaque
méthode une répartition des poids optimale. Ces répartitions peuvent être visualisées sous forme de
graphique en barres ou de tableau comparatif.
📌 Les poids obtenus respectent des contraintes réalistes (0% à 100% par actif, somme à 100%) et
permettent une comparaison claire entre les différentes stratégies de gestion.
🔹 Remarque sur l'initialisation des algorithmes d’optimisation
Dans le cadre de l’implémentation des différentes méthodes d’optimisation (minimisation de la
variance, maximisation du ratio de Sharpe, parité de risque), une attention particulière a été portée à
la phase d’initialisation des algorithmes numériques.
Plutôt que de recourir à une répartition uniforme ou aléatoire des poids comme point de départ, le
vecteur initial utilisé (init_guess) a été construit à partir des pondérations effectives observées dans
l’indice MASI 20, préalablement normalisées pour satisfaire la contrainte de budget (somme des
poids égale à 1).
Ce choix se justifie par plusieurs considérations :
Sur le plan numérique, l’utilisation de poids réalistes améliore la stabilité de l’algorithme et
favorise la convergence vers une solution économiquement plausible ;
Sur le plan économique, cela permet d’ancrer l’optimisation dans une réalité de marché en
tenant compte de la structure existante de l’indice boursier ;
Enfin, cette stratégie facilite la comparaison directe avec le benchmark MASI lors de la phase
de backtesting, en assurant une base de départ comparable.
Ce protocole contribue à renforcer la robustesse des résultats obtenus et à garantir leur pertinence
dans un contexte d’allocation d’actifs appliquée à un marché réel.
5.4 Implémentation de Contraintes de Pondération
Dans une optique de réalisme opérationnel, nous avons étudié un scénario dans lequel des
contraintes spécifiques de pondération sont imposées à certaines actions clés de l’indice MASI 20.
Plus précisément, les pondérations des titres ATTIJARIWAFA BANK (ATW) et ITISSALAT AL-MAGHRIB
(IAM) ont été restreintes à des intervalles donnés :
ATW : entre 18 % et 20 %
IAM : entre 10 % et 15 %
Cette configuration s’inspire de la structure réelle de l’indice MASI 20, dans lequel ATW et IAM
représentent historiquement une part significative de la capitalisation totale. Il serait donc peu
justifié, dans une stratégie d’allocation réaliste, de leur attribuer des poids largement inférieurs à ceux
qu’ils occupent dans le marché de référence, sauf anticipation explicite ou analyse fondamentale à
l’appui.
L’inclusion de ces contraintes permet de simuler une allocation semi-active, où le portefeuille reste
aligné avec certaines limites structurelles ou réglementaires, tout en optimisant la performance à
l’intérieur d’un cadre plus souple que l’indice pur.
Figure : ajout des contraintes
Figure : poids d’allocation semi-active
5.5 Backtesting des Portefeuilles Optimisés
Afin d’évaluer la robustesse et la performance réelle des portefeuilles optimisés, une phase de
backtesting a été mise en place. Cette démarche consiste à appliquer rétroactivement les allocations
issues de chaque stratégie d’optimisation sur l’historique des rendements quotidiens, puis à analyser
leur évolution dans le temps.
a) Construction des rendements cumulés
Pour chaque stratégie (Variance Minimale, Max Sharpe, Risk Parity), les rendements journaliers du
portefeuille ont été calculés à partir des pondérations optimales :
Le rendement cumulé a ensuite été obtenu selon la formule :
b) Comparaison avec le benchmark (MASI)
L’évolution de ces portefeuilles a été comparée à celle du MASI (Moroccan All Shares Index) sur la
même période. Cette comparaison permet de positionner objectivement la performance des
stratégies optimisées face au marché global.
📊 Un graphique superposant les rendements cumulés des trois portefeuilles et du MASI a été généré
afin de visualiser les écarts de trajectoire.
5.6 Analyse Comparative et Interprétation des Résultats
Le graphe ci-dessous illustre le rendement cumulé des trois portefeuilles optimisés comparés à
l’indice MASI sur la période étudiée.
Lecture et interprétation :
🟠 Max Sharpe : Ce portefeuille domine très nettement sur la période. Il affiche une
performance croissante, régulière, et termine avec un rendement cumulé supérieur à 30 %,
dépassant nettement le benchmark. Cela confirme que l'optimisation du ratio de Sharpe
permet d’identifier des portefeuilles très performants, bien adaptés à la période observée.
🔵 Variance Minimale : Comme attendu, ce portefeuille présente une volatilité modérée, avec
une progression plus lissée. Bien qu’il n’atteigne pas les niveaux du portefeuille Max Sharpe, il
offre une stabilité que les investisseurs prudents pourraient apprécier.
🟢 Risk Parity : Il se positionne entre les deux en termes de performance et de volatilité. Ce
portefeuille est équilibré dans sa gestion du risque et constitue une alternative robuste,
surtout en cas d’incertitude sur les rendements.
⚫ MASI (Benchmark) : L’indice boursier marocain MASI connaît une performance
initialement supérieure, avant d’entrer dans une phase de stagnation et de déclin. Il finit en
dessous de tous les portefeuilles optimisés, montrant l’intérêt d’une gestion active par
optimisation quantitative.
Ce constat confirme l'intérêt d’une gestion active structurée, même avec des hypothèses simples, par
rapport à une gestion purement passive basée sur l’indice.
c) Interprétation stratégique
Les pondérations optimales tendent à surpondérer les valeurs faiblement corrélées au reste
du marché, favorisant ainsi la diversification.
Les contraintes sur ATW et IAM, inspirées de leur poids réel dans l’indice, permettent de
garantir une certaine cohérence structurelle avec le marché local.
L’utilisation de différentes méthodes permet d’adapter la stratégie d’investissement au profil
de risque de l’investisseur : prudent (variance minimale), équilibré (risk parity), ou agressif
(Sharpe).
5.7 Difficultés Rencontrées et Ajustements Méthodologiques
a) Problème de non-concordance entre optimisation théorique et simulation Monte Carlo
Au cours de la simulation de la frontière efficiente via méthode Monte Carlo, une anomalie notable
a été observée :
le portefeuille à variance minimale obtenu par optimisation classique (SLSQP) n’était pas situé à
l’extrême gauche de la frontière, ce qui contredit la théorie selon laquelle il devrait être le
portefeuille présentant la volatilité la plus faible parmi tous les portefeuilles admissibles.
b) Analyse des causes
Après investigation, plusieurs sources potentielles ont été identifiées :
🔸 Convergence locale de l’algorithme SLSQP : bien que très utilisé, cet algorithme peut
parfois s’arrêter sur un minimum local, notamment si la fonction est plate autour de
plusieurs solutions voisines.
🔸 Dépendance à l’initialisation : l’optimisation étant sensible au point de départ (init_guess),
une initialisation aléatoire ou mal calibrée peut produire des solutions non optimales.
🔸 Structure de la covariance : une mauvaise estimation de la matrice de covariance (bruit,
corrélations instables) peut fausser la topologie de la frontière et induire des résultats
aberrants.
c) Solution mise en place
Pour garantir la fiabilité des résultats, une version robuste de l’optimisation a été introduite :
✅ Fallback algorithmique : si SLSQP échoue ou produit un résultat incohérent, l’algorithme
trust-constr est utilisé comme méthode alternative de résolution.
✅ Contrôle de qualité : un test de cohérence automatique compare la volatilité obtenue par
optimisation à la volatilité minimale parmi les simulations Monte Carlo. Si l’écart dépasse un
seuil (< 1e-5), une alerte est levée.
5.8 Extraction Numérique du Portefeuille à Risque Minimal (Simulation de la Frontière Efficiente)
Afin d'identifier de manière fiable le portefeuille à plus faible volatilité sur la frontière efficiente, une
approche numérique directe a été implémentée.
a) Approche utilisée
À partir des rendements espérés des actifs, une série de rendements cibles a été générée :
rendements_cibles = [Link](rendements_moyens.min(), rendements_moyens.max(), num=50)
Pour chaque rendement cible, un problème d’optimisation quadratique contraint a été résolu pour
construire le portefeuille optimal (minimisation du risque sous contrainte de rendement fixé).
Ensuite, nous avons :
Calculé les volatilités associées à chaque portefeuille,
Identifié celui ayant la plus faible volatilité grâce à la commande suivante :
idx_min_risque = [Link](risques)
poids_min_risque = portefeuilles_valides[idx_min_risque]
b) Résultat et interprétation
Cette méthode a permis de retrouver le portefeuille théorique "le plus à gauche" de la frontière
efficiente. Ce portefeuille est distinct du portefeuille à variance minimale obtenu par optimisation
directe, et peut dans certains cas offrir une solution plus fidèle si l’optimiseur classique converge mal.
Le dictionnaire final associant chaque actif à son poids dans ce portefeuille a été généré
automatiquement via :
poids_nommés = dict(zip(noms_actifs, [Link](poids_min_risque).flatten()))
c) Intérêt pratique
Ce portefeuille représente une borne de référence absolue pour les investisseurs les plus averses au
risque. Il constitue également un bon point de comparaison pour valider la robustesse des autres
méthodes d’optimisation (Sharpe, Risk Parity…).
Validation visuelle sur la Frontière Efficiente simulée
L’image suivante représente la simulation de la frontière efficiente via la méthode de Monte Carlo
appliquée à l’indice MASI 20. Elle permet de positionner visuellement les différents portefeuilles
optimisés selon leurs rendements et volatilités.
Simulation de la frontière efficiente - MASI 20
🔵 Min Variance : portefeuille à variance minimale calculé par optimisation classique (SLSQP).
🟢 Max Sharpe : portefeuille maximisant le ratio de Sharpe.
🔴 Risk Parity : portefeuille équilibrant les contributions au risque.
🟧 Poids Égaux : portefeuille naïf répartissant équitablement le capital entre les actifs.
◼️Min Risk (Frontière) : portefeuille présentant la plus faible volatilité réelle parmi les
simulations, identifié numériquement (cf. section 5.X).
Analyse :
Le portefeuille Max Sharpe se situe clairement dans la zone optimale de la frontière :
rendement élevé pour un risque modéré, avec un ratio de Sharpe maximal (zone jaune).
Le portefeuille à variance minimale (🔵) n’est pas le plus à gauche, ce qui confirme les
limitations rencontrées avec l’optimisation initiale.
Le point noir (◼️) représente le véritable portefeuille à volatilité minimale (trouvé par
balayage sur la frontière). Il est bien situé à l’extrémité gauche, validant notre méthode
robuste d’extraction.
Le portefeuille à poids égaux (🟧) se positionne de manière cohérente au centre, démontrant
une efficacité modeste mais raisonnable.
Références
1. Markowitz, H. (1952). Portfolio Selection. The Journal of Finance, 7(1), 77–91.
DOI: 10.2307/2975974
2. Sharpe, W. F. (1966). Mutual Fund Performance. The Journal of Business, 39(1), 119–138.
3. Maillard, S., Roncalli, T., & Teiletche, J. (2010). The Properties of Equally Weighted Risk
Contributions Portfolios. The Journal of Portfolio Management, 36(4), 60–70.
4. Black, F., & Litterman, R. (1992). Global Portfolio Optimization. Financial Analysts Journal,
48(5), 28–43.
5. Bodie, Z., Kane, A., & Marcus, A. J. (2014). Investments (10e édition). McGraw-Hill Education.
6. Grinold, R. C., & Kahn, R. N. (1999). Active Portfolio Management: A Quantitative Approach
for Producing Superior Returns and Controlling Risk. McGraw-Hill.
7. Chan, L. K. C., Karceski, J., & Lakonishok, J. (1999). On Portfolio Optimization: Forecasting
Covariances and Choosing the Risk Model. The Review of Financial Studies, 12(5), 937–974.
8. Maroc Bourse, [Link]
(consulté pour les données financières des actions cotées à la Bourse de Casablanca).
9. [Link] Maroc, [Link]
(source des historiques de prix et variations du MASI 20).
10. Python Libraries : NumPy, Pandas, Matplotlib, SciPy — utilisées pour la simulation,
l’optimisation et la visualisation des portefeuilles.