Has puesto el bot en el gráfico. Arriba a la derecha aparece un icono. Y no pasa nada. Ni una operación, ni un aviso, nada. Antes de dudar del bot: casi nunca está averiado.

Versión corta. MetaTrader 5 puede bloquear el trading automático en cuatro niveles distintos: la propia plataforma, el EA individual, el permiso de EA de tu cuenta en el servidor del bróker, y la cuenta en sí. Además, el símbolo puede estar restringido. Cuál de esos cinco te está frenando lo dice la pestaña Diario. Si aparece el código 10027, lo bloquea tu propia terminal y lo resuelves en diez segundos. Si aparece 10026, tu bróker ha desactivado el trading con EA en tu cuenta y no hay nada que puedas cambiar. Y si no aparece ningún error, tu bot nunca intentó enviar una orden y estás buscando en el sitio equivocado.

Esto último es donde más tiempo pierde la gente. Abajo lo recorremos en un orden fijo. Ve de arriba abajo y para en cuanto tengas tu respuesta.

¿Hay un mensaje de error o no hay nada?

Es la primera pregunta y parte el problema en dos. Abre el panel inferior de MT5 con Ctrl+T y mira las pestañas Expertos y Diario. Si hay una línea con un código o un motivo, tu bot sí envió una orden y se la rechazaron. Si no hay nada, solo algo como "automated trading enabled", tu bot nunca intentó operar.

Esa diferencia decide dónde buscas. Una orden rechazada es un problema de permisos o de configuración. Un registro vacío es otra cosa, y entonces cualquier lista de casillas es tiempo perdido.

El motivo está en cómo funciona un EA. El código de tu bot corre sobre la función OnTick, y según la documentación de MQL5 esa función solo se ejecuta al llegar un tick nuevo del símbolo del gráfico donde está el EA. Sin ticks no corre el código. Y sin código no hay orden, así que tampoco hay línea en el registro. No ha fallado nada, simplemente no ha pasado nada.

Con un registro vacío hay tres posibilidades. No llegan ticks, porque el mercado está cerrado o el símbolo no está en Market Watch. Las condiciones de entrada simplemente no se han cumplido, por ejemplo porque un filtro de spread o un filtro de horario lo bloquea todo. O el EA ya se detuvo al arrancar y por eso nunca opera.

Una pestaña Expertos vacía significa que tu bot nunca intentó enviar una orden. A partir de ahí, cada casilla del menú de permisos es un callejón sin salida.

¿Código 10027 o 10026? Eso decide quién puede arreglarlo

Si sí tienes un error, mira primero estos dos códigos. Dan exactamente el mismo síntoma y tienen soluciones opuestas.

10027 significa que lo bloquea tu propia MT5. En el registro suele aparecer literalmente [Auto Trading Disabled by Client]. Casi todo el mundo mira entonces el botón Algo Trading de la barra de herramientas, ve que está en verde, y se rinde. Ese botón solo cubre la mitad. La casilla de cada EA va aparte, y suele ser la puerta que está cerrada. Pulsa F7 sobre el gráfico, ve a la pestaña Común y marca "Allow Algo Trading". Esa casilla puede volver a desactivarse sola cuando vuelves a poner el EA en el gráfico o cuando MT5 restaura una plantilla guardada, mientras el botón de la barra sigue verde todo el tiempo.

10026 significa que lo bloquea tu bróker. El registro dice "Autotrading disabled by server". Aquí no ayuda ninguna configuración de tu ordenador, ni un VPS. Esto es un ticket de soporte con tu bróker o tu prop firm, y ahí acaba la solución.

Distinguir esos dos te ahorra un día de búsqueda. Leerlo cuesta cinco segundos.

Los cuatro niveles en los que MT5 bloquea el trading automático

MetaQuotes lo documenta en su propia web y es la forma más práctica de verlo. El trading automático tiene que estar permitido en cuatro niveles, y si uno está cerrado no pasa nada.

Nivel 1, la plataforma. El botón Algo Trading de la barra de herramientas, más Herramientas, Opciones, Asesores expertos, "Allow Algo Trading". Si esto está desactivado, no opera ningún EA, ni siquiera los que activaste uno a uno.

Nivel 2, el propio EA. La casilla que hay detrás de F7, por gráfico. Es el origen del 10027 y la que más se pasa por alto.

