J'ai deux colonnes avec les prix quotidiens de deux actifs.
Je souhaite créer une fonction dans VBA pour calculer la moyenne des rendements du portefeuille, ce qui implique que la fonction calcule les rendements et ensuite en fasse la moyenne.
J'ai fait ça mais je ne comprends pas l'erreur:
Function portfolio_mean_return(asset1_prices As Range, asset2_prices As Range, proportionAsset1 As Double) As Variant
'il y a une ligne 0 donc notre tableau a 68 lignes, correspondant aux 69 returns
Dim returnA(68) As Double
For i = 1 To 69
returnA(i - 1) = (asset1_prices(i) - asset1_prices(i + 1)) / asset1_prices(i)
Next i
End
'calcul de la moyenne des returns
Dim A As Double
A = returnA(0)
For k = 1 To 68
A = A + returnA(k)
Next k
End
A = A / 69
'il y a une ligne 0 donc notre tableau a 68 lignes, correspondant aux 69 returns
Dim returnB(68) As Double
For j = 1 To 69
returnB(j - 1) = (asset2_prices(j) - asset2_prices(j + 1)) / asset2_prices(j)
Next j
End
'calcul de la moyenne des returns
Dim B As Double
B = returnB(0)
For l = 1 To 68
B = B + returnB(l)
Next l
End
B = B / 69
portfolio_mean_return = proportionAsset1 * A + (1 - proportionAsset1) * B