sistemas de trading multiagente ia que es real
Los sistemas multiagente con IA usan comités de LLM para decidir una operación. Se explica la arquitectura, los costos de mercado que una señal debe superar y las trampas en backtests.
Un sistema de trading multiagente con IA divide una decisión de trading entre varias instancias de un modelo de lenguaje grande, asigna un rol a cada instancia y combina sus resultados en una sola orden. El equipo habitual incluye un lector de noticias, un analista fundamental, un analista de gráficos, un verificador de riesgos y un agente gestor que arbitra. A julio de 2026, varios frameworks de código abierto con esta forma se encuentran en el tema de trading algorítmico en GitHub, cada uno con unos cientos de estrellas. Esta página recorre la arquitectura, separa la evidencia publicada de las afirmaciones en los README y presenta datos de mercado sobre los costos que cualquier versión debe superar.
Qué es realmente un sistema de trading multiagente con IA
La arquitectura es un comité con un presidente. Cada agente es una plantilla de prompt, un feed de datos y un esquema de salida. El agente de noticias recibe titulares y devuelve una etiqueta. El agente fundamental recibe extractos de informes y devuelve un puntaje. El agente presidente recibe esas etiquetas y puntajes y devuelve una orden.
Tres propiedades se derivan de ese diseño, y vale la pena nombrar cada una antes de cualquier afirmación de rendimiento.
Cada agente suele compartir un modelo base. Cinco prompts contra los mismos pesos producen opiniones correlacionadas, por lo que un voto de cinco agentes no son cinco estimaciones independientes. La estructura de comité sugiere una diversificación que la implementación no proporciona.
El sistema es un pipeline de texto envuelto alrededor de una decisión numérica. El modelo lee palabras y emite un token. El dimensionamiento de la posición, el tipo de orden, la colocación del stop y la lógica de salida son código ordinario que subyace, y la mayor parte de lo que determina el resultado vive en ese código, no en los prompts.
Un viaje de ida y vuelta del comité toma segundos. Eso es factible para un rebalanceo semanal e irrelevante a velocidades intradía, donde los creadores de mercado cotizan y recotizan en microsegundos.
Lo que la investigación respalda y lo que no
El trabajo publicado sobre modelos de lenguaje en finanzas se divide en tres afirmaciones de fuerza muy diferente.
La extracción y clasificación es la afirmación fuerte. Los modelos etiquetan sentimiento, extraen cifras de informes y comprimen documentos largos con una precisión que requería un modelo a medida hace unos años. Es medible en texto reservado y se sostiene.
La descripción del estado del mercado es la afirmación mixta. Los modelos escriben relatos fluidos de un régimen, y esos relatos suelen ser consistentes con los datos que se le mostraron al modelo. Si la descripción contiene información que el precio no ya contiene es una pregunta aparte, y los artículos que la prueban cuidadosamente reportan efectos pequeños con amplios intervalos de error.
La rentabilidad es la afirmación débil. La mayoría de los README de repositorios reportan un backtest en lugar de un historial real financiado, y la distancia entre una curva de equity dentro de la muestra y una cuenta real es la distancia más antigua en el trading cuantitativo. Poner un modelo de lenguaje en el bucle no la acorta.
El piso de costo que una señal debe superar
Cada operación cruza un spread, y ese cruce es el piso que una estrategia debe superar antes que cualquier otra cosa. Spread mediano cotizado en horario regular, del 22 al 26 de junio de 2026, para seis nombres que cotizan en EE. UU.:
El SQL exacto detrás de cada cifra
SELECT ticker,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS spread_bps,
round(2 * quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS round_trip_bps,
round(count() / 1e6, 1) AS quote_updates_m
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'KO', 'F', 'RIOT')
AND sip_timestamp >= toDateTime('2026-06-22 00:00:00')
AND sip_timestamp < toDateTime('2026-06-27 00:00:00')
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > bid_price) > 0
ORDER BY spread_bpsUn punto base es una centésima de punto porcentual. El nombre más ajustado en el panel, SPY, cotizó un spread mediano de 0.27 puntos base durante esa semana. El más amplio, RIOT, cotizó 7.09. Un viaje de ida y vuelta paga el spread dos veces, por lo que una entrada y salida en el primer nombre comienza 0.55 puntos base detrás y el mismo par en el último nombre comienza 14.19 detrás. Un agente que rota su cartera dos veces por semana paga ese peaje aproximadamente cien veces al año, y el peaje se cobra independientemente de si la llamada fue correcta o incorrecta. Lo que cuesta operar una acción detalla el resto de la factura.
El ruido que una llamada direccional debe vencer
Las llamadas direccionales se califican contra una distribución que es mayoritariamente de números pequeños. Cada sesión de SPY en el año calendario 2025, ordenada por el tamaño de su movimiento de cierre a cierre:
El SQL exacto detrás de cada cifra
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-01-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2025-12-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
paired AS (
SELECT d, close_px,
any(close_px) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev_px
FROM daily
),
rets AS (
SELECT d, round(100 * (toFloat64(close_px) / toFloat64(prev_px) - 1), 3) AS ret_pct
FROM paired
WHERE prev_px > 0
)
SELECT multiIf(abs(ret_pct) < 0.25, 'under 0.25%',
abs(ret_pct) < 0.5, '0.25 to 0.5%',
abs(ret_pct) < 1.0, '0.5 to 1%',
abs(ret_pct) < 2.0, '1 to 2%',
'2% and up') AS move_bucket,
count() AS sessions,
round(100 * count() / sum(count()) OVER (), 1) AS pct_of_sessions
FROM rets
GROUP BY move_bucket
ORDER BY min(abs(ret_pct))La mitad del año estuvo dentro del medio punto porcentual. La banda de under 0.25% contuvo 24.9% de las sesiones y la banda de 0.25 to 0.5% otro 24.1%. En el otro extremo, 13 sesiones se movieron 2% and up, 5.2% del año.
Compare eso con el panel de spreads. Un punto base es 0.01%. Un movimiento de sesión típico de 0.3% es treinta veces un spread ajustado y aproximadamente cuatro veces el amplio. La aritmética deja espacio para una llamada paciente y correcta, y muy poco para una rápida y marginal.
Dónde se encuentra realmente el universo transable
Los frameworks de agentes publicitan cobertura, a menudo cientos de tickers escaneados cada mañana. El volumen en dólares muestra cuánto de esa lista puede absorber tamaño. Cada nombre que cotiza en EE. UU. que operó durante el horario regular el 30 de junio de 2026, agrupado por su rango en el volumen en dólares de esa sesión:
El SQL exacto detrás de cada cifra
WITH tv AS (
SELECT ticker,
sum(toFloat64(close) * toFloat64(volume)) AS dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker
HAVING sum(toFloat64(close) * toFloat64(volume)) > 0
),
ranked AS (
SELECT ticker, dollar_volume,
row_number() OVER (ORDER BY dollar_volume DESC) AS rk
FROM tv
)
SELECT multiIf(rk <= 10, 'top 10 names',
rk <= 50, 'ranks 11 to 50',
rk <= 200, 'ranks 51 to 200',
rk <= 1000, 'ranks 201 to 1000',
'ranks beyond 1000') AS liquidity_tier,
count() AS tickers,
round(sum(dollar_volume) / 1e9, 2) AS dollar_volume_bn,
round(100 * sum(dollar_volume) / (SELECT sum(dollar_volume) FROM tv), 1) AS pct_of_dollar_volume
FROM ranked
GROUP BY liquidity_tier
ORDER BY min(rk)Diez nombres llevaron 22.5% del volumen en dólares de la sesión, aproximadamente $205.04 mil millones. Los siguientes 40 llevaron 20.5%. En el otro extremo, 10966 nombres con rango superior a 1000 compartieron 12.9% entre ellos, aproximadamente $117.83 mil millones repartidos en toda la cola.
La amplitud es barata de publicitar y cara de operar. Un comité que clasifica tres mil nombres gasta la mayor parte de su esfuerzo de clasificación en esa cola, donde el panel de spreads anterior es un costo real en lugar de un error de redondeo.
Por qué estos backtests halagan al sistema
La fuente individual más grande de un backtest halagador es la elección de la ventana. SPY por año calendario, 2016 a 2025, con la brecha entre el precio de cierre más alto y más bajo del año junto a:
El SQL exacto detrás de cada cifra
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2016-01-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2025-12-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
yr AS (
SELECT toYear(d) AS year,
argMin(close_px, d) AS first_close,
argMax(close_px, d) AS last_close,
max(close_px) AS high_close,
min(close_px) AS low_close,
count() AS sessions
FROM daily
GROUP BY year
)
SELECT year,
sessions,
round(100 * (toFloat64(last_close) / toFloat64(first_close) - 1), 1) AS price_return_pct,
round(100 * (toFloat64(high_close) / toFloat64(low_close) - 1), 1) AS high_low_range_pct
FROM yr
ORDER BY yearUn sistema probado solo en 2021, un año que cerró 28.7% más alto, hereda una tendencia alcista. El mismo sistema probado solo en 2022, que cerró -20%, hereda una bajista. La brecha dentro del año entre el cierre más alto y el más bajo alcanzó 68% en 2020 y se mantuvo por encima de 25.3% incluso en los años más tranquilos.
Cuatro trampas se asientan sobre el problema de la ventana, y una de ellas pertenece solo a los modelos de lenguaje.
- Anticipación a través de datos de entrenamiento. Un modelo entrenado con texto hasta 2025 ya ha leído cómo resultó una operación de 2023. Un backtest sobre 2023 hace una pregunta que el modelo conoce la respuesta, y ninguna mezcla de la serie de precios elimina ese conocimiento.
- Supervivencia en la lista de tickers. Un universo ensamblado a partir de las cotizaciones actuales omite los nombres que se dieron de baja en el camino.
- Supuestos de ejecución. Un backtest que ejecuta cada orden en el punto medio borra todo el panel de costos anterior.
- Selección entre variantes de prompt. Veinte redacciones de prompt probadas y la mejor reportada es el mismo sobreajuste que plagó los barridos de parámetros mucho antes de que existieran los modelos de lenguaje.
Dónde los agentes de modelos de lenguaje ayudan plausiblemente
La versión honesta del discurso es más estrecha que la versión del README y aún así útil.
Leer volumen es la victoria más clara. Un agente que revisa cada informe y titular en una lista de seguimiento durante la noche y devuelve un resumen estructurado ahorra horas de atención humana, y el resultado es verificable contra la fuente.
Describir un régimen en lenguaje sencillo es la segunda. Un párrafo diario sobre dispersión, amplitud y volatilidad, generado a partir de los mismos números que un humano leería, es un documento informativo útil incluso cuando no contiene un pronóstico.
Higiene del proceso es la tercera. Un agente que rechaza una orden que infringe un límite de posición establecido, o que señala una estrategia a punto de operar en una fecha de resultados, hace cumplir reglas que un humano distraído omite.
Ninguna de esas tres es una ventaja en el mercado. Las tres son trabajo de investigación y operaciones, que es donde se encuentran las ganancias medibles hoy. Un efecto documentado como la anomalía de baja volatilidad tomó grandes muestras y replicación repetida fuera de la muestra antes de que alguien lo tratara como real, y un nuevo framework de agente cumple con el mismo estándar o no lo supera. Perder los mejores días muestra lo que cuesta el cambio frecuente para un tenedor de largo plazo.
La disciplina que describen los profesionales
Los equipos que ejecutan estos sistemas en público tienden a describir la misma secuencia. Prueba hacia adelante con ejecuciones simuladas durante meses en lugar de días, ya que un registro en papel se acumula solo a la velocidad del tiempo real. Mantener un tramo fuera de la muestra que los prompts nunca vieron. Registrar cada prompt, cada respuesta y cada orden, ya que un comité que no se puede reproducir no se puede depurar. Dimensionar las posiciones con reglas fijas que están fuera del modelo. Contar cada costo de los paneles anteriores antes de llamar rentable a cualquier tramo.
FAQ
¿Los sistemas de trading multiagente con IA realmente ganan dinero?
La evidencia pública es escasa. La mayoría de los proyectos de código abierto publican un backtest en lugar de un historial real auditado, y los backtests de estrategias de modelos de lenguaje tienen un defecto específico: el modelo fue entrenado con texto que describe el período de prueba. Una curva de equity no auditada demuestra el software, no una ventaja.
¿Es mejor un comité de agentes LLM que un solo modelo?
Un comité reduce algunos errores de formato y análisis y agrega estructura a la salida. No agrega información independiente cuando cada agente consulta el mismo modelo base sobre los mismos datos subyacentes. Cinco opiniones correlacionadas votan aproximadamente como una opinión, con latencia extra y costo de token extra adjunto.
¿Puede un agente de IA operar más rápido que un creador de mercado?
No. Un viaje de ida y vuelta de un modelo de lenguaje toma segundos, mientras que los sistemas de cotización profesionales operan en microsegundos sobre hardware coubicado. Cualquier estrategia cuya ganancia dependa de la velocidad está fuera de lo que estos sistemas pueden hacer, lo que deja horizontes de días y semanas como el terreno plausible.
¿Cuál es la trampa de backtest más grande específica de los agentes de trading LLM?
Anticipación de datos de entrenamiento. Los backtests convencionales protegen contra la filtración de precios futuros en una decisión, pero los pesos de un modelo ya codifican comentarios publicados sobre la ventana de prueba. Las ventanas de walk-forward y las divisiones fuera de la muestra no eliminan el conocimiento horneado en los pesos, y la única prueba limpia es un período posterior al corte de entrenamiento.
¿Cuánto tiempo debe durar un período de paper trading?
El marco útil es el tamaño de la muestra en lugar de la duración del calendario. Una estrategia que opera semanalmente produce aproximadamente cincuenta observaciones al año, una muestra pequeña para cualquier afirmación sobre una ventaja. Los profesionales generalmente quieren suficientes operaciones para haber visto una caída, no solo un buen tramo.
Cada panel en esta página es una consulta almacenada y versionada sobre datos reales del mercado estadounidense. Abra cualquier panel para leer el SQL detrás de él, o ejecute el suyo propio contra las mismas tablas en el terminal de Strasmore.