10 votos

Escaneo de una base de datos de existencias en busca de errores/faltas

Actualmente estoy trabajando en un código de matlab que se supone que debe comprobar una base de datos de acciones para cualquier error (valores que faltan, valores erróneos, etc.). La razón de esto es que después de leer este puesto He llegado a la conclusión de que probablemente tendré que escribir algún código de limpieza de datos para obtener resultados precisos y fiables al hacer backtesting con esta base de datos.

La base de datos se ha descargado de yahoo finanzas y contiene las siguientes columnas para cada acción: Fecha, Apertura, Máximo, Mínimo, Cierre, Volumen, AdjClose.

Hasta ahora el programa busca los siguientes errores triviales:

  • Cierre > Alto
  • Cierre < Mínimo
  • Abierto > Alto
  • Abierto < Bajo
  • Alto < Bajo

El programa también comprueba si alguna de las columnas de datos contiene valores menores que cero o NaN.

¿Qué otros errores/fallas podría buscar en la base de datos?

6voto

syntheticbrain Puntos 549

Algunos puntos de mi experiencia:

1 Otro de los filtros que debes tener en cuenta es el de precio = 999 o 999,99 que aparece en algunos proveedores de datos.

2 Otra serie de comprobaciones consiste en mirar la sección transversal de, por ejemplo, rango = (alto-bajo)/cerrado sobre todos los nombres. Compruebe el rango más pequeño y el más grande para ver si los valores tienen sentido. También puede comprobar el porcentaje de cambio diario de un día a otro. Compruebe todos los movimientos más grandes para ver si hay errores en los datos. Las caídas repentinas en Estados Unidos han creado rangos enormes, pero si ves rangos anormales en diferentes días, comprueba la calidad de los datos. También en septiembre de 2008 hay muchos valores sin sentido incluso en productos muy líquidos.

3 Hay que tener cuidado con el uso de yahoo (y otras fuentes) para las empresas que cambian de nombre, o que entran / salen de la quiebra.

2voto

Pandincus Puntos 5785

El cierre ajustado cambiará después de los dividendos y las divisiones de acciones. Así que los datos antiguos tendrán que ser sustituidos por los nuevos. Así que suele ser una buena idea comprobar el cierre ajustado de los valores descargados con los valores actuales.

También me gusta comprobar los datos descargados con alguna otra fuente (como Google). Esto lo hago escribiendo una prueba de unidad que elegirá al azar una fecha y descargará los datos de Google y los cotejará con los de Yahoo.

0voto

Chethan S. Puntos 2210

De lo que estás hablando es de controles de sanidad y si realmente tienes que hacer eso, es un buen motivo para clasificar la fuente de datos como poco fiable (o, alternativamente, tu comprensión de dicha fuente de datos es inadecuada). Normalmente, cuando se obtiene de Yahoo, no debería ser necesario hacer esto.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X