2016-05-27 8 views
1

Ich habe ein data.frame Objekt enthält EHTS- Daten:to.hourly Hinzufügen öffnen und schließen Spalten

head(data,3) 
Timestamp   Open High Low Close Vol 
2016-02-05 13:45:00 1161.9 1162.4 1161.7 1161.8 592 
2016-02-05 13:50:00 1161.8 1163.2 1161.7 1162.5 643 
2016-02-05 13:55:00 1162.5 1164.7 1162.1 1164.5 1072 

ich eine andere data.frame die Hochs und Tiefs cols dann erstellen Extrahieren:

x <- data[,c("High","Low")] 

Welche gibt :

head(x,3) 
Timestamp   High Low 
2016-02-05 13:45:00 1162.4 1161.7 
2016-02-05 13:50:00 1163.2 1161.7 
2016-02-05 13:55:00 1164.7 1162.1 

Und dann stündlich konvertieren:

x <- xts::to.hourly(x, indexAt='startof') 

die irgendwie auf die „Open“, ergänzt zurück und „Schließen“, Spalten, obwohl sie nicht in „x“ nicht existierte:

head(x,3) 
Timestamp   x.Open x.High x.Low x.Close 
2016-02-05 13:45:00 1162.4 1164.7 1162.4 1164.7 
2016-02-05 14:00:00 1167.2 1176.7 1167.1 1176.7 
2016-02-05 15:00:00 1176.3 1176.3 1174.9 1176.2 

Die Werte in den Öffnen und Schließen Spalten sind, als ob sie kamen von data eher als x, aber wie hat es diese Werte erhalten, wenn ich data in diese Funktion nicht übergeben habe?

Offensichtlich gibt es hier eine einfache Arbeit, die (wieder) die Spalten Öffnen und Schließen nach der to.hourly Funktion entfernen soll, aber ist das erwartete Verhalten, oder fehlt mir etwas wirklich einfaches?

Antwort

1

Die Ausgabe ist als erwartetes Verhalten sinnvoll. Sie reduzieren 5-Minuten-Bars auf Stunden-Bars. to.hourly wird versuchen, OHLC-Zeitreihen bei einer niedrigeren Frequenz zu machen, wenn Sie Ihre Eingaben eingeben, nicht nur die stündliche HL-Zeitreihe.

to.hourly ist ein Wrapper zu to.period in Paket xts. Gemäß der Dokumentation für to.period:

ein EHTS- konvertieren oder univariate Objekt auf eine bestimmte Periodizität niedriger als das Datenobjekt angegeben. Konvertieren Sie beispielsweise eine tägliche Serie in eine monatliche Serie oder eine monatliche Serie in eine jährliche oder eine Serie in eine stündliche Serie.

Das Ergebnis wird das Öffnen und Schließen für den gegebenen Zeitraum, wie sowie die maximalen und minimalen über die neue Periode enthält, in die neuen hoch und niedrig bzw. reflektierte.

Sie haben nicht die 5 min Bars jenseits 13.55.00 gezeigt, so ist es nicht klar, ob die 1167,2 Öffnen auf Stunden Balken 14.00.00 Sinn macht, da Sie nicht wissen, , Arbeiten mit nur HL-Daten, ob der High- oder Low-Preis zuerst kam (als Proxy für den Open-Preis). Sie müssen sich den Quellcode ansehen, um zu sehen, welche Annäherungen bei der Erzeugung dieser Stundenöffnungskurse gemacht werden (die logischerweise nicht richtig oder falsch sind, wenn nur HL-Bar-Daten vorliegen). Wenn Sie mit Intraday-Bar-Daten arbeiten, hilft es, zumindest die HLC zu kennen, nicht nur HL.

+0

Nicht sicher, warum die Änderungen gemacht wurden, bekomme ich jetzt einen Fehler, wenn ich die 'xts ::' zu der stündlichen Umwandlung hinzufüge, also bleibe bei meiner ursprünglichen Methode. Ich habe von Anfang an mit XTS-Objekten gearbeitet (und hier den Namen 'Timestamp' col in den Beispielen hinzugefügt, um die Lesbarkeit zu verbessern). Wie auch immer, nachdem ich die Daten etwas genauer betrachtet habe, stellt sich heraus, dass es nur die OHLC der Spalte "Hoch" zurückgibt, die ich übergebe. –

Verwandte Themen