Extracción de datos financieros de TradingView con Python: una guía paso a paso

0
11
Screener de acciones de TradingView

¿Pasas horas buscando en la web los datos financieros más recientes para tomar decisiones de inversión? ¿Y si hubiera una forma de automatizar este tedioso proceso y obtener una ventaja competitiva? Es aquí donde podemos aplicar la extracción de datos web con Python.

En esta guía paso a paso, te mostraré cómo extraer datos bursátiles actualizados minuto a minuto de TradingView, una popular plataforma de análisis financiero, utilizando únicamente código en Python.

Screener de acciones de TradingView

Screener de acciones de TradingView

Pueden encontrar más información sobre el screener de la plataforma TradingView en: Screener 2.0 de TradingView

Inspeccionando el sitio web

El primer paso en cualquier proyecto de extracción de datos web es identificar la fuente de datos. Para TradingView, navegaremos a su página del filtro de acciones en https://www.tradingview.com/screener/.

Haz clic derecho en cualquier parte de la página y selecciona “Inspeccionar” (o presiona F12 en la mayoría de los navegadores). Esto abrirá las herramientas de desarrollador, lo que nos permitirá echar un vistazo detrás de escena.

pagina datos tradingview

A continuación, dirígete a la pestaña “Red” (o “Network”) y actualiza la página. Esto mostrará todas las solicitudes realizadas por el sitio web mientras se carga.

red tradingview

Búsqueda del endpoint de la API

Desplázate por las solicitudes de red hasta que encuentres algo prometedor; en nuestro caso, es la primera.

datos mercado screener tradingview

Si expandimos el 0: Object, podemos ver toda la información necesaria para la columna.

datos precios tradingview

Haz clic derecho en esta solicitud y selecciona “Copiar como cURL“.

obtencion datos tradingview python

Ahora, abre una herramienta como Insomnia o Postman, pega el comando cURL y presiona enviar. ¡Deberías ver los mismos datos bursátiles aparecer en la respuesta!

Generando el código en Python

La mayoría de los clientes de API ofrecen una útil función de “Generar código de cliente“. En Insomnia, haz clic en el menú desplegable junto al botón de enviar y selecciona “Generar código de cliente“.

generacion codigo cliente

Copia el código generado en un nuevo archivo de Python en tu editor de preferencia. Modificaremos este código para obtener todos los datos bursátiles disponibles de TradingView.

Abre tu editor de código y pega el código.

Después de pegar el código, busca (usando ctrl + f) el “range” dentro de la carga útil y cámbialo a 15000, ya que tenemos un total de 14217 datos.

rango datos tradingview

Análisis de la respuesta

data_json = response.json()
lists = data_json["data"]

Ahora extraeremos todos los datos y los almacenaremos en una lista.

data_list = []
for item in lists:
   name = item['d'][0]
   price = item['d'][6]
   change = item['d'][12]
   volume = item['d'][13]
   relative_volume = item['d'][14]
   market_cap = item['d'][15]
   pe = item['d'][17]
   eps_diluted = item['d'][18]
   eps_diluted_growth = item['d'][19]
   dividends_yield = item['d'][20]
   sector = item['d'][22]

   data = {
       'name': name,
       'price': price,
       'change': change,
       'volume': volume,
       'relative_volume': relative_volume,
       'market_cap': market_cap,
       'pe': pe,
       'eps_diluted': eps_diluted,
       'eps_diluted_growth': eps_diluted_growth,
       'dividends_yield': dividends_yield,
       'sector': sector
   }

   data_list.append(data)

Este código convierte la respuesta JSON en un diccionario de Python, luego recorre los datos y extrae los campos que te interesan (por ejemplo, nombre de la acción, precio, volumen, etc.).

Guardar los datos en un archivo CSV

Finalmente, guardemos nuestros datos recién extraídos en un archivo CSV para un análisis más sencillo:

with open('stocks_data.csv', 'w', newline='') as csvfile:
   fieldnames = ['name', 'price', 'change', 'volume', 'relative_volume', 'market_cap',
                 'pe', 'eps_diluted', 'eps_diluted_growth', 'dividends_yield', 'sector']
   writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

   # Escribe la fila del encabezado
   writer.writeheader()

   # Escribe las filas de datos
   for data in data_list:
       writer.writerow(data)

¡Y ahí lo tienes! Has extraído con éxito datos financieros de TradingView utilizando Python.

datos acciones obtenidos tradingview py

Por supuesto, esto es solo el comienzo. Puedes analizar y visualizar aún más los datos utilizando las poderosas bibliotecas de ciencia de datos de Python, como pandas, matplotlib y seaborn.


 

Raul Canessa

Leave a reply