Ich habe ein paar Schwierigkeiten mit Stata und hoffe das mir jemand hier helfen kann. Mein Datensatz sieht momentan so aus:
- Code: Alles auswählen
* Example generated by -dataex-. To install: ssc install dataex
clear
date str26 Firm double return float(adjret adjretadd1)
12058 "ABBLTDN" -.005597377634159429 -.005597378 .9944026
12059 "ABBLTDN" .0028647961300604825 .002864796 1.0028648
12061 "ABBLTDN" -.022515258379255495 -.02251526 .9774848
12064 "ABBLTDN" -.00855961789510194 .034238473 1.0342385
end
format %td date
Ich habe ca. 300 Firmen und für diese tägliche Returns vom 1993-2018 (also über 1.3 mio values). Die letzte Spalte (adjretadd1) ist der "veränderte" Return mit meinen Portfolios und zudem +1 um diese multiplizieren zu können. Nun meine Frage: Ich müsste nun die täglichen Returns multiplizieren um Monatsreturns zu erhalten. Konkretes Beispiel: Ich muss den adjretadd1 für 04. Januar 1993, 05. Januar 1993...29. Januar 1993 multiplizieren und das Resultat daraus wäre dann Monthly return. Was ich bisher habe:
- Code: Alles auswählen
gen month = mofd(date)
format month %tm
Mit diesem habe ich geschafft, dass ich eine Variable month habe welche für jeden Tag im Januar erkennt, dass dies zum Jahr und Monat gehört. Also steht z.B. in der Spalte vom 04. Januar 1993 dann in der Variable month 1993m1 und dies für alle Monate und alle Jahre und alle Firmen.
- Code: Alles auswählen
collapse (sum) return, by(Firm month)
Mit diesem command wäre das Ziel erreicht, jedoch summiert dieser nur, ich müsste aber multiplizieren.
Kann mir jemand weiterhelfen? Ich wäre um jede Hilfe sehr dankbar! Falls ich etwas unklar formuliert habe, oder ihr mehr Data example braucht, würde ich dies natürlich sofort liefern.
Gruss