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
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
xetorder.bypour créer un objet xts de largeur nulle. - Créez
merged_xtsen fusionnantirregular_xtsetregular_xts. Utilisez l’argumentfillpour remplacer lesNApar leur valeur précédente avecna.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[___]