Projet VBA Ratio Sharpe

25
Céline GIRARD Finance & Risk Management Sébastien FARDEL Page 1 sur 25 Travail de projet sur VBA Calcul du Ratio de Sharpe

Transcript of Projet VBA Ratio Sharpe

Page 1: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 1 sur 25

Travail de projet sur VBA

Calcul du Ratio de Sharpe

Page 2: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 2 sur 25

Table des matières : 1. Introduction 3 2. Démarche générale 3

2.1 Récolte de données 3 2.2 Calculs de rendements 4 2.3 Calculs de volatilités 6 2.4 Recherche des taux sans risque 8 2.5 Calcul du Ratio de Sharpe 10

3. Benchmark avec le SMI 13

3.1 Le SMI 13 3.2 Structure des indices d’actions de la SWX 13 3.3 Composition sectorielle du SMI au 29.12.2006 14 3.4 Comparaison de performance avec les indices 14 3.5 Caractéristiques du SMI 15 3.6 Pondération et calcul 16 3.7 Matrice des écarts de rendements mensuels 18 3.8 Matrice variance covariance 19 3.9 Volatilité de l’indice 20 3.10 Rendements de l’indice 21 3.11 Calculation du Béta 21 3.12 Calculation CAPM 21 3.13 Alpha 21

4. Limites du projet 22 5. Exemple 23 6. Conclusion 24 7. Sources 25

Page 3: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 3 sur 25

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 4: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 4 sur 25

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 1. Dim NbreCol As Integer 2. Dim Prix As Variant 3. Dim temp As Double 4. NbreCol = rng.Rows.Count 5. Prix = rng.Value 6. temp = 1 7. For i = 2 To NbreCol 8. temp = temp * RendtSimple(Prix(i - 1, 1), Prix(i, 1)) 9. Next I 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 5: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 5 sur 25

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é 13. RendtEspAnn = ((1 + RendtEspMens(rng)) ^ 12) – 1 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 6: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 6 sur 25

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 15. Dim NbreCol As Integer 16. Dim Prix As Variant 17. Dim temp As Double 18. NbreCol = rng.Rows.Count 19. Prix = rng.Value 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 7: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 7 sur 25

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 27. VolAnn = Volmens(rng) * (12 ^ 0.5) 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 8: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 8 sur 25

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 30. Dim Taux As Variant 31. Dim temp As Double 32. NbreCol = rng.Rows.Count 33. temp = 1 34. For Each Rg In rng 35. temp = temp * (1 + Sheets(2).Range("B" & Rg.Row).Value) 36. Next 37. TauxFMens = (temp ^ (1 / (NbreCol - 1))) – 1 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 9: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 9 sur 25

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é 40. TauxRFAnn = ((1 + TauxFMens(rng)) ^ 12) – 1 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 10: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 10 sur 25

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 11: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 11 sur 25

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 42. Dim NbreCol As Integer 43. Dim Prix As Variant 44. Dim temp As Double 45. Dim Taux As Variant 46. Dim RendtEspAnn As Double, VolAnn As Double, TauxRFAnn As Double 47. NbreCol = rng.Rows.Count 48. Prix = rng.Value 49. 'Calcul rendement espéré annualisé 50. RendtEspAnn = ((1 + RendtEspMens(rng)) ^ 12) – 1 51. 'calcul val annualisée 52. VolAnn = Volmens(rng) * (12 ^ 0.5) 53. 'calcul taux sans risque annualisé 54. TauxRFAnn = ((1 + TauxFMens(rng)) ^ 12) – 1 55. 'calcul du ratio de sharp 56. RatioSharp = (RendtEspAnn - TauxRFAnn) / VolAnn 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 12: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 12 sur 25

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 13: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 13 sur 25

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 14: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 14 sur 25

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 15: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 15 sur 25

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 16: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 16 sur 25

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

ADECCO N 0.9649796

BALOISE N 0.6319834

CIBA SC N 0.5251528

CLARIANT N 0.3940668

CS GROUP N 8.6746662

GIVAUDAN N 0.6740346

HOLCIM N 2.1203686

JULIUS BAER N 1.1144918

NESTLE N 16.278824

NOVARTIS N 16.3951246

RICHEMONT 3.4770101

ROCHE GS 14.4016956

SERONO -B- I 0.5346858

SGS N 0.7606016

SWATCH GROUP I 0.8175136

SWATCH GROUP N 0.2704833

SWISS LIFE HOLDING N 0.9672626

SWISS RE N 3.3154408

SWISSCOM N 0.8079761

SYNGENTA N 2.0625588

SYNTHES N 0.7918763

UBS N 13.8293771

ZURICH FINANCIAL N 4.45017

Page 17: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 17 sur 25

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 18: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 18 sur 25

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

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) 59 Prix = rng.Columns(IntCol).Value 60 DblRendtEsp = RendtEspMens(rng.Columns(IntCol)) 61 Matrice(IntCol, 1) = 0 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

Petite boucle On constate que la corrélation de l’action ABB par elle-même est égale à 1

Page 19: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 19 sur 25

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 65 For j = 1 To NbreCol 66 temp = 0 67 For IntLi = 1 To NbreLi 68 temp = temp + (Matrice(i, IntLi) * Matrice(j, IntLi)) 69 Next IntLi 70 Covariance(i, j) = temp * (1 / (NbreLi - 2)) 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 20: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 20 sur 25

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 72 For i = 1 To NbreCol 73 For j = 1 To NbreCol 74 temp = temp + (Varpond(1, i) * Varpond(1, j) * Covariance(i, j)) 75 Next

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 21: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 21 sur 25

3.10 Rendement de l’indice Dans Visual Basic : temp = 0 77 For i = 1 To NbreCol 78 temp = temp + (Varpond(1, i) * RendtEspMens(rng.Columns(i))) 79 Next i 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 22: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 22 sur 25

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 23: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 23 sur 25

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 24: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 24 sur 25

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 25: Projet VBA Ratio Sharpe

Céline GIRARD Finance & Risk Management

Sébastien FARDEL

Page 25 sur 25

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