Me gustaría descargar datos bursátiles de internet (por ejemplo mediante scraping ) y organizarlos en una base de datos (estoy usando python y SQL) que se actualice diariamente o a petición. (La idea es crear un screener, hacer back testing y demás ) No estoy muy familiarizado con las bases de datos, así que estoy buscando algunas sugerencias con respecto a la estructura de la base de datos.
La estructura que tengo en mente es la siguiente (ver imagen).
Hay 8 tablas (TICKER LIST, OHLCV y 6 tablas diferentes para los estados financieros).
La tabla principal es TICKER LIST: debe contener algún tipo de identificación única de los valores. Creo que el símbolo del ticker no puede ser un ID único, ya que los símbolos del ticker de una empresa pueden cambiar. El nombre de la empresa no puede ser un ID único, ya que es posible tener la misma empresa en diferentes bolsas. Por eso he creado la columna 'id'.
A cada 'id' se le asocia una tabla OHLCV. Por ejemplo, BP tendrá una tabla OHLCV en USD de la bolsa NYSE y una tabla OHLC en GBP de la bolsa LSE). Sin embargo, los estados financieros (Ingresos, Balance, Flujo de Caja ) deben ser los mismos para ambas bolsas. Esto significa que tendré 2 réplicas de las tablas de estados financieros exactamente idénticas, una para el id 987448 y la otra para el id 239484 en este ejemplo. Tal vez tener réplicas no es la mejor manera de hacerlo
Mi pregunta es, ¿tiene sentido esta estructura? ¿Cómo la mejoraría? Como he dicho no estoy familiarizado con las bases de datos. Gracias
1 votos
Si se trata sólo de barras eod del día, digamos de Yahoo, por qué no almacenar los datos en archivos, en el formato CSV original.
0 votos
Esta es una muy buena pregunta para Quant.SE. Muy pocas configuraciones de quant tienen sistemas de almacenamiento de datos bien diseñados.