Descarga gratuita de datos históricos del mercado en Python

D descargue datos históricos gratuitos del mercado de acciones, futuros de materias primas, divisas, criptomonedas y precios intradía

H Los datos de mercado históricos son esenciales para el análisis financiero y el backtesting de estrategias. Los proveedores de datos profesionales a veces no son una opción económicamente viable para los inversores minoristas o las nuevas empresas. Afortunadamente, con el desarrollo de tecnologías financieras o FinTech y el movimiento de las finanzas inclusivas, existen opciones de fuentes de datos de libre mercado disponibles en línea.

En esta publicación, voy a discutir tres de ellos y demostrar cómo obtener datos con Python. Las tres fuentes de datos y API que se analizan aquí son:

La discusión no está l imitada a los datos diarios del mercado de valores, sino también a futuros de materias primas, divisas e intradía . Además, solo se trata de la descarga de datos históricos. Para grabar datos de ticks en vivo, mira mi video aquí.

1. Yahoo Finanzas

No se puede evitar Yahoo Finance, uno de los primeros practicantes de la democratización de los datos financieros y la inclusión financiera con igualdad de oportunidades. No estuvo disponible temporalmente en 2017, sin embargo, se publicaron algunas bibliotecas de arreglos desde entonces, una de ellas más tarde se convirtió en yfinance. Google Finance probó servicios similares pero no fue tan popular.

Aquí hay un consejo sobre Yahoo Finance, que es que todo lo que ve en su sitio web se puede descargar o transmitir en tiempo real y lo más probable es que alguien ya lo haya hecho.

Tengo que gastar la mitad de esta publicación en Yahoo Finance, así que la dividiré en cuatro subsecciones. El código completo se puede encontrar aquí en Github.

1.1 Precio diario

1.1.1 Acciones e índices bursátiles

El precio diario es lo que ve en la pestaña Datos históricos. Tenga en cuenta que puede guardar los datos para usarlos más adelante, pero debido al ajuste de precios hacia atrás, es probable que el cierre adjunto cambie en el futuro.

1.1.2 FX y criptomonedas

Por ejemplo, use EURUSD = X para Euro o BTC-USD para Bitcoin.

1.2 Conceptos básicos

Por ejemplo, en la página de Amazon en Yahoo Finance, hay otras pestañas además de Datos históricos, como Resumen, Estadísticas, Perfil, que se pueden descargar utilizando herramientas de Python como BeautifulSoup, o más convenientemente, yahoo-fin.



1.3 Intradía

Yahoo Finance también ofrece datos históricos intradiarios de 1 minuto hasta por 10 días.

Por supuesto, debe conservar los datos en un archivo plano o en una base de datos antes de que expire la ventana de 10 días, como en el ejemplo aquí. Tenga en cuenta que solo necesita guardar el más detallado , ya que un código similar al siguiente ayudará a agregar a cualquier otra frecuencia deseada.

1.4. Cotizaciones en vivo

También es posible extraer cotizaciones de acciones de Yahoo Finance Live utilizando herramientas de extracción de datos web. El paquete yahoo_fin ha hecho exactamente eso, por lo que puede llamar a sus funciones si no desea escribir una usted mismo. El siguiente código obtiene el precio de las acciones en tiempo real cada segundo y luego lo guarda para su uso posterior. Se sugiere ejecutar el código durante el horario de mercado . Por lo general, las personas comienzan a escuchar el precio de las acciones en tiempo real en la apertura del mercado y luego guardan los datos al cierre del mercado.

2. Pandas DataReader

Esta no es precisamente una fuente de datos, sino más bien una API en la pila de PyData que admite una colección de fuentes de datos. Como sugiere el nombre, los datos se descargarán como pandas Dataframe. El documento completo se puede encontrar aquí. A continuación se muestra la lista de fuentes que admite actualmente. Revisaré los dos primeros de la lista.

2.1 Alphavantage

Alphavatange tiene su propia API aquí. Puede consultar su documentación. Para usar pandas data_reader,

2.2 FRED

FRED tiene muchos datos macroeconómicos, por ejemplo, PIB, desempleo, inflación. Aquí, si está interesado en el mercado de tipos de interés ,

da las curvas de rendimiento con vencimiento constante. El ejemplo completo se puede encontrar aquí en GitHub.

3. Quandl

Quandl tiene cientos de fuentes de datos gratuitas y de pago, en acciones, ingresos fijos, materias primas, tipos de cambio, etc. Aquí solo cubriré materias primas , una clase de activos que no se ha cubierto. en las dos secciones anteriores.

Hay contratos brutos mensuales y contratos continuos, en Quandl puede descargar ambos.

4. Agentes interactivos

Esta es una sección complementaria, no dude en omitirla si no tiene una cuenta de Interactive Brokers.

Este método solo es condicionalmente gratuito , con la condición de que tenga una cuenta de Interactive Brokers financiada. Lo uso principalmente porque, por ejemplo, Yahoo Finance no tiene datos de futuros. El script completo se encuentra aquí en GitHub.

IB ofrece barras de tan solo un segundo hasta 180 días. Para descargar la barra de un segundo, inicie sesión en IB, ejecute este script y luego ejecútelo a continuación.

<×Conclusion

En esta publicación, hemos visto tres fuentes de datos financieros históricos gratuitas, a saber, Yahoo Finance, Pandas DataReader y Quandl, en acciones, tasas, fx, criptomonedas y materias primas. así como una fuente de datos intradía gratuita condicional, Interactive Brokers.

Para fines generales, siempre podemos recurrir a bibliotecas más fundamentales como las solicitudes, BeautifulSoup o Selenium para extraer datos directamente. Más sobre eso más adelante.