IniziaInizia gratis

Rendi regolari i dati infragiornalieri irregolari

Prima hai imparato a creare una serie giornaliera regolare partendo da dati giornalieri irregolari. Ora creerai dati infragiornalieri regolari a partire da una serie irregolare.

I dati finanziari infragiornalieri spesso non coprono tutte le 24 ore. La maggior parte dei mercati è chiusa per una parte della giornata. In questo esercizio si assume che i mercati aprano alle 9:00 e chiudano alle 16:00 dal lunedì al venerdì.

I tuoi dati potrebbero non avere un'osservazione esattamente all'apertura e/o alla chiusura del mercato. Quindi non potresti usare start() ed end() come faresti con i dati giornalieri. Devi specificare i date-time di inizio e fine per creare questa sequenza regolare.

La sequenza regolare di date-time includerà periodi in cui i mercati sono chiusi, ma puoi usare il sottoinsieme per ora del giorno di xts per estrarre solo i periodi in cui il mercato è aperto.

Questo esercizio fa parte del corso

Importare e gestire dati finanziari in R

Visualizza il corso

Istruzioni dell'esercizio

  • Completa il comando per creare una sequenza regolare di date-time ogni 30 minuti tra le 09:00 di lunedì e le 16:00 di venerdì.
  • Imposta i valori di x e order.by per creare un oggetto xts a larghezza zero.
  • Crea merged_xts unendo irregular_xts e regular_xts. Usa l'argomento fill per sostituire gli NA con il loro valore precedente tramite na.locf().
  • Usa il sottoinsieme per ora del giorno di xts per estrarre le osservazioni tra le 9:00 e le 16:00 di ogni giorno. Assegna il risultato a trade_day.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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[___]
Modifica ed esegui il codice