
La mayoría de los "agentes de trading con IA" que ves en YouTube no son agentes. Son un LLM con un buen prompt y datos inventados.
Un agente real necesita tres cosas: capacidad de razonar, herramientas para actuar, y datos reales para no alucinar. Si te falta la tercera, las otras dos no importan.
Este artículo es para ti si:
Vamos allá.
Pregúntale a cualquier LLM el precio actual de una acción.
Te dará un número. Ese número podría tener meses, o estar directamente inventado.
Los modelos de lenguaje no tienen acceso a mercados en vivo. No saben qué pasó ayer. No conocen el último informe de resultados. Y aun así, muchos "proyectos de trading con IA" los usan como si lo supieran.
El resultado es predecible:
Esto no es un problema de inteligencia. GPT-4 o Claude no son "malos en finanzas".
El problema es que nadie les está dando los datos correctos.
Un LLM sin herramientas es una biblioteca sin ventanas. Sabe mucho, pero no ve nada de lo que pasa hoy.
La solución no es "un modelo más grande". Es darle acceso a datos externos verificables, y dejar que decida cuándo consultarlos.
Eso es exactamente lo que hace un agente.
LangChain orquesta la lógica del agente: toma la pregunta del usuario, decide qué herramienta llamar, ejecuta la llamada, interpreta el resultado, y genera una respuesta. No es magia, es un bucle de razonamiento con reglas.
EODHD aporta la pieza que falta: datos financieros reales a través de una REST API. Con ella, el agente puede consultar:
Después de probar varias fuentes de datos para este tipo de automatización, uso EODHD de forma consistente. Las razones son concretas:
¿Quieres construir agentes financieros con datos reales?
EODHD te da acceso a precios, fundamentales, y técnicos vía REST API — sin scraping, sin datos desactualizados.
→ Prueba EODHD gratis
Antes de conectar cualquier proveedor de datos a un agente, vale la pena ser honesto sobre las contrapartidas. Esto es lo que destaca después de construir varias herramientas de agente sobre la API de EODHD.
Ventajas:
close, change_p, PERatio, etc.), lo que hace sencillo escribir wrappers de herramientas de LangChain — sin parsear HTML, sin fragilidad de scraping.Desventajas:
En resumen: para un proyecto como este — un agente de razonamiento que necesita datos financieros reales y estructurados sin construir un pipeline de scraping — las contrapartidas favorecen a EODHD frente a construir tu propia capa de datos.
Ayuda abrir mecánicamente qué significa "agente", porque esta es la parte que se saltan la mayoría de los tutoriales.
Un agente de LangChain construido sobre el patrón ReAct (Reason + Act) corre un bucle con cuatro componentes:
get_live_price, get_fundamentals, y get_rsi.En la práctica, una sola consulta como "¿Deberíamos estar mirando AAPL.US ahora mismo?" dispara una cadena así:
Thought: I need the current price first.
Action: get_live_price("AAPL.US")
Observation: AAPL.US: current price 227.50, change +0.8%
Thought: Price alone isn't enough — check momentum.
Action: get_rsi("AAPL.US")
Observation: AAPL.US — RSI(14): 58.3Thought: Not overbought. Check if valuation is reasonable.
Action: get_fundamentals("AAPL.US")
Observation: AAPL.US — PE: 31.2, Market Cap: 3.4T, Dividend Yield: 0.4%Thought: I now have enough data to answer.
Final Answer: [synthesized response]
Esta es la diferencia arquitectónica entre un agente y un chatbot con un system prompt: el LLM decide la secuencia de llamadas a herramientas en tiempo de ejecución, basándose en lo que aprende de cada observación — no es un guion fijo. Por eso mismo importa tanto la calidad y estructura de tu fuente de datos. Si get_fundamentals devuelve basura o números desactualizados, los pasos de "Thought" construidos encima heredan ese error en silencio, sin ninguna señal de aviso en la salida.
Esta es la razón central por la que los agentes financieros necesitan una API real y estructurada como EODHD en lugar de datos scrapeados o en caché: cada paso de razonamiento posterior depende de la fiabilidad del paso anterior.
Ve los datos detrás de cada paso de razonamiento
Los endpoints estructurados de EODHD están construidos exactamente para este tipo de arquitectura de tool-calling.
→ Explora la API de EODHD
Vamos a construir un agente con tres herramientas conectadas a EODHD: precio en vivo, fundamentales, e indicadores técnicos.
pip install langchain langchain-openai requests
Cada herramienta es una función que llama a un endpoint de EODHD y devuelve una respuesta estructurada que el agente puede interpretar.
import requests
from langchain.tools import tool
EODHD_API_KEY = "YOUR_API_KEY"
BASE_URL = "https://eodhd.com/api"
@tool
def get_live_price(ticker: str) -> str:
"""Returns the current price of a stock. Example ticker: AAPL.US"""
url = f"{BASE_URL}/real-time/{ticker}"
params = {"api_token": EODHD_API_KEY, "fmt": "json"}
r = requests.get(url, params=params).json()
return f"{ticker}: current price {r['close']}, change {r['change_p']}%"
@tool
def get_fundamentals(ticker: str) -> str:
"""Returns key fundamental metrics: PE ratio, market cap, dividend yield."""
url = f"{BASE_URL}/fundamentals/{ticker}"
params = {"api_token": EODHD_API_KEY}
r = requests.get(url, params=params).json()
highlights = r.get("Highlights", {})
return (
f"{ticker} - PE: {highlights.get('PERatio')}, "
f"Market Cap: {highlights.get('MarketCapitalization')}, "
f"Dividend Yield: {highlights.get('DividendYield')}"
)
@tool
def get_rsi(ticker: str) -> str:
"""Returns the 14-day RSI to assess overbought or oversold conditions."""
url = f"{BASE_URL}/technical/{ticker}"
params = {"api_token": EODHD_API_KEY, "function": "rsi", "period": 14, "fmt": "json"}
r = requests.get(url, params=params).json()
latest = r[-1]
return f"{ticker} - RSI(14): {latest['rsi']} as of {latest['date']}"
from langchain_openai import ChatOpenAI
from langchain.agents import create_react_agent, AgentExecutor
from langchain import hub
llm = ChatOpenAI(model="gpt-4o", temperature=0)
tools = [get_live_price, get_fundamentals, get_rsi]
prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
Tres herramientas. Un LLM. Un bucle de razonamiento que decide cuál usar según la pregunta.
response = executor.invoke({
"input": "Should we be looking at AAPL.US right now?"
})
print(response["output"])
El agente no responde directamente desde la memoria. Primero llama a get_live_price, luego a get_rsi, y si la valoración importa, a get_fundamentals. Combina los tres resultados en una respuesta basada en datos reales, no en una alucinación con buen formato y mucha confianza.
A partir de aquí puedes construir:
Si eres una empresa de software o de APIs y buscas explicar tu producto con contenido educativo de calidad (no marketing genérico), no dudes en escribirme por LinkedIn: 👉 linkedin.com/in/kevin-meneses-gonzalez
¿Listo para construir tu propio agente financiero?
Consigue acceso a precios en tiempo real, fundamentales, y técnicos con la API de EODHD.
→ Empieza con EODHD
❓ ¿Qué es un agente de IA en el contexto del trading?
✅ Es un sistema donde un LLM no solo responde con texto, sino que decide qué herramientas usar — precios, fundamentales, noticias — para completar una tarea con datos reales, en lugar de depender solo de su conocimiento entrenado.
❓ ¿Por qué usar LangChain en lugar de llamar a la API directamente?
✅ Porque LangChain gestiona el bucle de decisión: qué herramienta usar, cuándo, y cómo combinar varios resultados en una respuesta coherente. Sin esto, tendrías que codificar tú mismo esa lógica de decisión para cada caso.
❓ ¿Necesito una cuenta de pago de EODHD para probar esto?
✅ No. El plan gratuito de EODHD es suficiente para prototipar el agente con datos reales antes de escalar a producción.
❓ ¿Cuál es la principal contrapartida de usar EODHD en lugar de construir mi propio pipeline de datos?
✅ Cambias control total sobre el origen de los datos por velocidad y fiabilidad — una API estructurada en lugar de mantener scrapers o varias integraciones de proveedores. La principal limitación a tener en cuenta es el tope diario de peticiones del plan gratuito una vez pasas de prototipar.
¿Buscas contenido técnico para tu empresa? Puedo ayudarte — LinkedIn · kevinmenesesgonzalez@gmail.com