Céline GIRARD Finance & Risk Management Sébastien FARDEL Page 1 sur 25 Travail
Céline GIRARD Finance & Risk Management Sébastien FARDEL Page 1 sur 25 Travail de projet sur VBA Calcul du Ratio de 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 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. 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 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 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 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 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. uploads/Finance/ projet-vba-ratio-sharpe.pdf
Documents similaires








-
46
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 22, 2021
- Catégorie Business / Finance
- Langue French
- Taille du fichier 0.3478MB