Céline GIRARD Finance & Risk Management Sébastien FARDEL Travail de projet sur VBA Calcul du Ratio de Sharpe Page 1 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL Table des matières : 1. Introduction 3 2. Démarche générale 3 2.1 Récolte de données 2.2 Calculs de rendements 2.3 Calculs de volatilités 2.4 Recherche des taux sans risque 2.5 Calcul du Ratio de Sharpe 3 4 6 8 10 3. Benchmark avec le SMI 3.1 Le SMI 3.2 Structure des indices d’actions de la SWX 3.3 Composition sectorielle du SMI au 29.12.2006 3.4 Comparaison de performance avec les indices 3.5 Caractéristiques du SMI 3.6 Pondération et calcul 3.7 Matrice des écarts de rendements mensuels 3.8 Matrice variance covariance 3.9 Volatilité de l’indice 3.10 Rendements de l’indice 3.11 Calculation du Béta 3.12 Calculation CAPM 3.13 Alpha 13 13 13 14 14 15 16 18 19 20 21 21 21 21 4. Limites du projet 22 5. Exemple 23 6. Conclusion 24 7. Sources 25 Page 2 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 1. Introduction Ce travail a été réalisé dans le cadre du cours à option majeure « Finance & Risk Management » à la HEG de Genève. Nous avons disposé de 3 mois pour le rédiger et en voici le résultat. Veuillez noter que ce dossier ne représente que le support écrit de notre rapport et qu’il est étroitement associé à un document Excel/VBA. Nous vous souhaitons d’ores et déjà une bonne lecture. 2. Démarche générale Lors des points suivants nous allons vous expliquer comment nous avons construit notre démarche ainsi que les différents calculs et fonctions auxquels nous avons procédé. Nous avons aussi intégré des notions théoriques et des formules mathématiques qui faciliteront la compréhension du lecteur. 2.1 Récolte de données Pour effectuer cette étude sur le ratio de Sharpe nous avons décidé de nous baser sur le SMI (Swiss Market Index), cet indice étant celui que nous connaissons le mieux. Nous avons déterminé une période de cotation des titres s’échelonnant du 03.01.2001 au 29.12.2006, soit 6 années complètes pour les 26 titres de l’indice. A l’origine, il était prévu que nous mettions en place un programme capable de télécharger automatiquement les cours mais au vu du temps disponible pour réaliser cette tâche, nous avons finalement effectué notre travail sur des données historiques de 6 ans. Pour récolter toutes les cotations concernées, nous nous sommes basés sur le programme professionnel de finance « Bloomberg ». Nous avons ensuite transféré toutes ces informations sur le programme « Excel ». Pour des raisons de grandeur de fichier nous nous sommes limités à garder que les cotations de fin de mois de chaque titre ainsi que les rendements y relatifs. Page 3 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 2.2. Calcul du rendement Pour trouver le rendement d’un titre il suffit de prendre l’évolution en valeur absolue de ce titre sur une période donnée et diviser ce chiffre par la valeur initiale du titre. Nous avons développé dans VBA les fonctions suivantes : Dans Visual Basic : Function RendtEspMens(rng As Range) As Double Dim NbreCol As Integer Dim Prix As Variant Dim temp As Double 1. 2. 3. 4. NbreCol = rng.Rows.Count Prix = rng.Value temp = 1 For i = 2 To NbreCol 5. 6. 7. 8. temp = temp * RendtSimple(Prix(i - 1, 1), Prix(i, 1)) Next I 9. 10. RendtEspMens = temp ^ (1 / (NbreCol - 1)) – 1 11. End Function 12. Explications : 1. Fonction du rendement espéré mensuel (rng étant égal à une plage de cellule) le résultat de la fonction correspond à une variable double soit une variable numérique avec une grande possibilité de stockage 2. La dimension « NbreCol » doit être interprétée comme une variable entière 3. La dimension « Prix » doit être interprétée comme une variable 4. La dimension « temps » doit être interprétée comme une variable avec une grande capacité de stockage 5. Variable correspond au nombre de ligne d’une plage de cellule sélectionnée. Elle revient à déterminer le nombre de période t qui couvre la sélection de l’utilisateur 6. Le prix doit correspondre à la plage de cellule « Value » 7. La dimension « temp » doit correspondre au chiffre 1 8. Pour chaque itération nombre de ligne contenant le prix. Commence à 2 car le 1er rendement commence à la 2ème période 9. Total de la multiplication des rendements simples mensuels. Fait une boucle pour chaque période 10. Pour l’itération suivante 11. Racine de la Ligne 9 divisé par le facteur n-1 pour trouver : 1+ rendement espéré. On fait +1 donne le rendement espéré 12. Fin de la fonction Page 4 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL Pour calculer notre ratio de Sharpe nous avons voulu y introduire des données annualisées. C’est pour cela que nous avons ajusté nos fonctions dans ce sens. Dans Visual Basic : 'Calcul rendement espéré annualisé RendtEspAnn = ((1 + RendtEspMens(rng)) ^ 12) – 1 13. 14. Explications : 13. On nomme notre calcul au moyen de « ‘ » 14. La dimension « RendtEspAnn » doit correspondre à l’ajout de 1 au calcul du rendement espéré effectué sur les valeurs de la plage de cellule sélectionnée et on l’élève à la puissance 12, le tout diminué de 1 afin d’obtenir un rendement espéré annuel Page 5 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 2.3. Calcul de la volatilité La volatilité correspond en terme mathématique à l’écart-type. Cet écart-type est égal à la racine de la variance, cette dernière étant égale à la somme des carrés des distances entre les différentes valeurs de l'échantillon et la moyenne. Formule de l’écart-type : -1 Dans Visual Basic : Function Volmens(rng As Range) As Double Dim NbreCol As Integer Dim Prix As Variant Dim temp As Double NbreCol = rng.Rows.Count Prix = rng.Value 15. 16. 17. 18. 19. 20. ' calcul vol 21. temp = 0 22. For i = 2 To NbreCol temp = temp + (((RendtSimple(Prix(i - 1, 1), Prix(i, 1)) - 1) - RendtEspMens(rng)) ^ 2) 23. Next i 24. Volmens = ((1 / (NbreCol - 2)) * temp) ^ (1 / 2) 25. End Function 26. Explications : 15. Fonction de la volatilité mensuelle (rng étant égal à la plage de cellule sélectionnée). La variable numérique doit avoir une grande capacité de stockage 16. La dimension « NbreCol » doit être interprétée comme une variable entière 17. La dimension « Prix » doit être interprétée comme une variable 18. La dimension « temps » doit être considérée comme une variable numérique avec une grande capacité de stockage 19. Le nombre de colonnes doit correspondre au nombre de plages de cellule dans ces rangs 20. Le prix doit correspondre à la plage de cellule « Value » 21. On nomme notre calcul au moyen de « ‘ » 22. La dimension « temp » doit correspondre au chiffre 0 Page 6 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 23. Rendement simple + fait appel à une petite fonction qui divise le prix de la période en cours – la période précédente (afin de trouver le rendement de la période en cours). Fait la somme des carrés des écarts entre rendement mensuel de chaque période et rendement espéré 24. Pour l’itération suivante 25. Racine de la ligne 23 divisée par le nombre de périodes de la colonne de prix sélectionnée (il y a n-1 rendement, moins 1 = n-2 pour le calcul de la volatilité) 26. Fin de la fonction Pour que nous puissions utiliser la volatilité dans le calcul du ratio de Sharpe, il est impératif d’annualiser cette volatilité, comme nous l’avons fait pour le rendement. Dans Visual Basic : 'calcul val annualisée VolAnn = Volmens(rng) * (12 ^ 0.5) 27. 28. Explications : 27. On nomme notre calcul au moyen de « ‘ » 28. La dimension « VolAnn » doit correspondre au résultat des calculs de volatilité sur la plage de cellule sélectionnée multiplié par la racine de 12, afin d’annualiser le résultat Page 7 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 2.4. Recherche des taux sans risque Le taux sans risque étant un paramètre important dans la formule du ratio de Sharpe nous avons contacté la BNS (Banque Nationale Suisse) et avons recueilli les données des taux sans risque mensuels à 10 ans de la Confédération. Pour éviter toute confusion, les taux sans risque figurant dans l’onglet « prix mensuels » ont été mensualisés, les informations contenues dans l’onglet « taux sans risque BNS » correspondent à des taux annualisés. Dans Visual Basic : Public Function TauxFMens(rng As Range) As Double 29. Dim NbreCol As Integer Dim Taux As Variant Dim temp As Double NbreCol = rng.Rows.Count 30. 31. 32. 33. temp = 1 For Each Rg In rng 34. 35. temp = temp * (1 + Sheets(2).Range("B" & Rg.Row).Value) 36. Next TauxFMens = (temp ^ (1 / (NbreCol - 1))) – 1 37. 38. End Function 39. Explications : 29. Fonction du taux sans risque (rng étant égal à la plage de cellule) la variable numérique doit avoir une grande capacité de stockage 30. La dimension « NbreCol » doit être interprétée comme une variable entière 31. La dimension «Taux» doit être interprétée comme une variable 32. La dimension « temps » doit être considérée comme une variable numérique avec une grande capacité de stockage 33. Le nombre de colonnes doit correspondre au nombre de ligne de la plages de cellule sélectionnée par l’utilisateur. Elle indique le nombre de période que couvre la plage de cellule 34. La dimension « temp » doit correspondre au chiffre 1 35. Pour chaque cellule contenue à l’intérieur de la plage de cellule 36. total de la multiplication de 1+ tous les taux sûr de la colonne B de chaque période 37. Ensuite 38. Total de la ligne 36 / nombre de période -1, c’est-à-dire les nombre de rendement mensuels 39. Fin de la fonction Page 8 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL Pour être en adéquation avec l’annualisation des autres paramètres de la formule du ratio de Sharpe, alors il nous faut annualiser la valeur mensuelle du taux sans risque. Dans Visual Basic : 'calcul taux sans risque annualisé TauxRFAnn = ((1 + TauxFMens(rng)) ^ 12) – 1 40. 41. Explications : 40. On nomme notre calcul au moyen de « ‘ » 41. La dimension « TauxRFAnn » doit correspondre à l’ajout de 1 au résultat de la fonction « TauxFmens » appliqué à la plage de cellule « TauxFMens », cela élevé à la puissance 12, le tout diminué de 1 afin d’obtenir un taux annuel Page 9 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 2.5. Calcul du ratio de Sharpe Le Ratio de Sharpe Ratio permettant de calculer la performance supérieure d'un investissement par rapport à ce qu'aurait été la performance d'un placement sans risque. Il permet en outre de comparer différents placements entre eux. La formule de calcul du ratio de Sharpe est la suivante : Où : Sp : ratio de Sharpe d'un Portefeuille par exemple Rp : Rendement du portefeuille Rf : Rendement de l'avoir sans risque : Ecart-type du portefeuille (risque du portefeuille). Il ressort immédiatement de cette formule que : • • • Tout ratio de Sharpe négatif indique un placement dont le rendement a été inférieur à celui de l'avoir sans risque mais il reste difficile à interpréter. Tout ratio de Sharpe inférieur à 1 indique un placement dont l'excédent de rendement par rapport au taux sans risque est inférieur au risque pris Un ratio de Sharpe plus élevé est "meilleur" qu'un ratio de Sharpe bas. Page 10 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL A présent, nous avons toutes les informations à disposition pour pouvoir nous concentrer sur ce calcul de notre formule. Nous disposons de la rentabilité annualisée des sous-jacents, des taux sans risque de la Confédération ainsi que les écarts-type ou la volatilité annualisée des 26 titres du SMI. Dans Visual Basic : Function RatioSharp(rng As Range) As Double Dim NbreCol As Integer Dim Prix As Variant Dim temp As Double Dim Taux As Variant Dim RendtEspAnn As Double, VolAnn As Double, TauxRFAnn As Double 42. 43. 44. 45. 46. 47. NbreCol = rng.Rows.Count Prix = rng.Value 48. 49. 'Calcul rendement espéré annualisé RendtEspAnn = ((1 + RendtEspMens(rng)) ^ 12) – 1 50. 51. 'calcul val annualisée VolAnn = Volmens(rng) * (12 ^ 0.5) 52. 53. 'calcul taux sans risque annualisé TauxRFAnn = ((1 + TauxFMens(rng)) ^ 12) – 1 54. 55. 'calcul du ratio de sharp RatioSharp = (RendtEspAnn - TauxRFAnn) / VolAnn 56. 57. End Function 58. Explications : 42. Fonction du ratio de Sharpe (rng étant égal à la plage de cellule sélectionnée par l’utilisateur). La variable doit être numérique et d’une grande capacité 43. La dimension « NbreCol » doit être interprétée comme une variable entière 44. La dimension «Prix» doit être interprétée comme une variable 45. La dimension « temps » doit être considérée comme une variable numérique de grande capacité Page 11 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 46. La dimension «Taux» doit être interprétée comme une variable 47. Les dimensions « RendtEspAnn », « VolAnn » et « TauxRFAnn » doivent être considérées comme une variable numérique de grande capacité 48. Le nombre de colonnes doit correspondre à la période de la plage sélectionnée par l’utilisateur 49. Le prix doit correspondre à la série de prix contenue dans la plage de cellule sélectionnée par l’utilisateur« Value » 50. On nomme notre calcul au moyen de « ‘ » 51. La dimension « RendtEspAnn » doit correspondre à l’ajout de 1 au résultat de la fonction « RendtEspMens » appliqué à la plage de cellule sélectionnée que l’ on élève à la puissance 12, le tout diminué de 1 pour obtenir le rendement espéré annuel 52. On nomme notre calcul au moyen de « ‘ » 53. La dimension « VolAnn » doit correspondre à la « Volmens » de la plage de cellule sélectionnée par l’utilisateur multiplié par la racine de 12 pour annualiser 54. On nomme notre calcul au moyen de « ‘ » 55. La dimension « TauxRFAnn » doit correspondre à l’ajout de 1 au résultat de la fonction « TauxFMens »appliqué à la plage de cellule sélectionnée, cela élevé à la puissance 12, le tout diminué de 1 afin d’obtenir le taux sûr annualisé 56. On nomme notre calcul au moyen de « ‘ » 57. La valeur du Ratio de Sharpe d’un sous-jacent doit être égale à la valeur du rendement espéré annualisé diminué du taux sans risque annualisé, le tout divisé par la volatilité annualisée 58. Fin de la fonction Page 12 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 3. Benchmark avec le SMI Pour notre travail en VBA nous avons choisi de traiter le Ratio de Sharpe sur toutes les actions du SMI du 3 janvier 2001 au 29 décembre 2006. Nous avons naturellement choisi comme benchmark l’indice SMI. 3.1 Le SMI Le Swiss Market Index reflète les tendances des blues chips suisses. Les titres du SMI représentent environ 90% du volume de négoce réalisé sur tous les titres cotés à la SWX. Le SMI a été calculé pour la première fois le 30 juin 1988 avec une base de 1500 points. Sa composition est réactualisée une fois par an. Son calcul s'effectue en temps réel, chaque nouvelle transaction sur un titre inclus dans le SMI provoque un nouveau calcul du niveau de l'indice. La famille SMI® inclut trois indices, à savoir le Swiss Market Index (SMI)®, le SMI MID (SMIM)® et le SMI Expanded®. Elle comprend les titres des plus grandes capitalisations les plus liquides du marché boursier suisse. Elle représente plus de 95% de la capitalisation boursière des actions suisses. L’ensemble du marché suisse (titres suisses) est représenté par la famille d’indices SPI. Le SMI® fait principalement office d’indice non corrigé des dividendes (indice des cours), mais il est également publié en tant qu'indice de performance sous la désignation SMIC® (SMI® Cum Dividend). 3.2 Structure des indices d’actions de la SWX Page 13 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 3.3 Composition sectorielle du SMI au 29.12.2006 3.4 Comparaison des performances avec les indices de blue chips internationaux (TR, CHF ajusté) Page 14 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 3.5 Caractéristiques du SMI Noms Swiss Market Index Symbol SMI Security no. 998089 ISIN CH0009980894 Reuters RIC SSMI Bloomberg ticker SMI Définition Les 30 titres (au maximum) les plus liquides et les plus fortement capitalisés du SPI Méthode de Calcul Laspeyres, pondération par la capitalisation boursière (free float) Valeur de base des Indices Total Return Index : 30.06.1998 = 1 500 Price Index : 30.06.1988 = 1500 Lancement 30.06.1988 Publication Chaque seconde Univers de sélection SPI Critères d’admission Capitalisation minimum (free float) : 0.45% de la capitalisation du SPI Prise en compte du classement trimestriel sur la base du chiffre d’affaires et de la capitalisation Liquidité : min. 50% de la liquidité moyenne du SPI Révision de la composition des Indices Premier jour de négoce du mois d’octobre Ajustement du nombre d’actions et du free float : Premier jour de négoce du mois d’octobre et d’avril Produits basés sur l’indice Futures et options Eurex, warrants, produits structurés, ETF Nombre de titres au 29.12.2006 26 Capitalisation boursière totale (au 29.12.2006) 1'155.6 milliards Capitalisation boursière ajustée du free float (au 29.12.2006) CHF 1065.9 milliards Page 15 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL La pondération des titres au sein de ces indices est basée comme pour tous les indices boursiers SWX sur la capitalisation flottante. Les indices de la famille SMI® sont actualisés en temps réel après chaque transaction et publiés toutes les trois secondes. Puisque les cours historiques du SMI sont réactualisés à chaque transaction suite à sa nouvelle pondération (afin que le prix du panier puisse être comparable), nous avoir choisi de calculer ses rendements et sa volatilité nous même en prenant arbitrairement sa pondération au 29 décembre 2006. 3.6 pondération et calcul ABB LTD N 4.4728591 ROCHE GS 14.4016956 ADECCO N 0.9649796 SERONO -B- I BALOISE N 0.6319834 SGS N CIBA SC N 0.5251528 SWATCH GROUP I 0.8175136 CLARIANT N 0.3940668 SWATCH GROUP N 0.2704833 SWISS LIFE HOLDING N 0.9672626 CS GROUP N 8.6746662 0.5346858 0.7606016 GIVAUDAN N 0.6740346 SWISS RE N 3.3154408 HOLCIM N 2.1203686 SWISSCOM N 0.8079761 JULIUS BAER N 1.1144918 SYNGENTA N 2.0625588 NESTLE N 16.278824 SYNTHES N 0.7918763 NOVARTIS N 16.3951246 UBS N RICHEMONT 3.4770101 ZURICH FINANCIAL N 13.8293771 4.45017 Page 16 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL Les indices de la famille SMI® sont calculés selon la méthode de Laspeyres en effectuant la moyenne arithmétique d'une sélection de titres définie. Le niveau actuel de l’indice s’obtient en divisant la somme des capitalisations des valeurs contenues dans l’indice par un diviseur. Page 17 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL Afin de comparer le titre choisi au Benchmark SMI, nous avons fait une matrice pouvant calculer pour le SMI sa volatilité. Le système de la matrice nous permet de comparer chacune des actions entre elles. Elle agit comme deux boucles. Une grande boucle sélectionne la première action. Une petite boucle permet alors de comparer la première action (exemple : ABB) avec chacune des 25 autres. Puis la grande boucle vient ensuite à la deuxième action pour la comparer aux 25 autres. Ainsi de suite… Grande boucle Petite boucle On constate que la corrélation de l’action ABB par elle-même est égale à 1 3.7 Matrice des Ecarts Rendements mensuels à la moyenne (Géométrique) Permet de calculer pour chaque action le rendement excessif, soit, le rendement mensuel moyen – le rendement espéré Dans Visual Basic : For IntCol = 1 To UBound(Matrice, 1) Prix = rng.Columns(IntCol).Value DblRendtEsp = RendtEspMens(rng.Columns(IntCol)) Matrice(IntCol, 1) = 0 59 60 61 62 For IntLi = 2 To UBound(Matrice, 2) 63 Matrice(IntCol, IntLi) = (RendtSimple(Prix(IntLi - 1, 1), Prix(IntLi, 1)) - 1) – DblRendtEsp 64 Next IntLi 7 Next IntCol 8 Explications : 59. Chaque action (1 à 26) 60. Appel de la fonction du calcul du rendement espéré pour l’action i 61. Concerne les prix des cellules sélectionnées par l’utilisateur Page 18 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 62. Pour la première période pas de rendement donc écart = 0 63. Pour chaque période après la période 1 64. Pour chaque période t, calcul le rendement simple de la période t moins le rendement espéré de l’action i sur toute la période sélectionnée 3.8 Matrice Variance covariance Dans Visual Basic : For i = 1 To NbreCol For j = 1 To NbreCol temp = 0 For IntLi = 1 To NbreLi temp = temp + (Matrice(i, IntLi) * Matrice(j, IntLi)) Next IntLi Covariance(i, j) = temp * (1 / (NbreLi - 2)) 65 66 67 68 69 70 71 Explications : 65. L’action i 66. L’action j 67. Réinitialise 68. Lignes commencent à 1 69. Permet de mesurer pour chacune des action par rapport à elle-même et à chacune des autre la somme des écarts à la moyenne sur la période sélectionnée ∑(xi-E(Ri))*(yj-E(Rj)) 70. Fait en continu jusqu’à la prochaine itération 71. Incrémente dans la matrice résultat de la ligne 5 / n-1 pour normaliser le résultat Page 19 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 3.9 Volatilité de l’indice La volatilité du SMI va tendre vers les écarts types des grandes capitalisations boursières du SMI comme par exemple Nestlé et Novartis plutôt que les petites capitalisations comme ABB. C’est pourquoi nous devons pondérer toutes les actions. Dans Visual Basic : temp = 0 For i = 1 To NbreCol For j = 1 To NbreCol temp = temp + (Varpond(1, i) * Varpond(1, j) * Covariance(i, j)) Next 72 73 74 75 VolIndMens = (temp ^ 0.5) 76 Explications 72. Réinitialise 73. Pour chaque action i 74. Pour chaque action j 75. Proportion respective de chacun des couple d’action(i,i) ou (i,j) multiplié à la covariance (i,i) ou (i,j) 76. Racine de la variance = la volatilité Exemple : Action i1 Action i2 Action i3 Action i1 1 ;1 2 ;1 3 ;1 Action i2 1 ;2 2 ;2 3 ;2 Action i3 1 ;3 2 ;3 3 ;3 Page 20 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 3.10 Rendement de l’indice Dans Visual Basic : temp = 0 For i = 1 To NbreCol temp = temp + (Varpond(1, i) * RendtEspMens(rng.Columns(i))) Next i 77 78 79 80 RendtIndMens = temp 81 Explications 77. Réinitialise 78. Nombre d’action 79. Somme de la proportion de l’action i multiplié par le résultat de la fonction « RendtEspMens » 80.pour chaque action 81. (Se référer à la fonction pour connaître le calcul) 3.11 Calculation du Béta (Cf. Fichier Excel) Somme de toutes les covariances d’une action avec toutes les autres divisé par la volatilité de l’indice = β 3.12 Calculation CAPM (Cf. Fichier Excel) Prime de risque : rendement du marché – taux fixe Rendement espéré = taux fixe + β *prime de risque 3.13 Alpha (Cf. Fichier Excel) Il correspond au rendement réalisé inférieur au rendement que l’on devrait faire selon CAPM. Page 21 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 4. Limites du projet Pour les données sur les titres du SMI cotés à la SWX, nous nous sommes limités à prendre les valeurs mensuelles (cours de fin de mois) et avons adapté nos calculs dans ce sens. Nos fichiers auraient été tout simplement trop chargés. Nous pensons néanmoins que la précision de notre travail reste intacte et l’utilisateur disposera d’informations tout aussi précises et qu’intéressantes. Au sujet des taux sans risques délivrés par la BNS, nous avons mensualisés les taux qui étaient indiqués, pour chaque mois de la période, sous forme annualisée. Par soucis d’adéquation dans nos calculs, par exemple pour le ratio de Sharpe, nous avons pris les taux annualisés correspondant à la période sélectionnée par l’utilisateur. Concernant les explications sur VBA, nous ne pouvons malheureusement pas expliquer toutes les fonctions de nos macros et cela, bien évidemment, pour des questions de temps et de volume du dossier. Néanmoins, les macros principales sont expliquées de manière précise. Page 22 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 5. Exemple Nous avons choisi pour notre exemple, l’action Nestlé, durant la période du 31 décembre 2005 au 29 décembre 2006. Nous pouvons constater que l’action Nestlé à un ratio de Sharpe positif ce qui signifie que compte tenu des risques pris c’est un meilleur investissement que des obligations de la confédération. Cependant, par rapport à l’indice SMI, son ratio de Sharpe est inférieur. On peut voir que si l’action avait eu la même volatilité que le SMI soit 9.25, son rendement n’aurait été que de 5.54% contre 15. 12 pour le SMI (17.8-2.68). On peut ainsi mieux comparer les deux investissements. Le graphique nous illustre très bien le fait que le SMI a un rendement-risque nettement meilleur à l’action Nestlé durant cette période. Page 23 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 6. Conclusion En conclusion, nous pouvons avouer que la complicité du travail dépassait ce à quoi nous nous attendions. Néanmoins nous nous sommes beaucoup basés sur des ouvrages consacrés à VBA et sur des échanges d’opinions sur des forums de discussion consacrés au programme. En réalisant notre travail nous nous sommes rendus compte de la puissance d’un tel outil. Malgré sa difficulté de manipulation, nous pensons qu’une bonne maîtrise de VBA est susceptible de bien aider les risk managers et autres personnes de la profession. Néanmoins, la réalisation d’un tel travail ne fait pas de nous des « professionnels » de VBA, loin de là, l’effort à fournir et la concentration nécessaire à la compréhension de la mise en place d’un tel travail dépasse bon nombre de nos projets respectifs. De ce travail de projet, nous tirons donc un enrichissement personnel et nous pensons même l’utiliser à titre personnel. En effet, l’utilisation de cet outil s’avère très pratique et nous indique des informations qui ne sont pas toujours accessibles. Page 24 sur 25 Céline GIRARD Finance & Risk Management Sébastien FARDEL 7. Sources: 1. Ouvrages : Livre, « Financial Modeling », Simon Benninga, 2nd édition, MIT Press 2. Utilisations de formules mathématiques : http://www.bnains.org/risque/risque.htm 3. Consultation de sites internet pour VBA: http://www.developpez.net/forums/forumdisplay.php?f=28 http://www.forum.moteurprog.com/visual-basic/forum-2-1-0.htm http://www.cathyastuce.com/w-agora/download_forum.php http://www.presence-pc.com/forum/ 4. Consultation de sites internet pour informations boursières : http://www.snb.ch/d/index3.html http://www.swx.com/index.html Page 25 sur 25