Поэтому мне интересно, как я могу рассчитать среднюю корреляцию среди акций, чьи корреляции составляют от 20% (LB) до 70% (UB).
Я должен использовать эту функцию VBA AvgRhoBounded(Ret, LB, UB)
LB обозначает нижнюю границу, а UB обозначает верхнюю границу. Ret - это данные, которые у меня уже есть. Пока это то, что я сделал, и я не уверен, правильно ли это ..
КОД:
Function AvgRhoBounded(RET, LB, UB)
' get number of assets
n = data.Columns.Count
' add up all returns
total_rho = 0
n_rho = 0
For i = 1 To n
For j = i + 1 To n
rho_ij = Application.WorksheetFunction.Correl(data.Columns(i), data.Columns(j))
total_rho = total_rho + rho_ij
n_rho = n_rho + 1
Next j
Next i
' return average correlations
AvgRho = total_rho / n_rho
'calculating the average correlation between stocks whose correlation are between 20% and 70%
Dim LB As String
Dim Lowerbound As String
Dim RET As String
Dim UB As String
Dim Upperbound As String
If LB = 20 Then
Lowerbound = 20
ElseIf UB = 70 Then
Upperbound = 70
End If
End Function