IniziaInizia gratis

Prezzi azionari ad alta frequenza

I dati azionari ad alta frequenza sono ben modellati da un processo MA(1), quindi sono un’ottima applicazione dei modelli di questo capitolo.

Il DataFrame intraday contiene i prezzi di un giorno (1 settembre 2017) per il titolo Sprint (ticker "S") campionati con frequenza di un minuto. Il mercato azionario è aperto per 6,5 ore (390 minuti), dalle 9:30 alle 16:00.

Prima di poter analizzare la serie temporale, dovrai fare un po’ di pulizia, cosa che farai in questo e nei due esercizi successivi. Guardando le prime righe, noterai diverse cose. Anzitutto, non ci sono intestazioni di colonna. I dati non sono marcati nel tempo dalle 9:30 alle 16:00, ma vanno da 0 a 390. Noterai anche che la prima data ha l’aspetto insolito "a1504272600". Il numero dopo la "a" è l’Unix time, cioè il numero di secondi dal 1° gennaio 1970. È così che questo insieme di dati separa ciascun giorno di dati intraday.

Se osservi i tipi di dato, noterai che la colonna DATE è un oggetto, che qui significa una stringa. Dovrai convertirla in numerico prima di poter ripulire alcuni dati mancanti.

La fonte dei dati al minuto è Google Finance (vedi qui per come sono stati scaricati i dati).

Il modulo datetime è già stato importato per te.

Questo esercizio fa parte del corso

Analisi delle serie temporali in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Modifica manualmente la prima data a zero usando .iloc[0,0].
  • Cambia le due intestazioni di colonna in 'DATE' e 'CLOSE' impostando intraday.columns uguale a una lista con queste due stringhe.
  • Usa l’attributo di pandas .dtypes (senza parentesi) per vedere che tipo di dati ci sono in ciascuna colonna.
  • Converte la colonna 'DATE' in numerico usando la funzione di pandas to_numeric().
  • Imposta la colonna 'DATE' come nuovo indice di intraday usando il metodo di pandas .set_index(), che prenderà come argomento la stringa 'DATE' (non l’intera colonna, solo il nome della colonna).

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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 = ____
Modifica ed esegui il codice