Inicio > Blog > Códigos de error de MT5: 10016, 10018, 10019, 10027, 10030 y su solución

MT5MQL5

Códigos de error de MT5: 10016, 10018, 10019, 10027, 10030 y su solución

Publicado: 2026-05-18Lectura: aprox. 6 min
⏱ Este artículo refleja la información a la fecha de su publicación. Las cifras de rendimiento de los EAs (PF, DD, rentabilidad anual) cambian con la operativa real y la revalidación: consulta lo más reciente en las páginas de los EAs. Ver los últimos resultados de los EAs →
Contenido (7)
  1. Consulta rápida: código → significado → solución
  2. Cómo revisar la pestaña Expertos
  3. Códigos de error frecuentes y cómo solucionarlos
  4. Clasificación de errores por prioridad
  5. Cómo leer la pestaña Expertos de forma eficiente
  6. Resumen
  7. Preguntas frecuentes

Códigos de error de MT5 / MQL5: retcodes 10004–10031 y errores de ejecución

MT5 informa de dos tipos de errores: los retcodes de trading de 5 dígitos (p. ej., 10027 AutoTrading desactivado, 10030 modo de llenado no soportado, 10016 stops inválidos, 10019 fondos insuficientes) y los errores de ejecución de 4 dígitos de GetLastError() (p. ej., 4401, 4756); la tabla siguiente relaciona cada uno con su solución.

Consulta rápida: código → significado → solución

Los números y los nombres de las constantes siguen la referencia oficial de MQL5 (códigos de retorno del servidor de trading y errores de ejecución).

Retcodes de trading (MqlTradeResult.retcode)

CódigoConstanteSignificadoSoluciónDetalles
10004TRADE_RETCODE_REQUOTERequote: el precio se movió antes de la ejecuciónAmplía la desviación permitida o reenvía la orden al precio actualizadoOff quotes y requotes
10006TRADE_RETCODE_REJECTSolicitud rechazadaSuele deberse a un spread amplio o a un mercado rápido; deja que el EA reintente en un tick posterior—
10013TRADE_RETCODE_INVALIDSolicitud inválidaUn campo de la solicitud (acción, tipo de orden, símbolo) es incorrecto; valídala con OrderCheck() antes de enviarla—
10014TRADE_RETCODE_INVALID_VOLUMEVolumen inválido en la solicitudRedondea el lote al mínimo, al máximo y al paso del símbolo (SYMBOL_VOLUME_MIN / MAX / STEP)—
10015TRADE_RETCODE_INVALID_PRICEPrecio inválido en la solicitudNormaliza el precio a los dígitos y al tamaño de tick del símbolo; asegúrate de que la orden pendiente quede en el lado correcto del mercado—
10016TRADE_RETCODE_INVALID_STOPSStops inválidos en la solicitudMantén el SL/TP más lejos que el stops level del bróker y en el lado correcto del precioInvalid stops
10017TRADE_RETCODE_TRADE_DISABLEDEl trading está deshabilitadoRevisa el modo de trading del símbolo en Especificación y que hayas iniciado sesión con la contraseña de trading (no la de inversor); si no, consulta al bróker—
10018TRADE_RETCODE_MARKET_CLOSEDEl mercado está cerradoEspera a que abra la sesión de trading del símboloMercado cerrado
10019TRADE_RETCODE_NO_MONEYFondos insuficientes para completar la solicitudReduce el tamaño del lote, cierra posiciones o deposita fondosFondos insuficientes
10021TRADE_RETCODE_PRICE_OFFNo hay cotizaciones para procesar la solicitudComprueba la conexión y si el símbolo está cotizando en ese momento, y vuelve a intentarloOff quotes y requotes
10026TRADE_RETCODE_SERVER_DISABLES_ATAutotrading deshabilitado por el servidorEl bróker bloquea el trading algorítmico en esta cuenta; contacta con el brókerAutoTrading desactivado
10027TRADE_RETCODE_CLIENT_DISABLES_ATAutotrading deshabilitado por el terminal clienteActiva el botón Algo Trading y permite el trading algorítmico en Opciones y en las propiedades del EAAutoTrading desactivado
10030TRADE_RETCODE_INVALID_FILLTipo de llenado de la orden inválidoEstablece type_filling en un modo que el símbolo admita (FOK / IOC / Return)Modo de llenado no soportado
10031TRADE_RETCODE_CONNECTIONSin conexión con el servidor de tradingRevisa la barra de estado de la conexión, la red del VPS y el estado del servidor del bróker—

