1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
| Option Explicit
Sub procIC_MC()
'procédure calculant l'interv de conf à différents horizons _
par la méthode de MC
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'%Déclaration des variables %
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Dim Er As Double 'rendement moyen
Dim vol As Double 'volatilité
Dim nbreSeuils As Integer 'nombre de seuils(périodes des stats)
Dim seuils() As Variant 'seuils + (plage)
Dim samples() As Variant 'variant contenant les échantillons _
des rendements cumulés
Dim rc() As Double 'vecteur générique des rend cumulés.
Dim horizon As Integer 'nombre de périodes d'une trajectoire
Dim nbreSimul As Long 'nombre de trajectoires à créer
Dim c As Double 'cours du titre
Dim r As Double 'rendement
Dim p As Double 'probabilité
Dim i As Integer 'compteur
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'% I.Définitions des paramètres %
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'récupération du rendement moyen et de la volatilité
With ThisWorkbook.Worksheets(1)
Er = .Cells(2, 3).Value
vol = .Cells(3, 3).Value
nbreSeuils = .Cells(.Rows.Count, 1).End(xlUp).Row - 10
seuils = .Cells(11, 1).Resize(nbreSeuils, 1).Value
End With
'récupération de la valeur de horizon
horizon = seuils(nbreSeuils, 1)
'fixation du nombre de trajectoire
nbreSimul = InputBox("Tapez le nombre de trajectoires souhaitées.", , 10000)
'redimensionnement des vecteurs
ReDim rc(1 To nbreSimul) 'par défaut zéro pour chaque élément
ReDim samples(1 To nbreSeuils) 'par défaut, valeur "vide"
For i = 1 To nbreSeuils
samples(i) = rc
Next i
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'% II.Simulation des trajectoires %
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'boucle sur les trajectoires (de 1 à nbreSimul)
'initialisation du cours à 1
'boucle sur les périodes (de 1 à horiszon)
'tirage de p(avec Randomize et Rnd)
'gestion des valeurs incompatibles avec la loi normale
'calcul du rendement r (avec NomrInv)
'calcul du nouveau cours
'récupération de c-1 si période est un seuil
'fin de la boucle sur les périodes
'fin de la boucle sur les trajectoires
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'% III.Calcul des statistiques %
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
End Sub |
Partager