Как рассчитать среднюю корреляцию среди акций - PullRequest
0 голосов
/ 29 февраля 2020

Поэтому мне интересно, как я могу рассчитать среднюю корреляцию среди акций, чьи корреляции составляют от 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
...