Errores de ejecución (GetLastError())

CódigoConstanteSignificadoSoluciónDetalles
4001ERR_INTERNAL_ERRORError interno inesperadoNo corresponde a una causa concreta: llama a ResetLastError() antes de la función que estás comprobando y, si persiste, reinicia o actualiza el terminal—
4401ERR_HISTORY_NOT_FOUNDNo se encontró el historial solicitadoLlama a HistorySelect() para un periodo que contenga la operación o la orden antes de leerla—
4752ERR_TRADE_DISABLEDTrading mediante Expert Advisors prohibidoActiva Algo Trading y marca «Permitir el trading algorítmico» en las propiedades del EAAutoTrading desactivado
4756ERR_TRADE_SEND_FAILEDFalló el envío de la solicitud de tradingOrderSend() devolvió false; lee MqlTradeResult.retcode para conocer el motivo real (a menudo 10027, 10030 o 10016)—

¿Vienes de MT4? MT4 usa números distintos, en su mayoría de 3 dígitos, para las mismas situaciones (134, 130, 132, 136, 4109 …). Cada sección de abajo indica el equivalente en MT4, tomado de la referencia oficial de MQL4. Ten en cuenta que en MT5 el número 4109 significa ERR_CHART_WRONG_PROPERTY (un error de gráfico), no un error de trading.

Nuestros 3 EA principales (todas las cifras del backtest a largo plazo y del forward público)

📧 Curso gratuito por email (8 correos) + paquete de 13 indicadores MT5 solo para suscriptores

* Privacidad estrictamente protegida. Puedes darte de baja en cualquier momento.

Cómo revisar la pestaña Expertos

Haz clic en la pestaña Expertos en la parte inferior de MT5 para ver un registro cronológico de toda la actividad de los EAs.

Formato del log:
2026.05.18 10:00:01.234  GOLD VIPER XAUUSD,M30: [ERROR] 10016

Fecha/Hora   Nombre del EA    Símbolo   Temporalidad  Mensaje

Cuando aparezca un error, usa el número de código para localizar la causa en la tabla de arriba.


Códigos de error frecuentes y cómo solucionarlos

10019 — Fondos insuficientes (TRADE_RETCODE_NO_MONEY)

Equivalente en MT4: 134 ERR_NOT_ENOUGH_MONEY. ERR_NO_MONEY es una abreviatura muy extendida para la misma situación.

Ejemplos de mensaje: "Order failed: not enough money"
                     "No money"

Causa: Margen insuficiente: el EA no puede abrir una nueva posición.

Solución:

  1. Revisa el nivel de margen actual en la pestaña Trade de MT5
  2. Si el margen está cerca del 100% o por debajo, considera depositar fondos adicionales
  3. Reduce el ajuste RiskPercent del EA para disminuir el tamaño de la posición
  4. Cierra manualmente algunas posiciones abiertas para liberar margen

📖 Para saber por qué aparece aunque el saldo parezca suficiente, y el código MQL5 que lo evita, consulta Not enough money en MT5: causas y soluciones.


10027 — AutoTrading deshabilitado por el cliente (TRADE_RETCODE_CLIENT_DISABLES_AT)

Error de ejecución de MT5 relacionado: 4752 ERR_TRADE_DISABLED. Equivalente en MT4: 4109 ERR_TRADE_NOT_ALLOWED.

Ejemplos de mensaje: "AutoTrading disabled by client"
                     "Trade is not allowed"

Causa: El trading automático está desactivado en MT5.

Solución:

  1. Haz clic en el botón Algo Trading de la barra de herramientas de MT5 para activarlo (debe ponerse verde)
  2. Ve a Herramientas → Opciones → Expert Advisors → activa Permitir el trading algorítmico y reinicia MT5

Este error ocurre a menudo cuando MT5 se inicia automáticamente tras un reinicio del VPS.

📖 Para ver la cadena completa de permisos (ajustes de Opciones, Permitir el trading algorítmico por gráfico, contraseña de inversor y la diferencia entre 10027 y 10026), consulta AutoTrading desactivado en MT5: la solución completa.


10018 — Mercado cerrado (TRADE_RETCODE_MARKET_CLOSED)

