Descargar el último año de dividendos en el Nasdaq con Python y Yahoo_fin.
Yahoo_fin es un paquete de Python 3 diseñado para extraer datos históricos de precios de acciones, así como para proporcionar información actual sobre límites de mercado, rendimientos de dividendos y qué acciones comprenden las principales bolsas. Entre sus principales funcionalidades tenemos:- Recopilación de estados de resultados, balances, flujos de efectivo
- Información de la empresa
- Datos de analistas
- Precios de acciones en tiempo real
- Capturar datos de criptomonedas
- Obtener las acciones negociadas más activamente en un día de negociación actual
- Recuperar los precios de las opciones y las fechas de vencimiento.
- Rastrear el historial del calendario de ganancias
- RSS de noticias financieras
Cuándo resulta útil este script de dividendos
El objetivo no es consultar un único valor de forma manual, sino generar un proceso repetible. Al mantener la lista de tickers en un CSV, puedes cambiar el conjunto de empresas, volver a ejecutar el script y obtener una tabla final preparada para pandas, hojas de cálculo o un panel de análisis.
Este tutorial encaja con otros contenidos de datos financieros, como qué es el mercado de valores y el análisis de reputación y sentimiento alrededor de Bitcoin.
Instalación del paquete y preparación del entorno.
Para poder llevar a cabo el proyecto, el primer paso es ejecutar el siguiente comando para descargarse el proyecto del repositorio github. Una vez ya hemos descargado el proyecto, el siguiente paso es configurar nuestro entorno de programación python descargando todas las librerías necesarias para el proyecto El proyecto que vamos a gestionar, esta almacenado en el directorio obtener_historico_dividendos y esta compuesto por dos ficheros: historico_dividendos.py y tickers.csv EL fichero tickers.csv tiene almacenado un listado de tickers (abreviaturas de las empresas) a consultar. El formato del fichero tiene que ser como se muestra a continuación: EL fichero historico_dividendos.py contiene el código que explicaremos en el siguiente apartado. Explicación del fichero historico_dividendos.py
Este fichero contiene el siguiente código: Dentro del código expuesto anteriormente, la primera parte corresponde a la carga del fichero tickers.csv con la librería panda de Python. El código es el siguiente: El código continua creando un dataframe vacio dónde se almacenará toda la información que nos proporcione Yahoo_fin. A partir de este momento, lo único que vamos a realizar es una iteración que dependerá de la cantidad de valores almacenados en el fichero tickers.csv. En este punto es importante analizar que tipo de información nos proporciona el método get_dividends(). Para ello os dejo la siguiente tabla: | dividend | ticker | |
|---|---|---|
| 2019-08-26 | 0.95 | JNJ |
| 2019-11-25 | 0.95 | JNJ |
| 2020-02-24 | 0.95 | JNJ |
| 2020-05-22 | 1.01 | JNJ |
| 2020-08-24 | 1.01 | JNJ |
| 2020-11-23 | 1.01 | JNJ |
| 2021-02-22 | 1.01 | JNJ |
El resultado lo añadimos al dataframe obtenido al principio. Importante ordenarlo por fecha. El resultado es almacenado en un fichero resultados_dividendos.csv' con el siguiente formato: | CB | AWK | SCU | JNJ | MO | |
|---|---|---|---|---|---|
| 2021-03-24 | 0.86 | ||||
| 2021-03-18 | 0.78 | ||||
| 2021-02-24 | 2.35 | ||||
| 2021-02-22 | 1.01 | ||||
| 2021-02-05 | 0.55 | ||||
| 2020-12-24 | 0.86 | ||||
| 2020-12-17 | 0.78 | ||||
| 2020-11-23 | 1.01 | ||||
| 2020-11-09 | 0.55 | ||||
| 2020-09-17 | 0.78 | ||||
| 2020-09-14 | 0.86 | ||||
| 2020-08-24 | 1.01 | ||||
| 2020-08-11 | 0.55 | ||||
| 2020-06-18 | 0.78 | ||||
| 2020-06-12 | 0.84 | ||||
| 2020-05-22 | 1.01 | ||||
| 2020-05-11 | 0.55 | ||||
| 2020-03-24 | 0.84 | ||||
| 2020-03-19 | 0.75 | ||||
| 2020-02-24 | 0.53 | ||||
| 2020-02-24 | 0.95 | ||||
| 2020-02-06 | 0.5 | ||||
| 2019-12-24 | 0.84 | ||||
| 2019-12-19 | 0.75 | ||||
| 2019-11-25 | 0.95 | ||||
| 2019-11-15 | 0.03 | ||||
| 2019-11-08 | 0.5 | ||||
| 2019-09-19 | 0.75 | ||||
| 2019-09-13 | 0.84 | ||||
| 2019-08-26 | 0.95 | ||||
| 2019-08-13 | 0.32 |
Si lo desea puede consultar el el siguiente video explicativo https://www.youtube.com/watch?v=v3LNklgOvvc: