FASE 1 - DDL-Backend Coherence (continued): - market-data.types.ts: Updated TickerRow, added Ohlcv5mRow, Ohlcv15mRow, OhlcvStagingRow - llm.types.ts: Updated UserPreferences, UserMemory, Embedding + 3 Row types - financial.types.ts: +6 types (Invoice, WalletAuditLog, etc.) - entity.types.ts (trading): +5 types (Symbol, TradingBot, etc.) FASE 2 - Backend-Frontend Coherence (continued): - llmStore.ts: New Zustand store with session lifecycle management - riskStore.ts: New Zustand store for risk assessment - risk.service.ts: New service with 8 functions - currency.service.ts: New service with 5 functions FASE 3 - Documentation: - OQI-007: Updated to 100% (7 ET, 11 US, 6 RF) - OQI-008: Added ET-PFM-010-architecture.md, ET-PFM-011-goals-system.md - Updated all _MAP.md and README.md indexes Build validation: Backend tsc PASSED, Frontend Vite PASSED Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
380 lines
16 KiB
Markdown
380 lines
16 KiB
Markdown
---
|
|
id: "README"
|
|
title: "LLM Strategy Agent"
|
|
type: "Documentation"
|
|
project: "trading-platform"
|
|
version: "1.1.0"
|
|
updated_date: "2026-01-28"
|
|
status: "En Progreso"
|
|
progress: 45
|
|
---
|
|
|
|
# OQI-007: LLM Strategy Agent
|
|
|
|
## Estado del Módulo
|
|
|
|
| Aspecto | Estado | Progreso |
|
|
|---------|--------|----------|
|
|
| Documentación | ✅ Completa | 100% |
|
|
| Especificaciones | ✅ 7 de 7 | 100% |
|
|
| User Stories | ✅ 11 de 11 | 100% |
|
|
| Implementación Backend | En Progreso | 40% |
|
|
| Implementación Frontend | En Progreso | 35% |
|
|
| Tests | Pendiente | 15% |
|
|
| **Global** | **En Progreso** | **45%** |
|
|
|
|
---
|
|
|
|
## Resumen Ejecutivo
|
|
|
|
Esta épica implementa un agente de inteligencia artificial basado en Large Language Models (LLM) que actúa como asistente de trading inteligente, interpretando señales ML, sugiriendo estrategias y explicando decisiones en lenguaje natural.
|
|
|
|
---
|
|
|
|
## Visión
|
|
|
|
> "Un copiloto de trading inteligente que combina el poder predictivo del ML con la capacidad explicativa de los LLMs para democratizar el trading profesional"
|
|
|
|
---
|
|
|
|
## Objetivos
|
|
|
|
1. **Interpretar señales ML** en lenguaje natural comprensible
|
|
2. **Sugerir estrategias** de entrada/salida basadas en contexto de mercado
|
|
3. **Explicar razonamiento** detrás de cada recomendación
|
|
4. **Gestionar conversaciones** sobre trading y educación
|
|
5. **Fine-tuning especializado** con datos de trading reales
|
|
|
|
---
|
|
|
|
## Arquitectura
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
│ LLM STRATEGY AGENT │
|
|
├─────────────────────────────────────────────────────────────────────────────┤
|
|
│ │
|
|
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
|
│ │ CONVERSATION LAYER │ │
|
|
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐ │ │
|
|
│ │ │ Chat UI │ │ Context │ │ Memory Manager │ │ │
|
|
│ │ │ Interface │ │ Builder │ │ (conversation history) │ │ │
|
|
│ │ └──────────────┘ └──────────────┘ └──────────────────────────┘ │ │
|
|
│ └─────────────────────────────────────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ┌─────────────────────────────────▼───────────────────────────────────┐ │
|
|
│ │ LLM CORE ENGINE │ │
|
|
│ │ ┌──────────────────────────────────────────────────────────────┐ │ │
|
|
│ │ │ Fine-tuned Model │ │ │
|
|
│ │ │ ┌────────────┐ ┌────────────┐ ┌────────────────────────┐ │ │ │
|
|
│ │ │ │ Claude/ │ │ Trading │ │ Prompt Templates │ │ │ │
|
|
│ │ │ │ GPT-4 │ │ Adapter │ │ (strategy, explain) │ │ │ │
|
|
│ │ │ └────────────┘ └────────────┘ └────────────────────────┘ │ │ │
|
|
│ │ └──────────────────────────────────────────────────────────────┘ │ │
|
|
│ └─────────────────────────────────────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ┌─────────────────────────────────▼───────────────────────────────────┐ │
|
|
│ │ INTEGRATION LAYER │ │
|
|
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐ │ │
|
|
│ │ │ ML Engine │ │ Market │ │ User Portfolio │ │ │
|
|
│ │ │ Connector │ │ Data API │ │ Context │ │ │
|
|
│ │ └──────────────┘ └──────────────┘ └──────────────────────────┘ │ │
|
|
│ └─────────────────────────────────────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ┌─────────────────────────────────▼───────────────────────────────────┐ │
|
|
│ │ TOOLS & FUNCTIONS │ │
|
|
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐ │ │
|
|
│ │ │ Get Signal │ │ Analyze │ │ Execute Trade │ │ │
|
|
│ │ │ (from ML) │ │ Chart │ │ (with confirmation) │ │ │
|
|
│ │ └──────────────┘ └──────────────┘ └──────────────────────────┘ │ │
|
|
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐ │ │
|
|
│ │ │ Get Price │ │ Check │ │ Set Alert │ │ │
|
|
│ │ │ History │ │ Portfolio │ │ │ │ │
|
|
│ │ └──────────────┘ └──────────────┘ └──────────────────────────┘ │ │
|
|
│ └─────────────────────────────────────────────────────────────────────┘ │
|
|
│ │
|
|
└─────────────────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Capacidades del Agente
|
|
|
|
### 1. Interpretación de Señales ML
|
|
|
|
```
|
|
Usuario: "¿Qué dice el modelo sobre Bitcoin ahora?"
|
|
|
|
Agente: "Basándome en el análisis del modelo ML:
|
|
|
|
📊 **Señal actual: COMPRA (Confianza: 78%)**
|
|
|
|
**Contexto del mercado:**
|
|
- Fase AMD detectada: Acumulación
|
|
- Volatilidad: Baja (ATR en percentil 25)
|
|
- RSI: 42 (neutral, saliendo de sobreventa)
|
|
|
|
**Predicción de rango (próximos 90 min):**
|
|
- Precio actual: $43,250
|
|
- Máximo esperado: $43,520 (+0.62%)
|
|
- Mínimo esperado: $43,100 (-0.35%)
|
|
|
|
**Mi recomendación:**
|
|
Entrada en $43,200-43,300 con:
|
|
- Stop Loss: $42,950 (-0.7%)
|
|
- Take Profit: $43,500 (+0.6%)
|
|
- Risk/Reward: 1:0.85
|
|
|
|
⚠️ Nota: Esta es una señal de corto plazo (scalping).
|
|
El modelo tiene 68% de precisión en este horizonte."
|
|
```
|
|
|
|
### 2. Sugerencia de Estrategias
|
|
|
|
```
|
|
Usuario: "Tengo $5,000 para invertir, perfil moderado"
|
|
|
|
Agente: "Para tu perfil moderado con $5,000, sugiero:
|
|
|
|
**Estrategia: Orion (Trend Following)**
|
|
|
|
📈 **Distribución recomendada:**
|
|
- 60% en Orion Agent ($3,000)
|
|
- Target: 5-10% mensual
|
|
- Max drawdown: 10%
|
|
- Activos: Top 10 cryptos
|
|
|
|
- 30% en Atlas Agent ($1,500)
|
|
- Target: 3-5% mensual
|
|
- Max drawdown: 5%
|
|
- Activos: BTC, ETH only
|
|
|
|
- 10% en cash ($500)
|
|
- Para oportunidades puntuales
|
|
|
|
**Proyección a 6 meses:**
|
|
- Escenario conservador: +18% ($5,900)
|
|
- Escenario esperado: +35% ($6,750)
|
|
- Escenario optimista: +55% ($7,750)
|
|
|
|
¿Quieres que proceda a abrir estas cuentas?"
|
|
```
|
|
|
|
### 3. Explicación de Decisiones
|
|
|
|
```
|
|
Usuario: "¿Por qué el bot vendió mi posición de ETH?"
|
|
|
|
Agente: "Tu posición de ETH fue cerrada por el agente Atlas:
|
|
|
|
**Detalles del trade:**
|
|
- Entrada: $2,340 (hace 3 horas)
|
|
- Salida: $2,295 (-1.9%)
|
|
- Razón: Stop Loss activado
|
|
|
|
**¿Por qué se activó el Stop Loss?**
|
|
|
|
1. **Detección de Manipulación (AMD)**
|
|
- El modelo detectó fase de "Manipulation"
|
|
- Volumen anormal (+180% vs promedio)
|
|
- Wick patterns indicando barrido de stops
|
|
|
|
2. **Protección del capital**
|
|
- Atlas tiene max drawdown de 5%
|
|
- Esta pérdida representa 1.9% del capital asignado
|
|
- Quedó margen para 3 trades más antes de pausar
|
|
|
|
3. **Señales técnicas**
|
|
- RSI cayó de 55 a 38 en 30 minutos
|
|
- Ruptura de soporte en $2,310
|
|
- MACD cruzó a negativo
|
|
|
|
**Aprendizaje:**
|
|
El modelo priorizó preservar capital. En 7 de cada 10
|
|
casos similares, el precio continuó cayendo otro 2-3%.
|
|
|
|
¿Quieres ajustar la configuración de riesgo de Atlas?"
|
|
```
|
|
|
|
### 4. Asistente Educativo
|
|
|
|
```
|
|
Usuario: "No entiendo qué es la fase de Acumulación"
|
|
|
|
Agente: "¡Excelente pregunta! Déjame explicarte:
|
|
|
|
**🏦 Fase de Acumulación (Smart Money Concepts)**
|
|
|
|
Es cuando los grandes jugadores (instituciones, ballenas)
|
|
están comprando silenciosamente sin mover mucho el precio.
|
|
|
|
**Características:**
|
|
- Volumen bajo pero constante
|
|
- Precio en rango estrecho (consolidación)
|
|
- RSI en zona neutral o baja (30-50)
|
|
- Poca actividad de retail
|
|
|
|
**¿Por qué importa?**
|
|
Después de acumulación suele venir un movimiento alcista
|
|
fuerte. Es como la calma antes de la tormenta.
|
|
|
|
**Ejemplo en tu chart:**
|
|
[Se mostraría imagen del chart con zonas marcadas]
|
|
|
|
En el último mes, detectamos 3 fases de acumulación en BTC:
|
|
- 15 Nov: Acumulación → +8% en 48h
|
|
- 28 Nov: Acumulación → +5% en 24h
|
|
- 3 Dic: Acumulación → (en desarrollo)
|
|
|
|
¿Quieres que te avise cuando detecte la próxima?"
|
|
```
|
|
|
|
---
|
|
|
|
## Modos de Operación
|
|
|
|
### Modo Chat (Conversacional)
|
|
- Respuestas en lenguaje natural
|
|
- Contexto de conversación
|
|
- Preguntas de seguimiento
|
|
|
|
### Modo Comando (Acciones directas)
|
|
```
|
|
/signal BTCUSDT → Obtener señal actual
|
|
/analyze ETHUSDT 4h → Análisis técnico
|
|
/portfolio → Ver mi portfolio
|
|
/alert BTCUSDT 45000 → Crear alerta
|
|
/trade buy BTC 100 → Ejecutar orden (requiere confirmación)
|
|
```
|
|
|
|
### Modo Proactivo (Notificaciones)
|
|
- Alertas de señales fuertes
|
|
- Cambios en posiciones
|
|
- Oportunidades detectadas
|
|
- Resumen diario
|
|
|
|
---
|
|
|
|
## Fine-Tuning Strategy
|
|
|
|
### Datos de Entrenamiento (del TradingAgent existente)
|
|
|
|
```python
|
|
# SignalLogger ya genera datos en formato LLM
|
|
{
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "Eres un analista de trading experto..."
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Analiza la situación actual de XAUUSD"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "Basándome en los indicadores técnicos..."
|
|
}
|
|
],
|
|
"metadata": {
|
|
"signal": {...},
|
|
"outcome": "profit",
|
|
"pnl_percent": 1.2
|
|
}
|
|
}
|
|
```
|
|
|
|
### Fuentes de Fine-Tuning
|
|
1. **Histórico de señales** (10 años de datos)
|
|
2. **Outcomes reales** (trades ejecutados)
|
|
3. **Análisis técnico manual** (validación experta)
|
|
4. **Feedback de usuarios** (RLHF)
|
|
|
|
---
|
|
|
|
## Límites por Plan
|
|
|
|
| Plan | Mensajes/día | Funciones | Proactivo |
|
|
|------|--------------|-----------|-----------|
|
|
| Free | 10 | Básicas | ❌ |
|
|
| Basic | 50 | Análisis | ❌ |
|
|
| Pro | 200 | Todas | ✅ |
|
|
| Premium | Ilimitado | Todas + API | ✅ + Personalizado |
|
|
|
|
---
|
|
|
|
## Stack Técnico
|
|
|
|
| Componente | Tecnología |
|
|
|------------|------------|
|
|
| LLM Base | Claude 3.5 / GPT-4 Turbo |
|
|
| Fine-tuning | OpenAI API / Anthropic API |
|
|
| Orquestación | LangChain / Claude Tools |
|
|
| Vector Store | Pinecone / Weaviate |
|
|
| Cache | Redis |
|
|
| API | FastAPI (extensión ML Engine) |
|
|
|
|
---
|
|
|
|
## Métricas de Éxito
|
|
|
|
| Métrica | Target |
|
|
|---------|--------|
|
|
| Precisión de respuestas | > 90% |
|
|
| Tiempo de respuesta | < 3 segundos |
|
|
| Satisfacción usuario (NPS) | > 50 |
|
|
| Señales correctamente explicadas | > 95% |
|
|
| Trades ejecutados via agente | > 30% del total |
|
|
|
|
---
|
|
|
|
## Story Points Totales: 60 SP
|
|
|
|
---
|
|
|
|
## Documentación Completa
|
|
|
|
### Especificaciones Técnicas (7)
|
|
| ID | Nombre | Descripción |
|
|
|----|--------|-------------|
|
|
| ET-LLM-001 | Arquitectura Chat | Sistema WebSocket/Chat completo |
|
|
| ET-LLM-002 | Agente de Análisis | Agente especializado en análisis de mercado |
|
|
| ET-LLM-003 | Motor de Estrategias | Motor de sugerencias de estrategias |
|
|
| ET-LLM-004 | Integración Educativa | Conexión con módulo educativo |
|
|
| ET-LLM-005 | Arquitectura Tools | Sistema de tools y function calling |
|
|
| ET-LLM-006 | Gestión de Memoria | Contexto y memoria conversacional |
|
|
| ET-LLM-007 | Frontend | Componentes React, hooks, stores |
|
|
|
|
### Historias de Usuario (11)
|
|
| ID | Historia | SP |
|
|
|----|----------|-----|
|
|
| US-LLM-001 | Enviar mensaje al agente | 5 |
|
|
| US-LLM-002 | Gestionar conversaciones | 5 |
|
|
| US-LLM-003 | Solicitar análisis de símbolo | 8 |
|
|
| US-LLM-004 | Ver señales ML vía chat | 8 |
|
|
| US-LLM-005 | Estrategia personalizada | 5 |
|
|
| US-LLM-006 | Ver historial de estrategias | 5 |
|
|
| US-LLM-007 | Asistencia educativa | 5 |
|
|
| US-LLM-008 | Recomendaciones de aprendizaje | 3 |
|
|
| US-LLM-009 | Consultar datos vía chat | 3 |
|
|
| US-LLM-010 | Paper trading vía chat | 8 |
|
|
| US-LLM-011 | Ejecutar trade desde chat | 5 |
|
|
|
|
### Requerimientos Funcionales (6)
|
|
- RF-LLM-001: Interfaz de Chat WebSocket
|
|
- RF-LLM-002: Análisis de Mercado vía LLM
|
|
- RF-LLM-003: Sugerencias de Estrategias
|
|
- RF-LLM-004: Asistencia Educativa
|
|
- RF-LLM-005: Integración de Tools (16 tools definidos)
|
|
- RF-LLM-006: Gestión de Contexto y Memoria
|
|
|
|
---
|
|
|
|
## Referencias
|
|
|
|
- [ET-LLM-001: Arquitectura Chat](./especificaciones/ET-LLM-001-arquitectura-chat.md)
|
|
- [ET-LLM-007: Frontend](./especificaciones/ET-LLM-007-frontend.md)
|
|
- [TRACEABILITY.yml](./implementacion/TRACEABILITY.yml)
|
|
- [TradingAgent SignalLogger](../../../apps/ml-engine/src/utils/signal_logger.py)
|
|
- [OQI-006: ML Signals](../OQI-006-ml-signals/)
|