Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Kovarianz für ein Aktienportfolio in Excel rechnen

Kovarianz für ein Aktienportfolio in Excel rechnen
22.04.2008 17:14:36
DirkR
Hallo Ex(cel)perten,
momentan habe ich ein grösseres Problem bei mir auf dem Tisch liegen und ich frage mich, ob das evtl. einer von Euch schon mal darstellt hat und mir bei der Lösung behilflich sein könnte, evtl. gibt es sogar irgendwo schon eine Vorlage.
Für ein Aktienportfolio (siehe Anhang) möchte ich gerne über die Varianz das Risiko berechnen, für die einzelnen Positionen ist das kein Problem, aber jetzt würde ich das gerne für das Gesamtportfolio rechnen. Hierfür muss ich die Kovarianzen der einzelnen Titel untereinander berücksichtigen. Die Kovarianzmatrix ist auch schon in der Datei enthalten.
Hat einer von Euch das schon mal umgesetzt auf Basis dieses Daten die Varianz, bzw. das Risiko des Portfolios zu berechnen?
https://www.herber.de/bbs/user/51769.xls
Viele Dank im voraus für Eure Hilfe.
Gruss
Dirk
Userbild

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kovarianz für ein Aktienportfolio in Excel rec
22.04.2008 20:59:00
matthias
Here you are:

Sub KorrelMatrix_Beispiel()
Dim nAssets%
Dim nData%
Dim inZelle As Range
Set inZelle = Range("a2")
nAssets = inZelle.End(xlToRight).Column - inZelle.Column
nData = inZelle.End(xlDown).Row - inZelle.Row
Call Korrel_KoVar_Matrix(inZelle, Range("aw5"), nAssets, nData, False)
End Sub



Sub Korrel_KoVar_Matrix(Quellzelle As Range, Zielzelle As Range, nAssets%, nWerte%,  _
KovarianzFlag As Boolean)
Dim i As Integer, j As Integer, k As Integer
Dim RisikoWert As Double
Dim Spalte1() As Double
Dim Spalte2() As Double
ReDim Spalte1#(nWerte%)
ReDim Spalte2#(nWerte%)
For i% = 1 To nAssets%
Zielzelle.Offset(0, i%) = Quellzelle.Offset(0, i%)
Zielzelle.Offset(i%, 0) = Quellzelle.Offset(0, i%)
For j% = 1 To nAssets%
' Einlesen der Renditen in Arrays
For k% = 1 To nWerte%
Spalte1#(k%) = Quellzelle.Offset(k%, i%)
Spalte2#(k%) = Quellzelle.Offset(k%, j%)
Next k%
' Berechnen der Kovarianzen und Ablegen in Tabelle
If KovarianzFlag = True Then
RisikoWert# = Application.WorksheetFunction.Covar(Spalte1#(), Spalte2#())
RisikoWert# = RisikoWert# * 12       ' Annualisieren
Else
RisikoWert# = Application.WorksheetFunction.Correl(Spalte1#(), Spalte2#())
End If
Zielzelle.Offset(i%, j%).Value = RisikoWert#
Next j%
Next i%
If KovarianzFlag = True Then
Zielzelle = "Kovarianz"
Else
Zielzelle = "Korrelation"
End If
End Sub


>

Anzeige
AW: Kovarianz für ein Aktienportfolio in Excel rec
23.04.2008 11:41:00
DirkR
Super, vielen Dank schon mal dafür!
Ich bin jetzt leider noch nicht so 100%ig fit in VBA, könntest du mir evtl. noch sagen, welchen Teil ich von den Makros anpassen muss damit es bei mir läuft?
Vielen vielen Dank!
Dirk

AW: Kovarianz für ein Aktienportfolio in Excel rec
23.04.2008 12:01:00
matthias
ja gerne:
die Daten sollten wie folgt angegeben werden:
Bsp. B1 bis E1 - Datenreihenbeschriftung; B2 bis E.... die Renditen
Im Makro inZelle = Range("a1") ändern
in Call Korrel_KoVar_Matrix(inZelle, Range("aw5"), nAssets, nData, False) ggf. Range("aw5") ändern - Ausgabebereich ; das False an der letzten Stelle erzeugt eine Korrellationsmatrix bei True eine Kovarianzmatrix
Viel Erfolg.

Anzeige
AW: Kovarianz für ein Aktienportfolio in Excel rec
23.04.2008 12:13:00
DirkR
ok danke. ich versuch mal mein glück.

AW: Kovarianz für ein Aktienportfolio in Excel rec
23.04.2008 13:04:00
matthias
ach so, in der in der Spalte a1 bis a... sollte etwas stehen, da das Makro daran die Inputs zählt....
;
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige