Agente Fundamental
«THE FUNDAMENTALIST»
Lee 50 titulares al día e indicadores técnicos, y habla como un fondo institucional: «elite institutional quantitative hedge fund algorithm».
01Portada
Experimento · 28-feb → 20-oct-2026 · paper trading
Claude Haiku 4.5 como gestor, Alpaca Paper como bróker, Cloud Run cada 30 minutos. Mismo código, mismas reglas, dos personalidades. Dinero ficticio, consecuencias reales para la charla.
Agente Fundamental
«THE FUNDAMENTALIST»
Lee 50 titulares al día e indicadores técnicos, y habla como un fondo institucional: «elite institutional quantitative hedge fund algorithm».
Agente WSB
«THE WSB DEGEN»
Sigue lo más comentado en r/wallstreetbets y escribe como un «ape»: tendies, diamond hands, 🚀. «Analytical but degenerate».
Resultado oficial a 20-oct-2026, el día de la última decisión de la IA
Agente Fundamental
+191,4 %
$291.410 de $100.000
Pico $398.540 · 6-oct · caída máxima −27,9 % (11 → 30-mar)
Después, sin gestión hasta el 9-nov: −0,8 % ($289.210)
Agente WSB
−7,6 %
$92.387 de $100.000
Pico $132.065 · 24-sep · caída máxima −32,8 % (24-sep → 16-oct)
Después, sin gestión hasta el 9-nov: −20,2 % ($73.680)
SPY · benchmark
+12,1 %
769,09 $ por acción · 686,16 $ el 27-feb
Comprar y aguantar el índice: la referencia que había que batir
Después, sin gestión hasta el 9-nov: −4,4 % (735,40 $)
El experimento terminó el 20-oct-2026, cuando se agotó el crédito de la IA. Las carteras siguen abiertas y se mueven solas con el mercado; lo mostramos en línea punteada.
02 · Cómo leer esto
No hace falta saber de bolsa. Con esto basta; el resto está en el glosario.
Paper trading
Dinero ficticio. Precios y órdenes reales en una cuenta de simulación del bróker: nadie ganó ni perdió dinero de verdad.
Equity
Lo que vale la cuenta: efectivo + acciones a precio de mercado − lo que se debe al bróker.
SPY
Comprar y aguantar el índice S&P 500. Es la referencia a batir: si un bot no le gana, no aporta nada.
Apalancamiento
Operar con dinero prestado. 3x significa que la cartera vale tres veces tu dinero: multiplica las ganancias… y las pérdidas.
03 · La carrera
En pocas palabras: cuánto valía cada cuenta cada día. Línea continua, la IA decide; línea punteada, nadie al volante. Pulsa «Reproducir» para verla en el tiempo.
Equity diaria de las dos cuentas frente al SPY normalizado a $100.000. Entre el 9-may y el 23-sep (pausa de 137 días) no hay datos diarios: las carteras siguieron abiertas, apalancadas 2–3x, y solo conocemos el valor al principio y al final, así que los unimos con una recta punteada. Desde el 20-oct sí hay datos diarios, pero la IA ya no decide.
Pulsa «Reproducir» o arrastra la barra: la carrera contada en ocho momentos.
Primeros jobs en Cloud Run: news RAG y un trader v1 que solo operaba QQQ. Commits iniciales.
Reset. Dos cuentas paper de $100.000 y arquitectura dual-agente. Primer trade del WSB: NFLX.
El Reddit RAG se mueve a una Spot VM con VPN: Reddit bloquea las IPs de Google Cloud.
Mínimo del Fundamental: $75.540 (−24,5 %). El SPY también toca mínimos ($632).
Primer agotamiento del crédito de Anthropic. Última decisión a las 11:00 ET; los jobs siguen corriendo tres semanas sin decidir nada (el mismo patrón que se repetirá el 20-oct).
Pausa de 137 días. La cuenta de facturación original de Google Cloud se cierra y Cloud Scheduler y Cloud Run quedan suspendidos: sin snapshots ni decisiones. Las carteras quedaron invertidas, apalancadas ~2–3x. El 11-jun Google deshabilita además la API de Compute Engine del proyecto.
Split 4:1 de CRWD en la cuenta Fundamental: 228 → 912 acciones.
Reinicio. El proyecto se vincula a una nueva cuenta de facturación, se recompila la imagen, se redespliegan jobs y schedulers y se recarga crédito en Anthropic: a las 14:55 la IA vuelve a decidir. Fundamental en $362.683; WSB en $124.605.
Pico del WSB: $132.065.
Pico del Fundamental: $398.540 (+298 %).
El Fundamental des-apalanca masivamente en plena caída de semiconductores (KOSPI −5 %, Micron). Pasa de 3,15x a 0,26x.
Fin oficial del experimento. Segundo agotamiento del crédito de la API de Anthropic. Los jobs siguen corriendo cada 30 min, pero fallan con HTTP 400 «credit balance is too low»: 0 decisiones desde entonces.
Mínimo del WSB: $53.321 (−46,7 %), apalancado 2,8x sin nadie al volante.
Snapshot de este informe.
04 · Qué pasó después del 20 de octubre
En pocas palabras: sin nadie que vendiera, el que había pedido dinero prestado lo pagó caro.
Fundamental
−0,8 %
$291.410 → $289.210 (−$2.200)
Ya había vendido casi todo: solo un 0,44x invertido y mucho efectivo. La caída del mercado apenas le tocó.
WSB
−20,2 %
$92.387 → $73.680 (−$18.708)
Seguía con 2,5–2,8x de dinero prestado en chips e IA (AMD, MU, CRWV, META). Tocó fondo el 5-nov en $53.321.
SPY
−4,4 %
769,09 $ → 735,40 $
Corrección del mercado en noviembre: la vara de medir para los dos.
Barras a la misma escala (0 → −25 %). 20-oct → 9-nov, 14 sesiones de mercado.
¿Por qué tanta diferencia? Entre el 14 y el 16 de octubre el Fundamental vendió la mayor parte de sus acciones: el 20-oct solo tenía invertido un 0,44x de su valor y el resto en efectivo, así que una caída del mercado le afectaba menos de la mitad. El WSB, en cambio, seguía comprado por 2,5–2,8 veces su capital con dinero prestado, casi todo en semiconductores e IA, justo el sector que más cayó. Cada punto que bajaba el mercado le restaba unas tres veces más. Nadie estaba al volante para reducir la posición.
En pocas palabras: lo que cada agente tenía comprado cuando se apagó la IA, y cuánto vale ahora que nadie lo toca.
Estas son las posiciones que la IA dejó abiertas con su última decisión, el 20-oct. Desde entonces nadie compra ni vende: la columna «20-oct» es el valor al cierre de ese día y la columna «hoy», el snapshot de Alpaca del 9-nov. P&L no realizado = lo que se ganaría o perdería si se vendiera a ese precio.
6 posiciones · apalancamiento 0,44x el 20-oct → 0,43x hoy · cash hoy +$163.714 · P&L no realizado +$15 → −$1.880
13 posiciones · apalancamiento 2,46x el 20-oct → 2,84x hoy · cash hoy −$135.213 · P&L no realizado −$10.729 → −$28.204
05 · Duelo de agentes
En pocas palabras: el Fundamental ganó en casi todo; al WSB se le ejecutaron más órdenes, pero apostó más concentrado y salió peor.
Ocho comparaciones hasta el 20-oct. Pulsa una tarjeta para girarla, o gira todas con el selector.
Fuentes: Alpaca Paper y Firestore. «Decisiones ejecutadas» y «símbolo favorito» salen del registro de 6.104 decisiones; «compras : ventas», de las órdenes realmente ejecutadas en Alpaca.
06 · Mes a mes
En pocas palabras: cuánto ganó o perdió cada cuenta cada mes. Las barras rayadas son meses dominados por periodos en los que la IA no decidía.
Rentabilidad mensual sobre la equity de fin de mes. Mayo cuenta solo hasta el día 9 y, además, la IA ya no decidía (crédito agotado el 20-abr); septiembre recoge casi entera la pausa de 137 días (lo que hizo el mercado con una cartera que nadie tocó); noviembre es todo «sin gestión».
Valor invertido / equity. Por encima de 1x la cuenta opera con margen.
2x = por cada dólar propio, la cuenta tenía dos invertidos; el segundo, prestado por el bróker.
07 · Mejores y peores decisiones
En pocas palabras: qué acciones dieron más dinero y cuáles más perdieron, y lo que el modelo escribió al comprarlas o venderlas.
P&L por símbolo a 20-oct (vendido − comprado + valor de lo que quedaba abierto al cierre del 20-oct) y las citas literales del campo reasoning que el modelo escribió en cada orden. Las del WSB van con sus emojis: son parte del experimento.
«Elite institutional quantitative hedge fund algorithm». Noticias Alpaca + RSI/MACD/Bollinger + RAG de noticias.
«AMD is a leading semiconductor company that is benefiting from the growth in AI…»
+$69.885 Vendida en octubre a $531–543. La tesis era correcta, pero la mayor parte del beneficio llegó durante la pausa: 137 días sin tocarla.
«Intel is currently undervalued with a low RSI of 32…»
+$48.144 Compra contraria en sobreventa, vendida a ~$90 en octubre. La lectura técnica más limpia de todo el experimento.
RSI bajo (32) = la acción había caído mucho y rápido; suele rebotar. Undervalued = barata respecto a lo que vale.
«CRWD is 91.7% of portfolio (massive concentration risk)… Reduce to 15-20%».
+$140.550 La mejor posición del experimento: split 4:1 y revalorización durante la pausa. Gestión de riesgo correcta… sobre una concentración que el propio bot había creado.
Concentration risk = demasiado dinero en una sola acción: si cae, arrastra toda la cartera.
«RSI 91 (overbought but in confirmed uptrend)… momentum is undeniable… Highest conviction signal in dataset.»
−$26.115 Persiguió el momentum en el pico con RSI 90–91 y vendió a $300–310 diez días después. Su propia señal técnica avisaba; la ignoró con «máxima convicción».
Overbought (sobrecompra) = la acción ha subido tan rápido que suele corregir. Momentum = «lo que sube, sigue subiendo».
«Analytical but degenerate WSB Ape». Top-20 de ApeWisdom + 20 noticias + RAG de Reddit (congelado desde febrero).
«🚀 Apes, I'm YOLOing into NVGS based on the DD in the long-term context! This tiny shipping stock could 🌕 if there's a disruption in the Hormuz Strait…»
+$24.889 Acumuló 11.466 acciones ($262k, el 207 % del equity) y las vendió el 23-sep a $22,87. La mejor del WSB. Buen resultado, proceso temerario: la posición solo pudo crecer tanto por el bug de apalancamiento.
YOLO = apostar fuerte a una sola idea. DD («due diligence») = el análisis que justifica la apuesta. 🌕 = que la acción se vaya «a la luna».
«🤔 WAIT WHAT? IT (Gartner) has 22 mentions but INSANE 5946 upvotes—this is a meme pump… classic WSB trap».
+$3.831 Detectó el pump por la relación menciones/upvotes y deshizo la posición en una hora. Aquí el «ape» leyó bien su propio foro.
Meme pump = subida inflada por el foro, no por la empresa. «Ape» = como se llaman a sí mismos los usuarios de r/wallstreetbets.
«🔥 MEMORY CHIP MOON MISSION 🔥 MU trending #2 on WSB (241 mentions, 986 upvotes)…»
−$12.463 Compró en el pico el mismo día del reinicio. A 20-oct era su peor posición (y el 9-nov, ya sin gestión, MU cotizaba a $731). Su ticker más obsesivo de octubre: 180 decisiones sobre MU entre el 23-sep y el 20-oct.
«Moon mission» = la apuesta de que la acción se dispare. «Trending #2 on WSB» = la segunda más comentada del foro ese día.
«🎯 YOLO INTO THE DIP 🎯 CoreWeave… RSI 22 = OVERSOLD»
−$2.333 Dos días después vendió 522 acciones a $62,3 («technicals are TERRIBLE… The stock is in freefall») y volvió a comprar el 20-oct, su último día con IA. Sin gestión, esas 486 acciones bajaron a $48,75 el 9-nov y la pérdida creció a −$8.826.
Oversold (sobreventa) = ha caído tanto y tan rápido que suele rebotar. «Buy the dip» = comprar cuando baja; aquí, comprar un cuchillo que seguía cayendo.
08 · Explorador de decisiones
En pocas palabras: busca por agente, acción, símbolo o fechas y lee lo que el modelo escribió en cada orden.
Todas las decisiones registradas en Firestore hasta el 20-oct. Cada raya de la franja es una decisión; arrastra sobre ella para elegir un rango de fechas. Horas en horario de Madrid.
Cargando las 6.104 decisiones…
En pocas palabras: el modelo intentaba comprar mucho más de lo que podía pagar, y casi nunca pensó que el mercado fuera a caer.
Datos de Firestore: 4.405 decisiones del Fundamental y 1.699 del WSB. Dos de cada tres eran compras, y el motivo número uno para no ejecutarlas fue que no quedaba dinero.
2 : 1
Ratio compras/ventas en ambos agentes
Sesgo comprador estructural: el prompt les decía cada ciclo que estaban «infra-invertidos» por el bug del apalancamiento.
−20 %
Stop-loss semanal (7 días)
Se disparó en el WSB el 19-oct y del 3 al 9-nov. Pero solo aborta la ejecución: no cierra posiciones. Con 2,8x de apalancamiento, la cartera siguió cayendo sola.
09 · El humor de la IA
En pocas palabras: en cada ejecución el modelo declaraba si veía el mercado alcista o bajista. Casi siempre lo vio alcista y nunca declaró una caída grave.
Por día y por agente: hacia arriba, ejecuciones que declararon el mercado BULLISH (alcista); hacia abajo, BEARISH (bajista). Pulsa un día para leer un análisis de ejemplo de ese día.
Desliza el gráfico en horizontal para ver todos los días →
Sin datos entre el 20-abr y el 23-sep: primero se agotó el crédito de la IA y luego llegó la pausa de 137 días.
0
Veces que declaró CRASH o activó emergency_liquidate
El único mecanismo de liquidación dependía de que el modelo lo pidiera. Nunca lo pidió.
Marzo
El único mes mayoritariamente bajista
Fundamental: 205 BEARISH frente a 163 BULLISH. WSB: 180 frente a 135.
2 de 3
Ejecuciones optimistas
Fundamental: 613 BULLISH, 288 BEARISH, 7 MIXED. WSB: 610 BULLISH, 239 BEARISH.
10 · Cómo funciona
En pocas palabras: cada media hora, un programa en la nube junta noticias y precios, le pregunta a Claude qué hacer y ejecuta su respuesta.
Cloud Scheduler lanza un Cloud Run Job por agente cada 30 minutos en horario de mercado (9:00–16:30 ET, 16 ejecuciones al día). El job descarga su memoria RAG, recoge señales, calcula indicadores, pregunta a Claude y ejecuta las órdenes en Alpaca Paper. Todo queda en Firestore.
trader.pyThe Fundamentalist
«elite institutional quantitative hedge fund algorithm»
The WSB Degen
«analytical but degenerate WSB Ape»
claude-haiku-4-5-20251001 · temperature 0.1 · max_tokens 4096 · salida JSON con acción (BUY / SELL / HOLD / CANCEL / REDUCE), sentimiento de mercado y watchlist. Tamaño de cada orden: equity × % objetivo / precio, comprobando solo el buying power.
11 · Lecciones aprendidas
En pocas palabras: los resultados los explican más los fallos de ingeniería y el calendario que la inteligencia del modelo.
Lo que de verdad explica los números no está en el prompt: está en una línea de Python, en un calendario y en la factura de la API.
# en una cuenta margin de Alpaca, buying_power ≈ 4 × equity
invested_pct = (equity − buying_power) / equity
# → "Invested: −244 % (Target 80 %)" … en cada ciclo
En una cuenta margin de Alpaca el buying power es unas cuatro veces la equity, así que el prompt le decía al modelo «Invested: −244 % (Target 80 %)» en cada ciclo. El modelo, obediente, compraba sin parar hasta agotar el margen. Además, el tamaño de cada orden se calcula con equity × % y solo se comprueba el margen disponible, nunca el cash.
$229.482 $362.683 durante la pausa de 137 días
La mayor parte de la ganancia del Fundamental se generó con los schedulers apagados: la cartera de marzo (AMD, INTC, CRWD, NVDA) más el split de CRWD. Operar activamente en octubre costó ≈ $107.000 desde el pico, des-apalancando en plena caída de semiconductores.
Solo aborta el job; no cierra posiciones ni cancela órdenes. El único mecanismo de liquidación (emergency_liquidate) depende de que el modelo responda, y nunca lo activó.
El crédito prepagado de Anthropic (12 €) se agotó dos veces, el 20-abr y el 20-oct. Las dos veces el sistema siguió «vivo» (snapshots, logs) pero ciego, y nadie se enteró hasta semanas después: no había ninguna alerta.
ia-reddit-rag-job falla en 124 de 126 ejecuciones (la API de Compute Engine está deshabilitada y el contenedor trigger no arranca). El índice es del 28-feb: el WSB operó ocho meses con memoria congelada. Su señal real era ApeWisdom + noticias.
WATCH, MONITOR, REBALANCE_NOTE… fuera del esquema JSON; el ejecutor las ignora (SKIPPED/ERROR). Hay que validar la salida con un schema estricto.
«ANTHROPIC», «TSMC_PRICE_INCREASE_CATALYST», «FOUNDRY_CAPACITY_PLAYS», «GARTNER», «NAVIGATOR» acabaron guardados en Firestore: la watchlist se escribe sin validar contra Alpaca.
Sesgo comprador 2:1 e «Insufficient Funds» como primer motivo de omisión: 1.484 veces en el Fundamental y 695 en el WSB.
ia-tradebot tenía Firestore en modo Datastore, incompatible con el SDK web. Hubo que crear ia-trader-5383 para Firestore Native + Hosting.
El modelo mantiene la persona (jerga + emojis) y a la vez argumenta con RSI/MACD/volumen. El coste: a veces el «meme reasoning» se cuela en el bot serio, y hay un script (clean_misplaced_trades.py) solo para moverlos.
12 · Coste del experimento
En pocas palabras: unos 30–35 dólares en total: 12 € de IA y unos 20 $ de Google Cloud.
La partida de Anthropic es el crédito realmente cargado; la de Google Cloud es una estimación a partir del uso (el proyecto no tiene export de facturación, y la cifra exacta vive en la consola). Ritmo en un mes completo de mercado: ≈ $2 de Google Cloud y 3–5 € de Claude (≈ 680 decisiones en marzo, 470 en abril, 415 en octubre).
≈ $30–35por 9 meses: 12 € de Claude + ≈ $20 de Google Cloud
| Concepto | Uso | Coste estimado |
|---|---|---|
| Cloud Run Jobs | 3.477 ejecuciones · ~195 s · 1 vCPU / 512 MiB · ≈ 0,5–0,7 M vCPU-s | ≈ $0–3 free tier 180k vCPU-s/mes |
| Cloud Scheduler | 4 jobs (3 gratis) | ≈ $1 |
| Artifact Registry | 19,2 GB de imágenes, muchas sin tag | ≈ $17 $0,10/GB/mes · la mayor partida GCP |
| Firestore · Firebase Hosting · Cloud Storage · Logging | Dentro del free tier | ≈ $0 |
| Compute Engine Spot VM (Reddit RAG) | 2 ejecuciones reales | < $0,10 |
| Subtotal Google Cloud | ≈ $2 al mes, casi todo Artifact Registry | ≈ $20 |
| Anthropic API · Claude Haiku 4.5 $1/M in · $5/M out | 1.757 llamadas con respuesta (908 + 849) · ~2,5k tokens in · ~1,5k out | 12 € crédito prepagado (≈ $14–18 a precio de lista) · agotado el 20-abr y el 20-oct |
| Alpaca Paper · ProtonVPN Free · dominio ya existente | $0 | |
| Total | ≈ $30–35 |
Se recargará crédito más adelante para una segunda fase.
13 · Glosario
Para quien no viene del mundo de la bolsa.