Hallo ich habe folgende Aufgabe
Erwartungswerte und Standardabweichungen der Siemens-Tagesrendite innerhalb eines beweglichen
Fensters
Berechnet werden sollen jeweils die Erwartungswerte und (Stichproben-)Standardabweichungen auf
Basis von 60 Handelstagen. Das Tabellenblatt „Siemens“ beinhaltet die adjustierten Schlusskurse bis
zum 19.12.2013. Das erste Stichprobenfenster bezieht sich auf den Zeitraum vom 27.09.2013-
19.12.2013, also auf die ersten 60 Einträge. Nachdem die durchschnittliche Tagesrendite und
Tagesstandardabweichung berechnet wurden, verschiebt sich das Fenster um einen Handelstag nach
hinten. Insgesamt sollen die letzten 1200 Handelstage schrittweise in 60-Tage-Fenstern betrachtet und
die Ergebnisse in jeweils einen Vektor für die Durchschnitte (Name: WinAve) und einen Vektor für die
Standardabweichungen (Name: WinStd) eingetragen werden.
Nachdem beide Ergebnisvektoren befüllt sind, sollen die Inhalte der Vektoren auf dem Tabellenblatt
„Ausgabe“ ausgegeben werden. Für die resultierenden zwei Zeitreihen, die die Veränderung des
Durchschnittes und der Standardabweichung im Zeitablauf beschreiben, soll jeweils eine Grafik auf dem
Tabellenblatt „Ausgabe“ erstellt werden (Grafik von Hand, ohne VBA).
Das ist mein bisheriger Code:
Sub Aufgabe2()
Dim ws As Worksheet
Dim ws2 As Worksheet
Dim AdjClose As Variant
Dim r As Long, a As Long, c As Long, Erwartungswert As Double, Standartabweichung As Double, n As Long, rSie() As Double
Dim WinAve As Single, WinStd As Single
Dim i As Byte
Set ws = Worksheets("Siemens")
Set ws2 = Worksheets("Ausgabe")
r = ws.Cells(1, 1).End(xlDown).Row
AdjClose = ws.Range("G2.G" & r)
ReDim rSie(UBound(AdjClose) - 1)
X = 1200
n = 20
For a = 1 To 1200
For n = a To 59 + a
rSie(n) = Log(AdjClose(n, 1)) - Log(AdjClose(n + 1, 1))
Next n
Erwartungswert = WorksheetFunction.Average(rSie, [n, n + 59])
Standardabweichung = WorksheetFunction.StDev_S(rSie, [n, n + 59])
c = ws2.Cells(1, 1).End(xlDown).Row
Erwartungswert = ws2.Range("A2").Value = Cells(1, 1 + a)
Standardabweichung = ws2.Range("B2").Value = Cells(2, 1 + a)
Ich hoffe jemand kann mir helfen
Vielen Dank
|