En esta página
Volver a tutoriales

Errores Comunes en EAs MQL5 (2026) | OrderSend, Stops Invalidos y Runtime

Resuelve fallos frecuentes en EAs MQL5: compilacion, invalid stops (130), permisos de trading y errores runtime con soluciones practicas para MT5.

📖 13 min read

📝 2,600 words

🏷️ MQL5 & Expert Advisors

Compartir este artículo:

¿Quieres crear una estrategia sin código ahora?

Crea tu cuenta gratis en segundos y empieza de inmediato.


Errores frecuentes en MQL5 y EA — del compilado a OrderSend

Cuando tu Asesor Experto no compila o OrderSend falla con códigos como 10016 (stops inválidos) o 10019 (dinero insuficiente), necesitas una guía clara de causas y soluciones. Los códigos de retorno del servidor MQL5 describen cada retcode en MqlTradeResult tras OrderSend(). Esta guía cubre errores de compilación, códigos de trading más frecuentes, stops inválidos (10016), dinero insuficiente (10019), trading desactivado (10017, 10027) y por qué conviene usar OrderCheck() antes de enviar — con referencias oficiales.


Errores de compilación

Antes de que el EA pueda ejecutarse, debe compilar en MetaEditor (F7). Problemas habituales: variable o función no definida (revisa ortografía y cabeceras); tipos incorrectos; punto y coma o llave faltante. Corrige todos los errores (0 errores en la pestaña Compilar). Construye tu primer EA y la referencia MQL5 ayudan con la estructura.


Códigos de retorno del servidor (OrderSend)

OrderSend() envía la solicitud al servidor; el resultado está en MqlTradeResult. El campo retcode es la respuesta del servidor. Códigos importantes: 10009 (DONE), 10008 (PLACED), 10016 (INVALID_STOPS), 10017 (TRADE_DISABLED), 10019 (NO_MONEY), 10027 (CLIENT_DISABLES_AT), 10031 (CONNECTION). Revisa siempre result.retcode después de OrderSend.


Stops inválidos (10016)

TRADE_RETCODE_INVALID_STOPS (10016): el bróker rechazó SL/TP (suelen estar demasiado cerca del precio). Consulta SYMBOL_TRADE_STOPS_LEVEL con SymbolInfoInteger. Solución: respeta la distancia mínima en puntos o pon SL/TP = 0 y gestiona salidas en código.


Dinero insuficiente (10019)

TRADE_RETCODE_NO_MONEY (10019): margen o balance insuficiente. Solución: reduce el lote o ingresa fondos. Usa gestión de riesgo.


Trading desactivado (10017, 10027)

10017: trading desactivado por el servidor. 10027: AutoTrading desactivado en el terminal (Ctrl+E, Opciones → Asesores Expertos). Activa AutoTrading; para 10017 contacta al bróker.


Usar OrderCheck() antes de OrderSend()

La documentación de OrderSend() recomienda comprobar la solicitud con OrderCheck() antes de enviar, para evitar fallos por 10016 o 10019.


Tabla de referencia rápida

Código / SíntomaCausaSolución
No compilaErrores de sintaxis/tipoCorrige en MetaEditor.
10016 Stops inválidosSL/TP muy cerca del precioRespeta SYMBOL_TRADE_STOPS_LEVEL o SL/TP = 0.
10019 Sin dineroMargen/balance insuficienteReduce lote; comprueba margen.
10017 / 10027Trading/AutoTrading desactivadoActiva AutoTrading (Ctrl+E).
10031Sin conexiónComprueba red; reintenta.

Próximos pasos

Construye tu primer EA, Gestión de riesgo EA, Desplegar y mantener tu EA.

Referencias: Códigos de retorno MQL5, OrderSend, OrderCheck, Errores de compilación.

Crea tu estrategia de trading sin código ahora — gratis

Crea tu cuenta y empieza ahora mismo a construir una estrategia sin código. Añade indicadores, filtros y reglas de riesgo, y exporta MQL5 en minutos.

Preguntas Frecuentes

El bróker rechazó la distancia de SL/TP. Según Códigos de retorno MQL5, TRADE_RETCODE_INVALID_STOPS (10016) significa "Invalid stops in the request". Comprueba SYMBOL_TRADE_STOPS_LEVEL con SymbolInfoInteger y coloca SL/TP al menos a esa cantidad de puntos del precio actual.

OrderSend() devuelve true cuando la solicitud es aceptada, no cuando se ejecuta el deal. Revisa siempre result.retcode (ej. 10009 = DONE). Para órdenes de mercado, la ejecución puede completarse después; usa OnTradeTransaction para seguir los fills.

Retcode 10017 = trading desactivado por el servidor; 10027 = AutoTrading desactivado por el cliente. Activa el botón AutoTrading (Ctrl+E) en MT5 y en Herramientas → Opciones → Asesores Expertos permite trading automático. Para 10017, el bróker puede haber restringido el símbolo o la cuenta.

Crea tu estrategia sin código ahora — gratis

Crear cuenta gratis