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.

📖 15 min read

📝 3,000 words

🏷️ MQL5 & Expert Advisors

Compartir este artículo:

Prueba el flujo de esta guía

Abre la demo primero — sin registro. Regístrate después para guardar y exportar en Code Generator.


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(). Incluye stops inválidos (10016) con arreglos para código generado por IA.

Guías relacionadas: ¿ChatGPT puede crear un EA en MT5? · Gestión de riesgo


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 — demasiado cerca del precio o lado incorrecto. Consulta SYMBOL_TRADE_STOPS_LEVEL con SymbolInfoInteger.

Guía completa: Error 10016 — Arreglo de stops inválidos. Frecuente con EAs de ChatGPT. Ver gestión de riesgo.


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

Error 10016 MT5, ChatGPT y EA, Construye tu primer EA, Gestión de riesgo, Desplegar EA.

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

Construye este EA en Strategy Builder

Empieza en la demo en vivo — sin registro. Recorre señales, filtros y riesgo. Crea cuenta gratis solo cuando quieras guardar y exportar MQL5.

Preguntas Frecuentes

El bróker rechazó la distancia de SL/TP. TRADE_RETCODE_INVALID_STOPS (10016) significa stops inválidos en la solicitud. Comprueba SYMBOL_TRADE_STOPS_LEVEL con SymbolInfoInteger. El código generado por ChatGPT suele omitir esta comprobación.

El backtest puede usar spread fijo y no aplicar todas las distancias mínimas del servidor. En vivo se exige SYMBOL_TRADE_STOPS_LEVEL. Añade comprobación y NormalizeDouble antes de OrderSend. Ver guía ChatGPT MQL5 y la sección Stops inválidos aquí.

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.

Probar Strategy Builder — sin registro

Probar Strategy Builder — sin registro