Problema de conexión de SocketConnect (Error 4014) desde EA de MQL5 a servidor Python local (127.0.0.1)
932253:
Por todo lo que describes parece que te falta habilitar en las opciones del terminal la conexión a 127.0.0.1 desde la pestaña "Asesores Expertos", que suele ser la causa más común de ese error.

Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Estimado equipo de soporte de MetaQuotes/OnEquity,
Estoy experimentando un problema persistente y muy inusual al intentar establecer una conexión de socket desde mi Expert Advisor (EA) de MetaTrader 5 (MQL5) a un servidor Python local. A pesar de haber realizado una extensa depuración y verificación de todas las configuraciones estándar, la conexión sigue siendo rechazada con el Error 4014 ( WSAECONNREFUSED ).
Detalles de mi entorno:
Sistema Operativo: Windows 10 Pro (Versión 10.0.19045.5965)
Versión de MetaTrader 5: (5.00 build 5125 18 Jun 2025)
Ubicación de instalación de MT5: C:\Program Files\OnEquity MetaTrader 5 Terminal
Servidor Python: Script prediction_server.py ejecutándose localmente.
Descripción del problema:
Mi EA ( BotAnaliticoIA.mq5 ) intenta conectar a un servidor Python en 127.0.0.1 (localhost) utilizando la función SocketConnect . El servidor Python se inicia correctamente y se confirma que está escuchando en el puerto especificado. Sin embargo, el EA consistentemente recibe el Error 4014 (Conexión Rechazada), indicando que la conexión es rechazada por el sistema.
Pasos de depuración y verificaciones ya realizadas (y confirmadas):
Ejecución como Administrador: Tanto MetaTrader 5 como el CMD donde se ejecuta el servidor Python se inician como Administrador.
Servidor Python en Escucha (LISTENING):
El servidor Python imprime "Servidor Python iniciado en 127.0.0.1:5000 (o 5001). Esperando conexiones de MetaTrader 5..." en el CMD.
Se verificó con netstat -ano | findstr :<PUERTO> que el puerto ( 5000 o 5001 ) está en estado LISTENING y asociado al PID de Python.
Configuración del Firewall de Windows Defender:
Se creó una Regla de Salida explícita en el Firewall de Windows para terminal64.exe (el ejecutable de MT5) permitiendo conexiones TCP al Puerto Remoto 5000 (y luego 5001 ) y Todos los puertos locales .
Incluso se procedió a configurar el "Estado del firewall" para el perfil activo (probablemente "Dominio") a Inactivo para las "Conexiones salientes" como prueba agresiva.
No hay Firewall/Antivirus de Terceros: He confirmado que Windows Defender es el único software de seguridad/antivirus instalado en mi sistema. No hay otros programas como Kaspersky, Norton, Avast, etc., que puedan interferir.
Reinicio de Router/Módem: Se ha reiniciado el dispositivo de red para descartar problemas a ese nivel.
Cambio de Puerto: Se intentó la conexión inicialmente en el puerto 5000 y luego se cambió el puerto a 5001 tanto en el EA ( #define PYTHON_SERVER_PORT 5001 ) como en el script Python ( PORT = 5001 ), recompilando el EA después del cambio. El problema persiste con ambos puertos.
Logs de MT5 (ejemplo de error persistente):
2025.06.23 22:30:09.203 BotAnaliticoIA (EURUSD#,M30) BotAnaliticoIA: Inicializando... 2025.06.23 22:30:09.203 BotAnaliticoIA (EURUSD#,M30) BotAnaliticoIA: Intentando conectar a servidor Python en 127.0.0.1:5000 2025.06.23 22:30:09.203 BotAnaliticoIA (EURUSD#,M30) Error: Fallo al conectar al servidor 127.0.0.1:5000. Error: 4014 ... (error similar con puerto 5001)
Dada la exhaustiva depuración ya realizada, sospecho que el problema podría estar relacionado con una anomalía en la instalación de MetaTrader 5 o una interacción de bajo nivel con el sistema operativo que impide la función SocketConnect incluso con permisos elevados y el firewall desactivado.
Agradezco cualquier orientación o herramienta de diagnóstico que puedan ofrecer para resolver este problema.
Saludos cordiales,
Manuel Figuera