Unregelmäßige Intraday-Daten regularisieren
Zuvor hast du gelernt, wie du aus unregelmäßigen Tagesdaten eine regelmäßige tägliche Serie erstellst. Jetzt wirst du aus einer unregelmäßigen Serie regelmäßige Intraday-Daten erzeugen.
Intraday-Finanzdaten decken oft keine vollen 24 Stunden ab. Die meisten Märkte sind einen Teil des Tages geschlossen. In dieser Übung wird angenommen, dass die Märkte montags bis freitags von 9:00 bis 16:00 Uhr geöffnet sind.
Deine Daten enthalten möglicherweise keine Beobachtung genau zur Marktöffnung und/oder zum -schluss. Daher kannst du start() und end() nicht wie bei den täglichen Daten verwenden. Du musst die Start- und End-Zeitpunkte angeben, um diese regelmäßige Sequenz zu erzeugen.
Die regelmäßige Datums-Zeit-Sequenz enthält auch Zeiträume, in denen die Märkte geschlossen sind. Du kannst jedoch das Subsetting nach Tageszeit in xts verwenden, um nur die Zeiträume zu extrahieren, in denen der Markt geöffnet ist.
Diese Übung ist Teil des Kurses
<Kurs>Importing und Verwalten finanzieller Daten in R</Kurs>Übungsanweisungen
- Vervollständige den Befehl, um eine regelmäßige 30-Minuten-Datums-Zeit-Sequenz zwischen 09:00 Montag und 16:00 Freitag zu erstellen.
- Setze die Werte für
xundorder.by, um ein xts-Objekt mit Breite null zu erzeugen. - Erstelle
merged_xts, indem duirregular_xtsundregular_xtszusammenführst. Verwende das Argumentfill, umNAmithilfe vonna.locf()durch ihren vorherigen Wert zu ersetzen. - Verwende das Subsetting nach Tageszeit in xts, um Beobachtungen zwischen 9:00 und 16:00 Uhr jeden Tag zu extrahieren. Weisen das Ergebnis
trade_dayzu.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Create a regular date-time sequence
regular_index <- seq(as.POSIXct("2010-01-04 __:__"), as.POSIXct("2010-01-08 __:__"), by = "30 min")
# Create a zero-width xts object
regular_xts <- xts(x = ___, order.by = ___)
# Merge irregular_xts and regular_xts, filling NA with their previous value
merged_xts <- merge(___, ___, fill = ___)
# Subset to trading day (09:00-16:00)
trade_day <- merged_xts[___]