Equivalente en MT4: 132 ERR_MARKET_CLOSED.

Ejemplo de mensaje: "Market closed"

Causa: El EA intentó abrir una operación fuera del horario de mercado (fin de semana o festivo).

Solución: No hay que hacer nada. El mercado está cerrado durante el fin de semana, y cualquier intento de entrada en ese intervalo produce este error; el EA se reanuda automáticamente cuando el mercado vuelve a abrir.

📖 ¿Lo ves entre semana? Las sesiones de trading del símbolo, la hora del servidor y el modo de solo cierre se explican en Market closed (10018/132): causas y soluciones.


10016 — Stops inválidos (TRADE_RETCODE_INVALID_STOPS)

Equivalente en MT4: 130 ERR_INVALID_STOPS.

Ejemplo de mensaje: "Invalid stops"

Causa: El valor del SL (stop loss) o del TP (take profit) infringe el requisito de stop level mínimo del bróker.

Solución:

  1. Consulta el stop level del bróker (distancia mínima del SL): clic derecho sobre el símbolo en MT5 → Especificación → busca el campo Stops level
  2. Asegúrate de que la distancia del SL del EA sea mayor que el stop level
  3. Este error es más habitual en periodos de baja volatilidad, cuando los valores del ATR son muy pequeños

📖 Para entender cómo funcionan realmente los stop levels, la diferencia entre 10016 y 130 y el código MQL5 que lo evita de forma definitiva, consulta Invalid stops (10016/130): la solución completa.


10021 — Sin cotizaciones (TRADE_RETCODE_PRICE_OFF)

Equivalente en MT4: 136 ERR_OFF_QUOTES.

Ejemplo de mensaje: "Off quotes"

Causa: No se recibe ninguna cotización del servidor del bróker: un problema de conectividad.

Solución:

  1. Comprueba el estado de la conexión en la barra de estado de MT5, en la parte inferior de la pantalla
  2. Si estás desconectado, reinicia MT5
  3. Revisa la página de estado de los servidores de tu bróker por si hay incidencias
  4. Verifica la conexión de red de tu VPS

📖 Para ver la diferencia con los requotes (10004/138), el ajuste de la desviación y una implementación de reintentos, consulta Off quotes y requotes (10021/10004): la solución completa.

📖 ¿Te aparece Unsupported filling mode (10030) justo después de cambiar de bróker? Es un problema distinto: consulta Unsupported filling mode (10030): cómo solucionarlo.


10012 — Tiempo de espera de la solicitud agotado (TRADE_RETCODE_TIMEOUT)

Equivalente en MT4: 128 ERR_TRADE_TIMEOUT.

Ejemplo de mensaje: "Request canceled by timeout"

Causa: La orden superó el tiempo de espera por congestión del servidor o latencia de red.

Solución:

  1. Es más habitual justo después de noticias importantes, cuando la carga del servidor es alta
  2. Normalmente el EA reintentará en el siguiente tick; no hace falta hacer nada
  3. Si ocurre con frecuencia, revisa el entorno de red de tu VPS o considera otro bróker

10006 — Solicitud rechazada (TRADE_RETCODE_REJECT)

Ejemplo de mensaje: "Request rejected"

Causa: El bróker rechazó la orden, normalmente porque el spread supera los límites o el precio se mueve demasiado rápido.

Solución:

  1. Revisa el ajuste MaxSpreadPoints; este error es habitual cuando los spreads se amplían de forma notable
  2. Durante las noticias e inmediatamente después es un comportamiento esperado; puedes ignorarlo
  3. Si ocurre con frecuencia, aumenta ligeramente el valor de MaxSpreadPoints

"Margin level too low"

Ejemplo de mensaje: "Margin level too low. Skip signal."

Causa: El ajuste UseMarginCheck = true del EA detectó que el nivel de margen cayó por debajo de MinMarginLevel (p. ej., 200%), por lo que las nuevas entradas se bloquean automáticamente.

Solución:

  1. Es un comportamiento de protección normal; no es un error
  2. Las entradas se reanudarán automáticamente cuando el nivel de margen se recupere
  3. Solución de fondo: deposita más fondos o reduce RiskPercent

"No signal on this bar" o "Wait for next bar"

No son errores: son entradas del log de depuración.

"No signal. ATR=1245, EMA(50)=1998.23"

