LanzamientoAnálisis · En radarHabr AI→ original

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
Un trader convierte RAG y RandomForest en señales BUY/SELL: 62 % de acierto con 59 registros
Fuente: Habr AI. Collage: Hamidun News.
Escuchar artículo
Ficha técnica y cifras clave
ParámetroDatos
Fuente originalHabr AI ↗
Editor jefe
Dato clave #1Un filtro descarta deportes y sucesos antes de los pasos pesados con LLM
OllamaNUM_PARALLEL=6 y dos modelos en VRAM aceleraron el pipeline entre 1,5 y 2 veces
Dato clave #3La atenuación temporal de las noticias redujo la precisión del 52 % al 36 %

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.

Historia

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.

ZK
Zhemal Khamidun — CPO de Alpina Digital, product manager de AlpinaGPT. Crea productos de IA desde 2019. Hamidun News es un proyecto personal que creció hasta ser un agregador en producción con más de 6.000 lectores.
✦ Unified AI Workspace · Nomad

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.

Try Nomad AI →Launch Nomad Agent
¿Qué te parece?
Cargando comentarios…