Cours boursiers à 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 prix d'une journée (le 1er septembre 2017) pour l'action de 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.
Avant d'analyser la série chronologique, vous devrez la nettoyer un peu, ce que vous ferez dans cet exercice et les deux suivants. En examinant 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, mais vont plutôt de 0 à 390. Et vous noterez que la première date est l'étrange « a1504272600 ». Le nombre après le « a » correspond au temps Unix, soit 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.
En regardant les types de données, vous verrez que la colonne DATE est un objet, ce qui signifie ici une chaîne de caractères. Vous devrez la convertir en valeur numérique avant de pouvoir traiter certaines données 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.
Cette activité fait partie du cours
Analyse des séries chronologiques en Python
Instructions de l’exercice
- Remplacez manuellement la première date par zéro en utilisant
.iloc[0,0]. - Modifiez les deux en-têtes de colonnes en
'DATE'et'CLOSE'en affectant àintraday.columnsune liste contenant ces deux chaînes. - Utilisez l'attribut pandas
.dtypes(sans parenthèses) pour voir le type de données présent dans chaque colonne. - Convertissez la colonne
'DATE'en numérique à l'aide de la fonction pandasto_numeric(). - Faites de la colonne
'DATE'le nouvel index deintradayen utilisant la méthode pandas.set_index(), qui prendra la chaîne'DATE'comme argument (et non la colonne entière, seulement le nom de la colonne).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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 = ____