Przekształcanie nieregularnych danych śróddziennych w regularne
Wiesz już, jak tworzyć regularną serię dzienną na podstawie nieregularnych danych dziennych. Teraz przekształcisz nieregularną serię w regularne dane śróddzienne.
Śróddzienne dane finansowe często nie obejmują pełnych 24 godzin. Większość rynków przez część dnia jest zamknięta. W tym ćwiczeniu przyjmujemy, że rynki są otwarte od 9:00 do 16:00 od poniedziałku do piątku.
W danych może nie być obserwacji dokładnie o godzinie otwarcia ani zamknięcia rynku. Dlatego nie można tu skorzystać z funkcji start() i end() tak jak w przypadku danych dziennych. Trzeba ręcznie określić daty i godziny początku oraz końca, aby zbudować regularną sekwencję.
Regularna sekwencja dat i godzin będzie obejmować również okresy, gdy rynek jest zamknięty – możesz jednak skorzystać z filtrowania według pory dnia w xts, aby wyodrębnić tylko godziny, w których rynek jest otwarty.
To ćwiczenie jest częścią kursu
Importowanie i zarządzanie danymi finansowymi w R
Instrukcje do ćwiczenia
- Uzupełnij polecenie, aby utworzyć regularną sekwencję co 30 minut w przedziale od 9:00 w poniedziałek do 16:00 w piątek.
- Ustaw wartości
xorazorder.by, aby utworzyć obiekt xts o zerowej szerokości. - Utwórz
merged_xts, scalającirregular_xtsiregular_xts. Użyj argumentufill, aby zastąpić wartościNApoprzednią dostępną wartością za pomocąna.locf(). - Skorzystaj z filtrowania xts według pory dnia, aby wyodrębnić obserwacje z przedziału 9:00–16:00 dla każdego dnia. Wynik przypisz do zmiennej
trade_day.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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[___]