wäre sehr nett wenn mir jemand helfen könnte.
Was ich machen will: Ich habe tägliche Aktienrenditen von verschiedenen Firmen. (Der Datensatz ist ungefähr so wie auf dem Bild:)
Nun möchte ich monatliche Renditen berechnen, also alle täglichen Renditen innerhalb eines Monats multiplizieren.
Hierbei besteht ein Monat aus 22 Tagen (Handelstage).
dafür verwende ich folgenden Code:
- Code: Alles auswählen
sort Firma Tag
generate monthly_return=(1+ret[_n+1])*(1+ret[_n+2])*(1+ret[_n+3])/*
*/ *(1+ret[_n+4])*(1+ret[_n+5])*(1+ret[_n+6])*(1+ret[_n+7])/*
*/ *(1+ret[_n+8])*(1+ret[_n+9])*(1+ret[_n+10])*(1+ret[_n+11])/*
*/ *(1+ret[_n+12])*(1+ret[_n+13])*(1+ret[_n+14])*(1+ret[_n+15])/*
*/ *(1+ret[_n+16])*(1+ret[_n+17])*(1+ret[_n+18])*(1+ret[_n+19])/*
*/ *(1+ret[_n+20])*(1+ret[_n+21])-1 /*
*/ if Firma==Firma[_n+21] & Monat==Monat[_n+21]
Das funktioniert ganz gut, es gibt aber ein Problem: Während ich grundsätzlich pro Firma 36 Monate an Beobachtungen habe (36 * 22), enden die Beobachtungen bei einigen Firmen irgendwann innerhalb des Monats (Da die Aktie von der Börse genommen wurde.) Bei diesen Firmen hat dann der letzte Monat nicht mehr 22 Tage und mein Code versagt.
Hat jemand eine Idee, wie man das lösen könnte?