Aan de slagGa gratis aan de slag

Hoogfrequente aandelenkoersen

Aandelengegevens met hogere frequentie kunnen goed worden gemodelleerd met een MA(1)-proces, dus dit is een mooie toepassing van de modellen in dit hoofdstuk.

De DataFrame intraday bevat de koersen van één dag (op 1 september 2017) voor het aandeel Sprint (tickersymbool "S"), bemonsterd met een frequentie van één minuut. De beurs is 6,5 uur (390 minuten) open, van 9:30 tot 16:00.

Voordat je de tijdreeks kunt analyseren, moet je de data eerst een beetje opschonen. Dat doe je in deze en de volgende twee oefeningen. Als je naar de eerste paar rijen kijkt, vallen een paar dingen op. Ten eerste zijn er geen kolomkoppen. De data is niet getimestamp van 9:30 tot 16:00, maar loopt van 0 tot 390. En je ziet dat de eerste datum het vreemd uitziende "a1504272600" is. Het getal na de "a" is Unix-tijd: het aantal seconden sinds 1 januari 1970. Zo splitst deze gegevensset elke dag met intraday-data.

Als je naar de datatypen kijkt, zie je dat de kolom DATE een object is, wat hier betekent: een string. Je moet dat naar numeriek omzetten voordat je ontbrekende waarden kunt opschonen.

De bron van de minuutdata is Google Finance (zie hier hoe de data is gedownload).

De module datetime is al voor je geïmporteerd.

Deze oefening maakt deel uit van de cursus

Tijdreeksanalyse in Python

Cursus bekijken

Oefeninstructies

  • Pas de eerste datum handmatig aan naar nul met .iloc[0,0].
  • Verander de twee kolomkoppen naar 'DATE' en 'CLOSE' door intraday.columns gelijk te zetten aan een lijst met die twee strings.
  • Gebruik het pandas-attribuut .dtypes (zonder haakjes) om te zien welk type data in elke kolom staat.
  • Zet de kolom 'DATE' om naar numeriek met de pandas-functie to_numeric().
  • Maak de kolom 'DATE' de nieuwe index van intraday met de pandas-methode .set_index(), die de string 'DATE' als argument krijgt (niet de hele kolom, alleen de naam van de kolom).

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 = ____
Code bewerken en uitvoeren