CommencerCommencer gratuitement

Rendre régulières des données intrajournalières irrégulières

Vous avez vu plus tôt comment créer une série quotidienne régulière à partir de données quotidiennes irrégulières. Vous allez maintenant créer des données intrajournalières régulières à partir d’une série irrégulière.

Les données financières intrajournalières ne couvrent souvent pas 24 heures. La plupart des marchés sont fermés une partie de la journée. Cet exercice suppose que les marchés ouvrent à 9 h et ferment à 16 h du lundi au vendredi.

Vos données peuvent ne pas avoir d’observation exactement à l’ouverture et/ou à la clôture du marché. Vous ne pourrez donc pas utiliser start() et end() comme avec les données quotidiennes. Vous devez préciser les dates-heures de début et de fin pour créer cette séquence régulière.

La séquence régulière de dates-heures inclura des périodes où les marchés sont fermés, mais vous pouvez utiliser le sous-ensemble par heure de la journée d’xts pour extraire uniquement les périodes où le marché est ouvert.

Cet exercice fait partie du cours

Importer et gérer des données financières avec R

Afficher le cours

Instructions

  • Terminez la commande pour créer une séquence régulière de dates-heures toutes les 30 minutes entre 09:00 lundi et 16:00 vendredi.
  • Définissez les valeurs de x et order.by pour créer un objet xts de largeur nulle.
  • Créez merged_xts en fusionnant irregular_xts et regular_xts. Utilisez l’argument fill pour remplacer les NA par leur valeur précédente avec na.locf().
  • Utilisez le sous-ensemble par heure de la journée d’xts pour extraire les observations entre 9 h et 16 h chaque jour. Affectez le résultat à trade_day.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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[___]
Modifier et exécuter le code