CommencerCommencer gratuitement

Cours d’actions haute fréquence

Les données boursières à plus haute fréquence se modélisent bien avec un processus MA(1), ce qui en fait une bonne application des modèles de ce chapitre.

Le DataFrame intraday contient les cours d’une journée (le 1er septembre 2017) pour l’action Sprint (symbole "S"), échantillonnés à une fréquence d’une minute. Le marché boursier est ouvert pendant 6,5 heures (390 minutes), de 9 h 30 à 16 h 00.

Avant de pouvoir analyser la série temporelle, vous devrez la nettoyer un peu, ce que vous ferez ici et dans les deux exercices suivants. En regardant les premières lignes, vous remarquerez plusieurs choses. D’abord, il n’y a pas d’en-têtes de colonnes. Les données ne sont pas horodatées de 9 h 30 à 16 h 00, elles vont plutôt de 0 à 390. Enfin, vous verrez que la première date a l’allure étrange "a1504272600". Le nombre après le « a » est l’heure Unix, c’est-à-dire le nombre de secondes depuis le 1er janvier 1970. C’est ainsi que cet ensemble de données sépare chaque journée de données intrajournalières.

Si vous examinez les types de données, vous constaterez que la colonne DATE est de type object, ce qui signifie ici une chaîne de caractères. Vous devrez la convertir en numérique avant de pouvoir traiter certaines valeurs manquantes.

La source des données à la minute est Google Finance (voir ici pour savoir comment les données ont été téléchargées).

Le module datetime a déjà été importé pour vous.

Cet exercice fait partie du cours

Analyse des séries temporelles en Python

Afficher le cours

Instructions

  • Modifiez manuellement la première date à zéro avec .iloc[0,0].
  • Changez les deux en-têtes de colonnes en 'DATE' et 'CLOSE' en affectant à intraday.columns une liste contenant ces deux chaînes.
  • Utilisez l’attribut pandas .dtypes (sans parenthèses) pour voir le type de données de chaque colonne.
  • Convertissez la colonne 'DATE' en numérique à l’aide de la fonction pandas to_numeric().
  • Faites de la colonne 'DATE' le nouvel index de intraday en utilisant la méthode pandas .set_index(), qui prendra la chaîne 'DATE' comme argument (pas la colonne entière, uniquement le nom de la colonne).

Exercice interactif pratique

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

# import datetime module
import datetime

# Change the first date to zero
intraday.___ = 0

# Change the column headers to 'DATE' and 'CLOSE'
intraday.columns = ___

# Examine the data types for each column
print(intraday.dtypes)

# Convert DATE column to numeric
intraday['DATE'] = pd.to_numeric(____)

# Make the `DATE` column the new index
intraday = ____
Modifier et exécuter le code