El Sistema de Trading RL es una potente plataforma de trading que utiliza Aprendizaje por Refuerzo (RL) para crear, probar y ejecutar estrategias de trading automatizadas para NinjaTrader 8. El sistema aprende patrones óptimos de trading a partir de datos históricos y puede ejecutar operaciones en tiempo real con mínima intervención humana.
- 🧠 Trading basado en Aprendizaje por Refuerzo - El sistema aprende de los datos del mercado para tomar decisiones de trading
- 📊 Visualización avanzada de datos - Seguimiento del rendimiento con gráficos claros e interactivos
- 🔄 Ejecución de operaciones en tiempo real - Integración directa con NinjaTrader 8
- 🧪 Backtesting completo - Prueba tus modelos en datos históricos antes de arriesgar dinero real
- ⚙️ Sistemas de recompensa personalizables - Ajusta cómo la IA evalúa el rendimiento del trading
- 💼 Múltiples estilos de trading - Elige entre presets de alta frecuencia, posición o seguimiento de tendencia
- 🔍 Métricas de rendimiento detalladas - Seguimiento de balance, P&L, win rate y más
Antes de instalar, asegúrate de tener:
- Windows 10 o posterior (requerido para NinjaTrader 8)
- NinjaTrader 8 instalado (la versión demo gratuita es suficiente para pruebas)
- Privilegios de administrador en tu ordenador
- Ve a Python.org y descarga la última versión de Python 3.8+
- Ejecuta el instalador, y asegúrate de marcar ✅ "Añadir Python al PATH"
- Haz clic en "Instalar Ahora" y espera a que finalice la instalación
- Verifica la instalación abriendo el Símbolo del Sistema y escribiendo:
Deberías ver la versión de Python mostrada.
python --version
- Descarga el sistema desde GitHub o el enlace proporcionado
- Extrae el archivo ZIP a una ubicación que puedas encontrar fácilmente (p.ej.,
C:\RLTrading)
- Abre el Símbolo del Sistema como Administrador
- Navega a la carpeta RLTrading:
cd C:\RLTrading - Instala todos los paquetes requeridos:
Esto instalará todas las bibliotecas necesarias como numpy, pandas, matplotlib, gymnasium, stable-baselines3 y torch.
pip install -r requirements.txt
- Abre NinjaTrader 8
- Ve a Herramientas → Importar → Complemento NinjaScript...
- Navega a tu carpeta de RLTrading y selecciona:
integrations/RLExecutor.cspara trading en vivointegrations/RLLink.cspara el conector de datos
- Después de importar, los indicadores deberían aparecer en tu plataforma NinjaTrader
- Abre el Símbolo del Sistema
- Navega a tu carpeta de RLTrading:
cd C:\RLTrading - Inicia la aplicación:
python run_trading_system.py - Inicia sesión con las credenciales predeterminadas:
- Usuario:
trader - Contraseña:
jav92
- Usuario:
- Abre NinjaTrader y muestra el gráfico que quieres usar para el entrenamiento
- Añade el indicador RLExecutor a tu gráfico
- Haz clic en el botón "Extract Data" en el Sistema de Trading RL
- Los datos se guardarán en la carpeta
dataen tu directorio RLTrading
- En el Sistema de Trading RL, haz clic en "Configure Training"
- Selecciona tu preset de entrenamiento preferido (Alta Frecuencia, Posición o Tendencia)
- Haz clic en "OK" para aceptar la configuración
- Selecciona el modo "train" del menú desplegable
- Haz clic en "Start" para comenzar a entrenar tu modelo
- El progreso del entrenamiento se mostrará en el panel de gráficos
- Selecciona el modo "backtest" del menú desplegable
- Haz clic en "Start" para abrir el diálogo de selección de modelo
- Elige tu modelo entrenado
- Selecciona el archivo de datos para el backtesting
- El sistema ejecutará el backtest y mostrará los resultados en el gráfico de rendimiento
- Asegúrate de que NinjaTrader 8 esté ejecutándose con el indicador RLExecutor en tu gráfico
- En el Sistema de Trading RL, introduce los detalles de conexión:
- IP del Servidor:
127.0.0.1(predeterminado) - Puerto de Datos:
5000(predeterminado)
- IP del Servidor:
- Haz clic en "Connect" para establecer una conexión con NinjaTrader
- Selecciona el modo "server" del menú desplegable
- Haz clic en "Start" para iniciar el modo servidor
- Activa el interruptor "Auto Trading" para habilitar el trading automatizado
El Panel de Gráficos muestra dos gráficos principales:
- Gráfico de Precios (Superior): Muestra la evolución del precio del mercado con señales de compra (triángulos verdes), señales de venta (triángulos rojos) y señales de salida (círculos azules)
- Gráfico de Balance de Cuenta (Inferior): Muestra tu balance de cuenta a lo largo del tiempo
Muestra métricas clave de rendimiento:
- Balance de la Cuenta
- P&L Total (Ganancias y Pérdidas)
- Número de Operaciones
- Tasa de Éxito
- Posición Actual
- Estado de Conexión
Lista la actividad de trading reciente con:
- Hora
- Acción (Compra/Venta/Salida)
- Precio
- P&L
Gestiona la operación del sistema con:
- Configuración de Conexión (IP/Puerto)
- Modo de Operación (Entrenamiento/Backtest/Servidor)
- Botones de Control (Iniciar/Pausar/Detener)
- Interruptor de Trading Automático
Configura parámetros de entrenamiento:
- Algoritmo: Elige entre algoritmos PPO, A2C o DQN
- Pasos de Tiempo: Número de pasos para el entrenamiento (mayor = mejor aprendizaje pero más lento)
- Tasa de Aprendizaje: Qué tan rápido se adapta el modelo a nueva información
- Tamaño de Lote: Cantidad de datos procesados en cada paso de entrenamiento
- Dispositivo: Selecciona entre entrenamiento en CPU o GPU
Ajusta cómo la IA evalúa el rendimiento del trading:
- Escalado de Recompensa: Controla la magnitud general de las recompensas
- Penalización por Inactividad: Desalienta la espera excesiva
- Factor de Drawdown: Penalización por disminuciones en el valor de la cuenta
- Bonificación por Tasa de Éxito: Recompensa estrategias con alta precisión
Elige entre configuraciones preestablecidas:
-
Trading de Alta Frecuencia:
- Optimizado para operaciones a corto plazo
- Valores de stop-loss y take-profit más pequeños
- Mayor factor de decaimiento temporal
-
Trading de Posición:
- Diseñado para posiciones a más largo plazo
- Menor penalización por inactividad
- Mayor bonificación por tasa de éxito
-
Trading de Tendencia:
- Configurado para seguir tendencias del mercado
- Mayor ratio riesgo/recompensa (1:3)
- Recompensas normalizadas para estabilidad
Si tienes problemas para conectarte a NinjaTrader:
- Asegúrate de que NinjaTrader 8 esté en ejecución
- Verifica que el indicador RLExecutor esté añadido a tu gráfico
- Comprueba que la configuración de IP y puerto coincida
- Intenta reiniciar tanto NinjaTrader como el Sistema de Trading RL
Si encuentras errores relacionados con OpenMP, esto suele deberse a conflictos de bibliotecas. La solución ya está implementada en el código mediante la configuración KMP_DUPLICATE_LIB_OK=TRUE, pero si los problemas persisten:
- Abre el Símbolo del Sistema como Administrador
- Ejecuta:
set KMP_DUPLICATE_LIB_OK=TRUE - Inicia la aplicación desde el mismo Símbolo del Sistema
Si tu modelo no está aprendiendo de manera efectiva:
- Asegúrate de tener datos suficientes (se recomiendan al menos 100 días de trading)
- Prueba una configuración de preset diferente
- Ajusta la tasa de aprendizaje o el tamaño de lote
- Revisa los componentes de recompensa en los logs para identificar problemas
Para ayuda y orientación:
- Revisa la documentación en la carpeta
doc - Consulta los archivos de ayuda accesibles desde la barra de menú (Ayuda → Interfaz/Gráficos/Controles/Trading)
- Envía problemas a nuestro repositorio de GitHub
- Únete a nuestro foro comunitario para discusiones
RL-Trading-System/
├── src/ # Código fuente
├── doc/ # Documentación y archivos de ayuda
├── data/ # Datos de trading para entrenamiento/backtesting
├── models/ # Modelos RL guardados
├── logs/ # Logs de la aplicación
├── integrations/ # Archivos de integración con NinjaTrader
├── output/ # Resultados de entrenamiento y backtest
└── requirements.txt # Paquetes de Python requeridos
💡 Recuerda: El trading implica riesgo financiero. Siempre prueba tus modelos exhaustivamente en backtesting y trading en papel antes de usarlos con dinero real.
¡Feliz Trading! 📈