ComenzarEmpieza gratis

Precios de las acciones de alta frecuencia

Los datos bursátiles de alta frecuencia se modelan bien mediante un proceso MA(1), por lo que es una buena aplicación de los modelos de este capítulo.

El DataFrame intraday contiene los precios de un día (el 1 de septiembre de 2017) de la acción Sprint (símbolo del ticker "S") muestreados con una frecuencia de un minuto. La Bolsa está abierta 6,5 horas (390 minutos), de 9.30 a 16.00 h.

Antes de poder analizar los datos de las series temporales, tendrás que limpiarlos un poco, lo que harás en este ejercicio y en los dos siguientes. Cuando mires las primeras filas (ver el Shell IPython), te darás cuenta de varias cosas. En primer lugar, no hay cabeceras de columna. Los datos no van de las 9:30 a las 4:00, sino que van de 0 a 390. Y te darás cuenta de que la primera fecha es la extraña "a1504272600". El número después de la "a" es el tiempo Unix, que es el número de segundos transcurridos desde el 1 de enero de 1970. Así es como este conjunto de datos separa cada día de datos intradía.

Si te fijas en los tipos de datos, verás que la columna DATE es un objeto, que aquí significa una cadena. Tendrás que cambiarlo a numérico antes de limpiar algunos datos que faltan.

La fuente de los datos de los minutos es Google Finance (ver aquí sobre cómo se descargaron los datos).

El módulo datetime ya ha sido importado para ti.

Este ejercicio forma parte del curso

Análisis de Series Temporales en Python

Ver curso

Instrucciones de ejercicio

  • Cambia manualmente la primera fecha a cero utilizando .iloc[0,0].
  • Cambia las dos cabeceras de columna a 'DATE' y 'CLOSE' haciendo que intraday.columns sea igual a una lista que contenga esas dos cadenas.
  • Utiliza el atributo pandas .dtypes (sin paréntesis) para ver qué tipo de datos hay en cada columna.
  • Convierte la columna 'DATE' a numérica utilizando la función de pandas to_numeric().
  • Haz que la columna 'DATE' sea el nuevo índice de intraday utilizando el método pandas .set_index(), que tomará como argumento la cadena 'DATE' (no toda la columna, sólo el nombre de la columna).

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# 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 = ____
Editar y ejecutar código