Nivel 3, el servidor de tu bróker. Tu grupo de cuenta no tiene permitido usar EAs. Este es el 10026.

Nivel 4, la cuenta. Esta es la causa que nadie ve. Según la documentación de MQL5, una cuenta no puede operar si no hay conexión con el servidor de trading, si la cuenta es de solo lectura, si el trading está desactivado del lado del servidor, o si has entrado en modo inversor. Esto último pasa más de lo que parece: tu bróker te da dos contraseñas, y con la de inversor lo ves todo y no ejecutas nada. MT5 rechaza entonces cada orden sin que tú hayas hecho nada mal. Código correspondiente: 10017, "Trade is disabled".

Y hay una quinta puerta que en la práctica funciona igual: el símbolo. Un símbolo puede estar en long only, short only o close only. Un bot que intente vender en un símbolo long only no lo conseguirá nunca, y desde fuera eso parece un bot roto.

¿Coincide el nombre del símbolo? XAUUSD frente a XAUUSD.a

Esta es una de las causas más frecuentes, y también una de las más fáciles de pasar por alto. Tu bot está escrito para XAUUSD. Tu bróker llama al oro XAUUSD.a, XAUUSD.pro, XAUUSD.raw, XAUUSDm o simplemente GOLD. Para el bot ese símbolo no existe, así que no hace nada.

IC Markets Australia, por ejemplo, llama al oro XAUUSD.a, donde el sufijo indica el tipo de cuenta. Allí se queda mudo cualquier EA y cualquier señal construida sobre XAUUSD. Con los índices es igual de caótico: US100, NAS100, USTEC y NAS100.cash son lo mismo con cuatro nombres.

Se arregla así. Abre Market Watch con Ctrl+M, copia el nombre exacto incluyendo mayúsculas y sufijo, y pon esa cadena tal cual en la configuración del bot. Y atención a la segunda mitad: el símbolo también tiene que estar realmente en Market Watch. Un bot que consulta un símbolo que no está en la lista no recibe datos.

La especificación del símbolo en 60 segundos

Si vas a abrir una sola ventana para este problema, abre esta. Ctrl+M, clic derecho en el símbolo, Especificación. Ahí hay cuatro números que juntos explican la mayoría de los rechazos.

Volumen mínimo y paso de volumen. Si tu bot está en 0,01 lotes y el mínimo es 0,1, cada orden se rechaza con un 10014. Si tu bot calcula un lote de 0,037 y el paso es 0,01, también 10014.

Stops level. Es la distancia mínima para tu stop loss y tu take profit, y se expresa en points, no en pips. En un símbolo de 5 decimales, 30 points son 3 pips. Si escribes 20 en el campo StopLoss pensando en 20 pips, estás pidiendo 2 pips y recibes un 10016 en cada intento.

Ese mismo error de un factor diez rompe también los filtros de spread. Un MaxSpread de 20 en ese símbolo significa que tu bot se niega a operar por encima de 2,0 pips de spread. En una cuenta real con spread real eso casi nunca ocurre, y no recibes ningún error. El bot se queda esperando algo que no va a llegar.

Trade mode. Aquí ves si el símbolo se puede operar del todo o si está en long only, short only o close only.

¿Qué significan los códigos de la pestaña Diario?

Estos son los códigos que te vas a encontrar de verdad, con el significado oficial de la documentación de MQL5 y qué hacer con cada uno.

Código Qué dice MT5 Qué haces
10014 Invalid volume in the request Lote demasiado pequeño, demasiado grande o no múltiplo del paso. Lee mínimo, máximo y paso en la especificación.
10016 Invalid stops in the request El SL o el TP está más cerca de lo que permite la distancia mínima. Ojo: el valor va en points, no en pips.
10017 Trade is disabled Comprueba que entraste con la contraseña maestra y no con la de inversor.
10018 Market is closed No es un fallo. La sesión de ese símbolo está cerrada.
10019 There is not enough money Falta margen libre. Mira el margen libre, no tu saldo.
10021 There are no quotes to process Sin cotizaciones. El símbolo no está en Market Watch o el feed está parado.
10026 Autotrading disabled by server Tu bróker desactivó el trading con EA. Solo ellos pueden reactivarlo.
10027 Autotrading disabled by client terminal F7 sobre el gráfico y marca "Allow Algo Trading". Y el botón de la barra.
10030 Invalid order filling type En el registro: "Unsupported filling mode". Tu bróker no permite ese filling type en este símbolo.

