lebarbo
XLDnaute Occasionnel
Bonjour le forum, bonjour à tous,
Je souhaite faire une fonction sur ce qu'on appelle la tracking error dans le langage financier c'est à dire :
1/ J'ai deux séries de nombre
2/ Je dois calculer la rentabilité périodique de chacune des deux séries (c'est à dire [n/n-1]-1 ; [n+1/n]-1...)
3/ Je dois faire la différence entre chaque rentabilité périodique ce qui me donne la série ultime "u" ; )
exemple série n & série o
[n/n-1]-1 - [o/o-1] - 1 = u
[n+1/n]-1 - [o+1/o] - 1 = u1...
4/ Je fais un ecart type de cette série que je multiplie par la racine du "pas" de calcul (52 pour une série de rentabilité périodique.
Voilà ce que je souhaiterais faire dans une function mais j'ai franchement du mal avec le point 3/ où je dois faire un tableau virtuel dans la tête de "Monsieur VBA" si vous avez des idées...
Voilà mon premier bout de code :
Function Tracking_Error(PlageFonds As Range, PlageIndice As Range, Pas As Range)
NbLignesFonds = PlageFonds.Rows.Count
NbLIgnesIndice = PlageIndice.Rows.Count
ReDim Difference(2 To NbLignesFonds)
'calcul de la différence des rentabilités
For I = 2 To NbLignesFonds
Difference(I) = (PlageFonds.Cells(I, 1).Value / PlageFonds.Cells(I - 1, 1).Value - 1) - (PlageIndice.Cells(I, 1).Value / PlageIndice.Cells(I, 1).Value - 1)
Next I
Tracking_Error = Application.WorksheetFunction.StDev(Difference(I)) * Application.WorksheetFunction.SQRT(Pas)
End Function
Merci d'avance pour vos suggestions
Je souhaite faire une fonction sur ce qu'on appelle la tracking error dans le langage financier c'est à dire :
1/ J'ai deux séries de nombre
2/ Je dois calculer la rentabilité périodique de chacune des deux séries (c'est à dire [n/n-1]-1 ; [n+1/n]-1...)
3/ Je dois faire la différence entre chaque rentabilité périodique ce qui me donne la série ultime "u" ; )
exemple série n & série o
[n/n-1]-1 - [o/o-1] - 1 = u
[n+1/n]-1 - [o+1/o] - 1 = u1...
4/ Je fais un ecart type de cette série que je multiplie par la racine du "pas" de calcul (52 pour une série de rentabilité périodique.
Voilà ce que je souhaiterais faire dans une function mais j'ai franchement du mal avec le point 3/ où je dois faire un tableau virtuel dans la tête de "Monsieur VBA" si vous avez des idées...
Voilà mon premier bout de code :
Function Tracking_Error(PlageFonds As Range, PlageIndice As Range, Pas As Range)
NbLignesFonds = PlageFonds.Rows.Count
NbLIgnesIndice = PlageIndice.Rows.Count
ReDim Difference(2 To NbLignesFonds)
'calcul de la différence des rentabilités
For I = 2 To NbLignesFonds
Difference(I) = (PlageFonds.Cells(I, 1).Value / PlageFonds.Cells(I - 1, 1).Value - 1) - (PlageIndice.Cells(I, 1).Value / PlageIndice.Cells(I, 1).Value - 1)
Next I
Tracking_Error = Application.WorksheetFunction.StDev(Difference(I)) * Application.WorksheetFunction.SQRT(Pas)
End Function
Merci d'avance pour vos suggestions