Es ist ein VBA Kurs:
Berechnet werden sollen jeweils die Erwartungswerte und (Stichproben-)Standardabweichungen auf Basis von 60 Handelstagen.
Nachdem die durchschnittliche Tagesrendite und Tagesstandardabweichung berechnen 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.
Daher wäre es cool, wenn ich meinen zum laufen bringe, weil ich denke mal deine, die ich jetzt so langsam verstehe, ist etwas zu komplex...
Option Explicit
Option Base 1
Sub Aufgabe2()
Dim wb As Workbook
Set wb = Workbooks("Kopie von Einzelassignment2.xlsm")
Dim ws1 As Worksheet
Set ws1 = Worksheets("Siemens")
Dim ws2 As Worksheet
Set ws2 = Worksheets("Ausgabe")
Dim rendite() As Double
Dim WinAve(1, 1141) As Single
Dim WinStd(1, 1141) As Single
Dim St As Variant
Dim t As Double
t = ws1.Cells(1, 1).End(xlDown).Row
St = ws1.Range("G2:G" & t)
Dim i As Single
Dim n As Single
ReDim rendite(UBound(St) - 1)
For n = 1 To UBound(St) - 1
rendite(n) = (St(n, 1) / St(n + 1, 1)) - 1
Next n
For i = 1 To 1141
WinAve(1, i) = WorksheetFunction.Average(Range(rendite(i + 1), rendite(i + 60)))
WinStd(1, i) = WorksheetFunction.StDev(Range(rendite(i + 1), ws1.Cells(i + 60)))
ws2.Range("A" & i + 1).Value = WinAve(1, i)
ws2.Range("B" & i + 1).Value = WinStd(1, i)
Next i
End Sub
|