eToro
etoro.py (en el directorio de este skill) lee la API pública de eToro. Solo envía solicitudes GET y no puede colocar, modificar ni cerrar operaciones. Si el usuario desea realizar una operación, debe hacerlo en eToro.
Antes de responder
Ejecuta python3 <directorio del skill>/etoro.py y basa la respuesta en su salida. Imprime, en USD:
- patrimonio, efectivo (disponible para operar), invertido, ganancias/pérdidas no realizadas, y conteos de posiciones, traders copiados y órdenes pendientes
- una fila por tenencia: ticker, lotes, fecha de primera compra, unidades, precio de apertura promedio, precio actual, invertido, valor, ganancias/pérdidas, % de ganancias/pérdidas, y peso (valor / patrimonio)
etoro.py positions imprime una fila por lote en su lugar. Úsalo para preguntas sobre cuándo o a qué precio se compró algo.
Responde la pregunta usando los números: tamaño de la posición, concentración, costo promedio, efectivo disponible. No pegues toda la tabla a menos que se te pida. La API no tiene fundamentos ni noticias, así que cuando la respuesta dependa de eso, busca en la web y menciona lo que consultaste.
Datos de mercado
etoro.py get RUTA imprime cualquier GET bajo https://public-api.etoro.com/api/v1 como JSON. etoro.py ids ID... convierte IDs de instrumentos (como en el historial de operaciones) en tickers.
| Necesidad | RUTA |
|---|---|
| ID del instrumento, precio y cambios % para un ticker | /market-data/search?fields=instrumentId,internalSymbolFull,displayname,currentRate,dailyPriceChange,weeklyPriceChange,monthlyPriceChange&internalSymbolFull=TSLA |
| Buscar por nombre | lo mismo, con displayname=Tesla en lugar de internalSymbolFull |
| Cotizaciones de compra/venta en vivo | /market-data/instruments/rates?instrumentIds=1111,1002 (máximo 100 IDs) |
| Velas de precios | /market-data/instruments/1111/history/candles/desc/OneDay/30 (intervalo OneMinute a FourHours, OneDay, OneWeek; hasta 1000) |
| Operaciones cerradas | /trading/info/trade/history?minDate=2026-01-01&pageSize=50 (cada llamada mira hacia atrás menos de un año) |
La búsqueda devuelve primero la acción, luego variantes como TSLA.24-7 y opciones. Usa el ticker simple. Los campos *PriceChange son porcentajes (0.22 significa 0.22%).
Límites de tasa: 60 solicitudes por minuto para endpoints de cuenta y 120 para datos de mercado. Agrupa IDs en una sola llamada donde el endpoint lo permita.
El índice completo de documentación es https://api-portal.etoro.com/_llms/core-api.txt. Léelo con una herramienta de obtención web, ya que curl recibe una página de desafío de Cloudflare.
Errores
HTTP 401 o 403 significa que las claves en ~/.config/etoro-skill/.env son incorrectas o han expirado. Pide al usuario que genere nuevas en eToro y actualice ETORO_API_KEY y ETORO_USER_KEY.