domingo, 12 de junio de 2022

Usar pandas_datareader de Python para conectarnos a Yahoo Finance y extraer los precios de los activos que necesitemos.

Hola a todos, en un post del 17 de julio de 2019, mostré los pasos para extraer la información de precios de un activo cualquiera, usando como fuente finance.yahoo.com, el proceso era bastante manual, y consistía en ingresar unos parámetros de la data a descargar, bajarla como un archivo separado por comas y luego abrirlo en excel para separar las columnas y poder organizarlo. 

Esta operatividad, la debíamos realizar para cada activo del que queríamos obtener los datos. 

Este paso a paso fue con el que aprendimos en la especialización en finanzas en la Universidad EAFIT, por allá en el año 2012.

Después de investigar un poco y de irme introduciendo al lenguaje de programación Python, encontré una librería con la que este proceso se puede hacer mucho más rápido, en el que si quieres cambiar el rango de fechas o incluir nuevos activos, no tenemos que volver a iniciar desde cero y repetir todo el ciclo - pandas_datareader.

La página con la documentación es esta:


En la opción Data Readers, podemos encontrar la documentación para las diferentes fuentes a las que soporta la conexión y extracción de datos el paquete, incluyendo Yahoo Finance:



Ahora, vamos a entrar en materia en nuestro código en Python, para ejecutar el proceso y liberarnos de la tediosa operatividad del paso a paso en excel.
En la plataforma Colab de Google, vamos a escribir el siguiente código:


Entonces, en las líneas 1 y 7 del código, vamos a instalar e importar las librerías que necesitamos para poder extraer la información de Yahoo Finance.

La línea 10 crea una lista con el código de los activos, en esta lista, podemos agregar más activos, cambiar los que tenemos por otros etc.

En las líneas 12 y 13, creamos el rango de tiempo para el que queremos descargar los precios de los activos.

Entre las líneas 18 y 24, realizamos la conexión y extracción de los datos y los devolvemos en un dataframe de pandas. En esta extracción, estamos pidiéndole que nos descargue los precios de cierre ajustados ([Adj Close]).

Por último entre las líneas 27 a 35, vamos a crear un gráfico de lineas utilizando Matplotlib, para graficar los precios de los activos. Al ejecutar el script, este es el resultado:


Con esto, tenemos un script que nos permite automatizar la extracción de los precios en Yahoo Finance

En un próximo post, vamos a revisar como calcular los retornos de los precios.

1 comentario:

  1. Modificaron algo con la librería que hoy, en febrero del 2023 no funciona el código. Saben cómo se hace ahora?

    ResponderBorrar