Una regla práctica más. Los códigos de MT5 tienen cinco cifras y empiezan por 100. Si estás buscando un código de tres cifras como 130 o 134, estás leyendo consejos de MT4. Otra plataforma, otros códigos, y no vas a llegar a ningún sitio.

Funcionaba bien durante meses y de golpe paró

Esto merece categoría propia, porque la causa casi nunca es un ajuste que tocaste tú. Hay tres sospechosos.

Filling mode. Código 10030, visible en el registro como "Unsupported filling mode". Los brókers deciden qué filling type permiten en cada símbolo, y pueden cambiarlo sin avisar. Un bot que llevaba meses funcionando se queda parado de un día para otro. Es también la razón número uno de que un EA pasado de MT4 a MT5 no funcione, porque en MT4 este concepto no existía.

La hora del servidor. Los brókers de MT5 suelen estar en GMT+2, y GMT+3 en verano. Un bot con un filtro que solo opera entre 08:00 y 17:00 lee ese reloj del servidor, no el reloj de tu país. Dos veces al año ese desfase se mueve con el horario de verano, y tu ventana de trading cambia sin que se haya tocado una línea de código.

Una fecha de caducidad dentro del bot. Las versiones demo y algunos EAs comprados llevan una licencia que expira o una fecha que el desarrollador dejó en el código de arranque. Síntoma típico: funcionó hasta el día uno del mes y después cero operaciones.

¿Mi bot está roto o el mercado está cerrado?

Los domingos por la noche hay mucha gente mirando un bot que no hace nada mientras el mercado de forex simplemente no ha abierto. La semana empieza sobre las 17:00 de Nueva York el domingo, y el oro abre una hora más tarde que el forex. Antes de eso no llegan ticks, así que tu código no corre y no pasa nada.

El mismo malentendido con los timeframes. Un bot que solo decide sobre una vela cerrada en H4 tiene seis momentos de decisión al día. No ver nada durante tres horas es el comportamiento correcto.

Aquí también cuenta si tu bot sigue funcionando cuando cierras el portátil. No lo hace, y por eso la mayoría lo ejecuta en un VPS. Por qué importa y cuánto cuesta lo explicamos aparte en por qué un VPS es importante para tu bot de trading.

¿Se están estorbando dos bots?

Si tienes más de un EA en la misma cuenta, puede estar pasando otra cosa. Dos bots con el mismo número mágico leen las posiciones del otro como suyas. Los dos concluyen entonces que ya hay una operación abierta y que no hay nada que hacer. Resultado: los dos parados, y ni un mensaje de error.

Y en una cuenta netting MT5 mantiene una sola posición por símbolo, así que el segundo bot no abre una segunda posición, modifica la del primero. Ahí se rompe más que el simple hecho de no operar. Lo desarrollamos en varios bots de trading en una cuenta.

Qué enviar a soporte

Si no consigues resolverlo, sé concreto. Con estas tres cosas alguien te puede ayudar en un mensaje en lugar de cinco idas y venidas.

Una captura de la pestaña Diario con la línea que contiene el código. Una captura de la ventana de Especificación del símbolo en el que debe operar el bot. Y la esquina superior derecha de tu gráfico, donde se ve si el EA tiene permiso para operar.

Sin esas tres cosas es adivinar. Con ellas suele quedar claro en un minuto.

Más contexto sobre la parte de plataforma está en nuestro artículo sobre MT5, cTrader y TradingView para bots. Y si quieres leer las reglas de riesgo de tu bot antes de encenderlo: gestión de riesgo en un bot de trading.

Si quieres consultar la fuente oficial: MetaQuotes publica la lista completa de códigos de retorno del servidor de trading y los cuatro niveles de permiso de trading. Son los documentos en los que se apoya todo este artículo.

¿Prefieres un bot que ya venga bien configurado?

Abres una cuenta a tu nombre, nosotros conectamos la estrategia y dejamos los ajustes correctos. Después cambias tu contraseña. Cobramos un 30% de tu beneficio y nada cuando pierdes.

Empieza con el bot