Zacznij terazZacznij za darmo

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

Zobacz kurs

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 x oraz order.by, aby utworzyć obiekt xts o zerowej szerokości.
  • Utwórz merged_xts, scalając irregular_xts i regular_xts. Użyj argumentu fill, aby zastąpić wartości NA poprzednią 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[___]
Edytuj i uruchom kod