Ich versuche eine Zeitreihe von Renditen zu erhalten, um ein bestimmtes Asset für eine bestimmte Zeit zu halten.
Mein Datenrahmen sieht so aus:
%Vor%Ich habe 1 Beobachtung für jeden Tag und meine Zeitreihe geht von 1998-1999.
Was ich jetzt tun möchte, ist eine Rendite zu berechnen, um meinen Vermögenswert 20 Tage lang zu halten (d. h. es am ersten Tag zu kaufen und es am Tag 20 zu verkaufen), und dies für jeden Tag. Also ich möchte das berechnen:
1. Tag: Zurück (20 Tage) = log (Preis (t = 20) / Preis (t = 0)),
2. Tag: Zurück (20 Tage) = log (Preis (t = 21) / Preis (t = 1)),
3. Tag: Rückkehr (20 Tage) = log (Preis (t = 22) / Preis (t = 2))
usw., d. h., tue dies für jeden Tag in meiner Probe.
Also würde mein resultierender Datenrahmen wie folgt aussehen:
%Vor%Gibt es einen Weg in R: Sagen Sie die ersten 20 Beobachtungen, berechnen Sie die Rendite. Nehmen Sie Beobachtung 2-21, berechnen Sie die Rendite. Nehmen Sie die Beobachtung 3-22, berechnen Sie die Rendite etc?
Ich stehe total fest und würde mich über Hilfe freuen. Vielen Dank! Dani
Ich schlage vor, zu einer Zeitreihenklasse zu wechseln, zB xts
oder zoo
. Aber wenn Sie es einfach machen wollen, und später mehr lernen, können Sie es ziemlich einfach als Datenrahmen machen. Beachten Sie, dass ich die Rückgabevektoren mit NA
s auffüllen muss, damit sie richtig ausgerichtet ist und dass ein hold
von 20 wirklich auf 1 kauft und auf 1 + 20 verkauft:
Wenn Sie bereit sind für xts
oder zoo
(das sollte in beiden funktionieren), dann empfehle ich rollapply
zu verwenden, um das Vorwärts-Aussehen zu erhalten (vorausgesetzt, Sie wollen die vorwärts gerichtete Rückkehr, die es sehr macht einfacher, heute Portfolios zu bilden und zu sehen, wie es in die Zukunft funktioniert):
Die zwei Ansätze sind die gleichen:
%Vor%Alternativ, wenn Sie das Paket xts verwenden, wird das Leben unglaublich einfach gemacht. Dies ist eine direkte Kopie einer Funktion, die ich vor einiger Zeit selbst geschrieben habe:
%Vor% Sie können die Funktion ROC
im TTR-Paket verwenden oder Sie können einfach eine eigene Funktion erstellen.
Sie können Offset-Indizes einfach verwenden, indem Sie von einem Bereich subtrahieren. (... aber denken Sie daran, dass R 0 nicht als gültigen Index verwendet.) Nehmen wir an, Ihre Preise sind die zweite Spalte in einem Datenrahmen namens prcs2 die ersten drei gibt es mit einem Intervall von 19 Tagen mit Ihren Daten wäre:
%Vor%Die folgende Funktion sollte es tun:
%Vor%Beispiel Eingabe und Ausgabe:
%Vor%Tags und Links r return time-series