Berechnen Sie die Rückgabe über einen bestimmten Zeitraum

8

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

    
Dani 17.12.2010, 16:38
quelle

6 Antworten

8

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:

%Vor%

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):

%Vor%

Die zwei Ansätze sind die gleichen:

%Vor%     
Richard Herron 17.12.2010, 19:56
quelle
7

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%     
Chris Taylor 17.12.2010 18:44
quelle
4

Sie können die Funktion ROC im TTR-Paket verwenden oder Sie können einfach eine eigene Funktion erstellen.

%Vor%     
Joshua Ulrich 17.12.2010 16:45
quelle
1

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%     
42- 17.12.2010 17:33
quelle
1

Die folgende Funktion sollte es tun:

%Vor%

Beispiel Eingabe und Ausgabe:

%Vor%     
Chris Taylor 17.12.2010 18:40
quelle
-1

Beispieldaten

%Vor%

Berechne 1 Tag Log Return

%Vor%

Berechnen Sie 10 Tage Log Return

%Vor%

Ergebnisse:

%Vor%

verifizieren mit:

%Vor%

Ähnlich kann die 20-Tage-Rückgabe mit einem größeren Beispieldatum berechnet und verwendet werden

%Vor%

oder in Ihrem Fall

%Vor%     
CK TUNG 14.04.2014 04:22
quelle

Tags und Links