Dans les pages précédentes, nous avons vu qu'il était possible, en trouvant les bonnes proportions de chaque valeur, de constituer des portefeuilles dont la variance (ie le risque, selon la théorie moderne du portefeuille) est plus ou moins élevée, et ce, pour un rendement identique. Ces portefeuilles constituent la frontière efficiente.
Pour constituer nos portefeuilles en prenant le minimum de risque, il suffit donc de chercher les proportions de valeurs présentant la variance la plus faible pour un rendement donné. Le problème, c'est que si le calcul de la variance d'un portefeuille donné est assez simple (cf pages précédentes), l'opération inverse est beaucoup plus délicate à réaliser. Ce type d'optimisation n'est pas franchement trivial et dépasse largement le cadre de ces pages.
Heureusement, tout bon tableur qui se respecte, propose un module d'optimisation. Dans Excel par exemple, il s'agit du solveur. Son principe d'utilisation est simple : on lui indique le résultat que l'on souhaite obtenir, les contraintes qu'il devra respecter, et les valeurs d'entrée qu'il peut faire fluctuer pour essayer de produire le résultat escompté, puis on le laisse calculer. Il propose alors les valeurs d'entrées permettant d'obtenir le résultat souhaité ou le résultat le plus proche, tout en respectant les contraintes exprimées.
Dans notre cas, nous souhaitons trouver le portefeuille présentant la plus faible variance pour
un rendement donné. Il suffit donc d'implémenter dans Excel le calcul de la variance d'un
portefeuille, ainsi que celui de son rendement.
Ensuite, il suffira d'indiquer au solveur que le résultat attendu est une minimisation
de la variance du portefeuille et que les valeurs en entrée sont les proportions de chaque
valeur.
Les contraintes quant à elles seront les suivantes :
C'est bien beau tout ça, mais en pratique, ça donne quoi ?
C'est ce que nous allons voir avec Excel. Il faut tout d'abord activer le solveur si ce n'est pas déjà fait, et vérifier qu'il existe bien une référence au solveur pour VBA.
Avec Excel 2007 ou une version antérieure, allez voir dans le menu 'Outils' si vous voyez une entrée 'Solveur...'.
Si ce n'est pas le cas, ou si elle est grisée, sélectionnez l'entrée 'Macros complémentaires...' du menu 'Outils' et cochez la case 'Solveur' ou 'Complément Solver' dans la liste, avant de valider par 'OK'. L'entrée 'Solveur' du menu 'Outils' doit maintenant être disponible.
Avec un Excel plus récent, par exemple Excel 2019, vérifier que le complément solveur est bien activé. Pour ce faire, dans Excel, cliquez sur le menu "Fichier" puis choisissez l'entrée "Options". Dans la boîte de dialogue qui s'affiche, choisissez la section "Compléments" :
Vérifiez que le "Complément Solveur" est bien actif. Si ce n'est pas le cas, dans la liste déroulante en bas à droite, choisissez "Compléments Excel", puis cliquez sur le bouton "Atteindre". La boîte de dialogue d'activation des compléments s'ouvre alors :
Cochez alors la case "Complément Solveur", puis cliquez sur le bouton "OK".
Pour pouvoir utiliser le solveur dans du code VBA, il faut qu'une référence au solveur existe. Pour vérifier que c'est bien le cas ou la créer si ce n'est pas le cas, lancez Visual Basic editor, puis choisissez l'entrée "Références" du menu "Outils" :
La boîte de dialogue de "Références - VBAProject" s'affiche alors :
Vérifier que vous trouvez bien une référence "Solver" et qu'elle est bien activée. Si elle n'est pas activée, activez-là. Si elle est marquée "MANQUANTE" ou qu'elle n'existe pas, cliquez sur le bouton "Parcourir" puis sélectionner le fichier Solver.xla ou Solver.xlam qui doit se trouver dans l'arborescence de vos fichiers Office (par exemple "c:\Program Files (x86)\Microsoft Office\root\Office 16\Library\SOLVER\SOLVER.XLAM" mais le fichier peut se trouver ailleurs). Sélectionnez le fichier puis cliquez sur "OK". Une nouvelle ligne "Solver" doit alors avoir été ajoutée dans la liste des références. Activez-là puis cliquez sur "OK".
Vous pouvez maintenant vérifiez le bon fonctionnement du solveur.
Pour bien comprendre l'utilité du solveur et vérifier sa bonne activation, nous allons lui faire faire une recherche simple. Nous allons lui demander de trouver combien il faut ajouter à 10 pour obtenir 15.
Créez une feuille Excel, puis saisissez dans la troisième colonne de la première ligne, la formule "=A1+B1". Saisissez ensuite dans la seconde colone de la première ligne, le nombre 10.
Maintenant, activez le solveur en sélectionnant l'entrée 'Solveur' du menu 'Outils', ou l'icône "Solveur" du bandeau "Données" à partir d'Excel 2010.
Il faut alors lui indiquer ce que l'on veut. La cellule cible est la cellule "C1", nous souhaitons qu'elle contienne la valeur 15. Saisissez donc "$1" dans le champ "Cellule cible à définir" ou "Objectif à définir" (ou cliquez sur le bouton à droite, contenant la petite flêche rouge, puis sélectionnez la cellule C1. Ensuite, dans la catégorie "Egale à" ou "A", cochez le bouton radio "Valeur" et saisissez la valeur 15.
Enfin, il faut indiquer au solveur le(s) cellule(s) dont il va pouvoir faire jouer le contenu pour essayer d'atteindre sa cible. Nous souhaitons qu'il nous indique combien doit contenir la cellule A1 pour que C1 contienne 15. Saisissez donc "$1" dans le champ "Cellules Variables".
A ce stade, vous devez voir à peu près ceci :
Cliquez maintenant sur le bouton "Résoudre". Après quelques brefs instants, vous devriez obtenir l'affichage suivant :
Ca marche ! On constate bien que la cellule C1 contient la valeur 15, et que la cellule A1 contient bien la valeur 5. Vous pouvez cliquer sur 'OK' pour garder la solution proposée.
Maintenant que nous savons utiliser le solveur, nous allons pouvoir optimiser notre portefeuille.
Accrochez vos ceintures, la suite vous propose enfin la méga-feuille Excel permettant d'optimiser un portefeuille. Ca se passe ici !
Retour au début de la page Retour au sommaire de l'optimisation Retour au sommaire du site
Rubriques
Meilleurs courtiers en Bourse
Meilleurs PEA
Toutes les données du CAC40
Livres finance et Bourse
Newsletter
Pour recevoir nos derniers articles, détachements de dividendes et offres de placements :
Nous contacter ou nous suivre sur les réseaux
Site hébergé par OVH - 2 rue Kellermann - 59100 Roubaix - France - Tel : 09 72 10 10 10