El EA evalúa el gráfico en cada vela y registra cuándo no se cumplen las condiciones de entrada. Es el funcionamiento normal.


Clasificación de errores por prioridad

PrioridadErrorAcción
Crítico10019 Fondos insuficientes (MT4: 134)Deposita fondos o reduce el tamaño del lote de inmediato
Crítico10027 AutoTrading desactivado / 4752 (MT4: 4109)Activa Algo Trading
Advertencia10016 Stops inválidos (MT4: 130)Revisa la configuración del SL
Advertencia10030 Tipo de llenado inválidoEstablece un modo de llenado que el símbolo admita
Advertencia10021 Sin cotizaciones (MT4: 136) recurrenteVerifica la conexión
Normal10018 Mercado cerrado (MT4: 132) solo en fin de semanaNo es necesario actuar
Normal10012 Tiempo de espera (MT4: 128) esporádicoNo es necesario actuar
NormalMargin level too lowProtección normal con margen bajo

Cómo leer la pestaña Expertos de forma eficiente

Filtrar los logs

Haz clic derecho dentro de la pestaña Expertos y selecciona Filtro para mostrar únicamente los logs de un EA o de un tipo de error concreto.

Ubicación de los archivos de log

Los archivos de log de MT5 se guardan aquí:

C:\Users\[NombreDeUsuario]\AppData\Roaming\MetaQuotes\Terminal\[ID]\MQL5\Logs\

Los archivos se crean automáticamente por fecha. Abre esta carpeta cuando investigues errores.


Resumen

La mayoría de los errores de un EA se pueden clasificar en cuatro categorías:

  1. Margen insuficiente (10019) — Deposita más fondos o reduce el tamaño del lote
  2. AutoTrading desactivado (10027 / 4752) — Haz clic en el botón Algo Trading para activarlo
  3. Problemas de conexión (10021 / 10031) — Reinicia MT5 o revisa la red del VPS
  4. Comportamiento normal — No requiere acción (cierre de mercado en fin de semana, evitar spreads amplios, etc.)

Adquiere el hábito de revisar la pestaña Expertos a diario para detectar rápidamente los errores críticos (10019 y 10027) antes de que causen problemas.


Preguntas frecuentes

P: ¿Dónde puedo consultar los códigos de error?

La referencia oficial de MQL5 recoge todos los códigos: códigos de retorno del servidor de trading para el rango 10004–10046 y errores de ejecución para el rango 4xxx. También puedes buscarlos en la ayuda integrada de MT5 (pulsa F1).

P: ¿Cuál es la diferencia entre un retcode y GetLastError()?

Un retcode (10004–10046) es la respuesta del servidor de trading a una orden y se guarda en MqlTradeResult.retcode. GetLastError() devuelve un error de ejecución del propio programa MQL5 (4xxx y 5xxx). Cuando OrderSend() falla, a menudo obtienes ambos: 4756 de GetLastError() más un retcode que te indica el motivo real.

P: ¿Debo detener el EA si aparecen errores con frecuencia?

Si 10018 (mercado cerrado) o 10012 (tiempo de espera) aparecen de forma ocasional, no es necesario detener el EA. Sin embargo, si 10019 (fondos insuficientes) se repite, pausa el EA, revisa tu situación de margen y vuelve a iniciarlo una vez resuelta.

P: Me aparece el error «Invalid account».

Es posible que tus datos de acceso a MT5 (nombre del servidor, ID de login o contraseña) sean incorrectos. Ve a Archivo → Abrir una cuenta para volver a iniciar sesión.

P: No aparece ningún error, pero el EA no abre operaciones.

Si no hay errores ni entradas, el EA simplemente está esperando a que se cumplan sus condiciones de entrada; es completamente normal. Los EAs no entran en cada vela; solo entran cuando todas las condiciones coinciden. Dale algo de tiempo. Un EA en H1 que entra de una a tres veces al día funciona con normalidad.

📧 Curso gratuito por email (8 correos) + paquete de 13 indicadores MT5 solo para suscriptores

* Privacidad estrictamente protegida. Puedes darte de baja en cualquier momento.

¿Tienes alguna pregunta sobre EAs o Forex?

Puedes publicarla en el foro de trading de Nattzy (registro gratuito). También son bienvenidas preguntas que vayan más allá de este artículo: configuración de EAs, elección de bróker y más.

Preguntar en Nattzy ↗

Comentarios y preguntas