Un trader convierte RAG y RandomForest en señales BUY/SELL: 62 % de acierto con 59 registros
Un desarrollador convirtió un RAG de noticias sobre LLM locales en un pipeline que emite señales BUY/SELL/NEUTRAL para acciones de la Bolsa de Moscú. Las noticias se vinculan a tickers y se transforman en características diarias, mientras que un RandomForest calibrado entrega una probabilidad y una lista de noticias que sustentan la señal. Con 59 registros, la precisión media fue del 62 %, pero el test tiene solo 45 ejemplos. El propio autor califica la evaluación de preliminar.
Procesado por IA desde Habr AI; editado por Hamidun News
Muchos saben conectar un LLM a un flujo de noticias y obtener un «analista inteligente». Mucho menos frecuente es que alguien muestre con honestidad lo que ocurre después: cuando no se trata de resumir noticias, sino de predecir el precio. El autor de un proyecto en Habr continuó su experimento con RAG y lo llevó hasta señales de trading con explicaciones. Repasamos qué merece la pena aprender de esta historia.
Un pipeline en lugar de tres tareas en competencia
La primera versión del sistema lanzaba en paralelo tres tareas en segundo plano: clasificación, extracción de entidades y enriquecimiento. Cada una cargaba su propio modelo en la memoria de la GPU, y Ollama descargaba y cargaba pesos constantemente. Cuando la base creció de 12.000 a 37.000 artículos, resultó demasiado costoso.
La solución es sencilla: un único pipeline. El artículo pasa por clasificación, filtro de basura, evaluación del impacto en el mercado, NER, resumen y embedding. Si el filtro decide que la noticia trata de deportes o cultura, se marca como skipped y no se gasta en ella ni un segundo más de GPU. La lección es universal: primero un descarte barato, después el modelo caro.
Los ajustes de Ollama también se afinaron a mano. El autor permitió mantener en memoria dos modelos (Qwen 14B y BGE-M3), fijó el paralelismo en 6 y lo ató todo a una sola Tesla P100. Con el valor 8, la memoria llegaba al límite y las solicitudes fallaban por timeout. La segunda tarjeta no se usa deliberadamente: cuando las capas se reparten entre GPU, la velocidad cae de 3 a 5 veces por la transferencia de datos a través de PCIe.
De la noticia a la señal
Ejemplo: el NER encuentra «Sber» en el texto. Un diccionario de sinónimos, que se nutre de la API de la Bolsa de Moscú, lo convierte en el ticker SBER. Para cada día y ticker se calculan características: la suma de las direcciones de las noticias (+1 por positiva, −1 por negativa), el número de noticias, la volatilidad a 5 y 20 días y el volumen medio de negociación. Después, un RandomForest con calibración Platt scaling entrega BUY, SELL o NEUTRAL junto con una probabilidad, y la API devuelve además la lista de noticias que influyeron en la decisión. En Streamlit esto se convierte en un terminal con velas y pruebas desplegables.
Un detalle curioso: para Alfa-Bank, que no cotiza en bolsa, crearon un ticker ficticio, ALFAMOCK. Las noticias se acumulan de antemano y, tras la OPV, simplemente se sustituirá el ticker.
Dónde se rompe todo
Lo más valioso del artículo es el análisis de los fracasos. Un intento de añadir atenuación temporal hizo la característica fraccionaria (0,85 en lugar de 1), y la precisión cayó del 52 % al 36 %. Con 55 registros eso es solo ruido, así que la idea se aplazó hasta tener más de 200 registros.
Otro caso: VKCO recibió BUY con un 64 % de confianza con noticias neutrales. El modelo simplemente aprendió que el mercado sube en el 55 % de los casos. El autor rechazó un filtro rígido de «sin presión, entonces NEUTRAL» por considerarlo un maquillaje del síntoma y planificó características de dominancia, también tras acumular datos. La deuda técnica está registrada y documentada.
La validación se hace con el método walk-forward: la ventana de entrenamiento se desliza en el tiempo para no acertar por casualidad un periodo «afortunado». El esquema objetivo es de 30 días de entrenamiento y 7 de test, pero por ahora funciona una versión reducida 14/3/3. El resultado es una precisión media del 62 % (mediana del 67 %) con 45 ejemplos de test.
Qué hacer con esto
No tome el 62 % como una estrategia de trading: la muestra es minúscula, no se han tenido en cuenta comisiones ni deslizamiento, y el modelo puede aprender ruido con facilidad. El valor del proyecto está en otra parte. Es una buena plantilla de arquitectura: un filtro temprano para ahorrar GPU, una salida explicable con fuentes, probabilidades calibradas y un registro honesto de las decisiones en ADR. Si construye un pipeline similar con modelos locales, conviene adoptar el enfoque de ajuste de Ollama y el hábito de medir el efecto de cada característica antes de conservarla. El código de la parte pública está abierto en GitHub.
- 8 nov 2026Un modelo de 72B en un MacBook M2 Pro dio 1–2 tokens por segundo y sobrecalentó el portátil
- 8 nov 2026Vera Rubin NVL72 entrega 5 veces más tokens por GPU que GB300 en DeepSeek V4.1 Flash
- 8 nov 2026Thinking Machines lanza Inkling 2 Small: un MoE de 594B entrenado en 68 horas
- 8 nov 2026Arranque en frio de un LLM en Kubernetes: 200 de 294 segundos no se dedican a cargar los pesos
Preguntas frecuentes sobre la noticia
¿Qué se sabe sobre Un pipeline en lugar de tres tareas en competencia?
La primera versión del sistema lanzaba en paralelo tres tareas en segundo plano: clasificación, extracción de entidades y enriquecimiento. Cada una cargaba su propio modelo en la memoria de la GPU, y Ollama descargaba y cargaba pesos constantemente. Cuando la base creció de 12.000 a 37.000 artículos, resultó demasiado costoso. La solución es sencilla: un único pipeline. El artículo pasa por clasificación, filtro de basura, evaluación del impacto en el mercado, NER, resumen y embedding.
¿Qué se sabe sobre De la noticia a la señal?
Ejemplo: el NER encuentra «Sber» en el texto. Un diccionario de sinónimos, que se nutre de la API de la Bolsa de Moscú, lo convierte en el ticker SBER. Para cada día y ticker se calculan características: la suma de las direcciones de las noticias (+1 por positiva, −1 por negativa), el número de noticias, la volatilidad a 5 y 20 días y el volumen medio de negociación.
Dónde se rompe todo?
Lo más valioso del artículo es el análisis de los fracasos. Un intento de añadir atenuación temporal hizo la característica fraccionaria (0,85 en lugar de 1), y la precisión cayó del 52 % al 36 %. Con 55 registros eso es solo ruido, así que la idea se aplazó hasta tener más de 200 registros. Otro caso: VKCO recibió BUY con un 64 % de confianza con noticias neutrales. El modelo simplemente aprendió que el mercado sube en el 55 % de los casos.
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
Lo esencial de la IA — una vez por semana
Siete historias que de verdad importaron, elegidas a mano. Sin ruido ni notas de prensa.
¡Listo! Revisa tu correo para la confirmación.