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íntoma | Causa | Solución |
|---|---|---|
| No compila | Errores de sintaxis/tipo | Corrige en MetaEditor. |
| 10016 Stops inválidos | SL/TP muy cerca del precio | Respeta SYMBOL_TRADE_STOPS_LEVEL o SL/TP = 0. |
| 10019 Sin dinero | Margen/balance insuficiente | Reduce lote; comprueba margen. |
| 10017 / 10027 | Trading/AutoTrading desactivado | Activa AutoTrading (Ctrl+E). |
| 10031 | Sin conexión | Comprueba 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.