Descarga multiproceso del historial de acciones de yahoo con Python – yfinance

Yfinance es un paquete de python que nos permite obtener datos de mercado históricos de la API de finanzas de Yahoo de forma python. Se vuelve tan fácil para todos los desarrolladores de Python obtener datos con la ayuda de yfinance.

Podemos descargar fácilmente datos históricos de acciones de yfinance, pero el problema es que lleva mucho tiempo. Por lo tanto, usamos subprocesos múltiples para encubrir el tiempo. Los subprocesos múltiples nos permiten descargar grandes cantidades de datos mediante la ejecución de varios subprocesos al mismo tiempo.

Instalación

Este módulo no viene integrado con Python. Para instalarlo, escriba el siguiente comando en la terminal.

pip install yfinance

Veamos el proceso paso a paso que se explica a continuación con la implementación:

Paso 1: Obtenga todos los módulos requeridos

Python3

import yfinance as yf

Paso 2: obtener datos del historial de acciones 

Python

# Get the stocks info
import yfinance as yf
 
# Ticker is a function responsible
# for fetching the data MSFT is
# representing info about Microsoft
# Corporation
msft = yf.Ticker('MSFT')
 
# msft.info will return all information
# about microsoft corporation
data = msft.history()
 
# printing the data
print(data)

Producción:

Estos son los datos bursátiles de Microsoft Corporation de un año reciente. Tenga en cuenta que si usamos data = msft.history(period=’max’) devolverá todos los datos hasta ahora.

Paso 3: Descarga de los datos

Python3

# pip install yfinance
import yfinance as yf
 
# Here we use yf.download function
data = yf.download(
 
    # tickers has value of company
    # shortname
    tickers='MSFT',
)
 
# printing the data
print(data)

Producción:

Por lo tanto, se completa 1 de 1 descarga. Son todos los datos de principio a fin hasta ahora de una sola empresa.

Paso 4: Descarga los datos de varias empresas 

Este es un código para descargar los datos de empresas como IBM, Apple (AAPL), Amazon (AMZN), Microsoft (MSFT), etc.

Python3

# pip install yfinance
import yfinance as yf
 
ticker_list = ['IBM', 'MSFT', 'AAPL', 'AMZN']
 
# Here we use yf.download function
data = yf.download(
     
    # passes the ticker
    tickers=ticker_list,
     
    # used for access data[ticker]
    group_by='ticker',
 
)
 
# used for making transpose
data = data.T
 
for t in ticker_list:
   
    # printing name
    print(t)
    print('\n')
     
    # used data.loc as it takes only index
    # labels and returns dataframe
    print(data.loc[t]) 
    print('\n')

Producción:

Paso 5: Cálculo del tiempo de ejecución y uso de subprocesos múltiples

As yfinance utiliza su propia técnica integrada de subprocesos para la descarga masiva. Para hacer esto, necesitamos asignar un nuevo parámetro en un archivo yf.download.

datos = yf.descargar(

    teletipos=lista_de teletipos,

    hilos = Verdadero, # Establecer el valor del hilo en verdadero

    group_by=’ticker’,

)

Programa para calcular el tiempo, usamos el módulo de tiempo.

Python

# pip install yfinance
import yfinance as yf
import time
 
# Time starts from here
start = time.time()
 
ticker_list = ['IBM', 'MSFT', 'AAPL', 'AMZN']
 
# Here we use yf.download function
data = yf.download(
    tickers=ticker_list,
    threads=True,
    group_by='ticker',
 
)
 
# used for making transpose
data = data.T
 
for t in ticker_list:
    print(t)
     
    # used data.loc as it takes only index
    # labels and returns dataframe
    print(data.loc[t]) 
 
# Total time calculated
print('The program takes ', time.time()-start, 'seconds.')

Antes del hilo:

Después del hilo:

Publicación traducida automáticamente

Artículo escrito por shiv_ka_ansh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *