Question: ¿Qué significa el mensaje de error «Mercado cerrado» en las plataformas MT4/MT5?
Table of Contents
- «Mercado cerrado» en MT4/MT5: qué significa, cuándo aparece y cómo eliminarlo de su flujo de trabajo
- Qué provoca el mensaje «Mercado cerrado» cada vez
- Cómo se ve «Mercado cerrado» en la plataforma
- En qué se diferencia de otros mensajes de la plataforma
- Las consecuencias operativas que debe esperar
- Soluciones definitivas para los operadores discrecionales
- Manual determinista para desarrolladores de EA (MT4 y MT5)
- Estudios de casos comunes y la ruta resuelta
- Consejos de precisión que eliminan el mensaje del trading diario
- MT4 vs MT5: pequeñas diferencias, mismo resultado
- Por qué nunca debes «reintentar hasta que se complete»
- Una lista de verificación concisa que siempre funciona
«Mercado cerrado» en MT4/MT5: qué significa, cuándo aparece y cómo eliminarlo de tu flujo de trabajo
«Mercado cerrado» significa que el servidor de operaciones ha desactivado la ejecución para ese símbolo en este momento. La plataforma rechaza las órdenes de mercado y también puede rechazar la ejecución de órdenes stop/limit y ciertas modificaciones hasta que se reabra la sesión de operaciones. Los precios pueden seguir mostrándose (desde el último tick) o aparecer congelados; en cualquier caso, no se producen ejecuciones mientras el estado está activo.
Este mensaje es determinista. El servidor impone sesiones de negociación y ventanas de mantenimiento. Cuando envía una solicitud durante un periodo no negociable, el servidor devuelve Mercado cerrado. En MT4, los asesores expertos ven el error 132 (ERR_MARKET_CLOSED). En MT5, el resultado de la operación devuelve TRADE_RETCODE_MARKET_CLOSED
. El significado es el mismo: no se permite la ejecución en este momento.
¿Qué provoca el «cierre del mercado» cada vez?
Las terminales MetaTrader se conectan al servidor de operaciones de un bróker. Ese servidor publica calendarios de sesiones por símbolo y también puede imponer pausas temporales. Siempre que su solicitud se produzca fuera de una ventana permitida, recibirá el mensaje. Los desencadenantes son los mismos en todos los mercados:
- Parada de fin de semana (FX y muchos CFD). Desde el cierre de la sesión del viernes hasta la apertura del domingo, la ejecución de órdenes está desactivada.
- Pausas diarias y mantenimiento. Los CFD basados en futuros de metales, energías e índices suelen tener brechas intradía en la negociación. Durante esos minutos, la ejecución está desactivada, incluso si su gráfico sigue mostrando un último precio.
- Cierres por vacaciones. Si la bolsa subyacente o el mercado de liquidez están cerrados, el servidor desactiva ese símbolo hasta que vuelva a abrir.
- Ventanas de renovación. Algunos servidores pausan la ejecución en torno a la aplicación o liquidación de swaps para evitar libros delgados o indefinidos.
- Pausas a nivel de símbolo. Un bróker puede colocar un símbolo en estado Solo cierre o Sin negociación durante condiciones extraordinarias o eventos corporativos. En cualquiera de los dos casos, la ejecución se bloquea y se devuelve Mercado cerrado (o un equivalente cercano).
- Desencadenantes pendientes fuera de sesión. Una orden pendiente se puede almacenar en el servidor, pero su desencadenante no se activará hasta que se abra la sesión y un tick válido alcance el nivel.
Ninguno de estos son errores del terminal. Son reglas que el servidor aplica para mantener la negociación alineada con el calendario del mercado.
Cómo se ve «Mercado cerrado» en la plataforma
- Ticket de operación manual: envía una orden de compra/venta; el ticket se niega a enviarse y aparece una ventana emergente o una línea de estado que indica Mercado cerrado.
- Diálogo Modificar/Cerrar: el cambio de SL/TP en posiciones abiertas puede ser rechazado cerca o durante una pausa; las modificaciones de órdenes pendientes también pueden verse restringidas durante una parada completa.
- Pestaña Diario/Expertos: MT4 registra el error 132; MT5 muestra el código de retorno que indica mercado cerrado.
- Gráficos y observación del mercado: las cotizaciones pueden parecer estáticas. Incluso si una cotización parpadea desde un flujo no ejecutado, el motor de negociación sigue bloqueando las ejecuciones hasta que la sesión vuelve a estar abierta.
En qué se diferencia de los mensajes de otras plataformas
- Cotizaciones fuera de servicio: el servidor no tenía ningún precio ejecutable aceptable en ese momento, no se trataba de un bloqueo del calendario.
- Recotización: el servidor ofreció un nuevo precio; se permite la ejecución, pero el precio ha cambiado.
- Sin conexión: su terminal no está conectada al servidor de operaciones;
no se puede intentar la ejecución. - Contexto de negociación ocupado: el cliente ya está gestionando otra solicitud de negociación; no es un problema de sesión.
- Operación desactivada: la cuenta o el símbolo están desactivados administrativamente; se trata de un estado de permiso, no de un estado del calendario.
Saber en qué clase se encuentra le ahorrará tiempo. Mercado cerrado es exclusivamente una condición de tiempo/sesión.
Las consecuencias operativas que debe esperar
- Órdenes de mercado: rechazadas hasta que se abra la sesión.
- Órdenes pendientes: almacenadas en el servidor; la activación espera a la siguiente sesión y a un tick válido. Si el primer precio negociable tras la apertura supera su nivel, la orden se ejecuta al siguiente precio disponible, no al nivel obsoleto.
- Stop Loss / Take Profit: para sesiones cerradas, las activaciones en posiciones abiertas esperan a que se reanude la sesión. Se aplica el riesgo de brecha; las ejecuciones se producen al siguiente precio disponible.
- Modificaciones: el servidor puede bloquear SL/TP o ediciones pendientes durante la interrupción; una vez que la sesión está activa, las modificaciones se procesan sujetas a las reglas normales de distancia y congelación.
Diseñe su proceso teniendo en cuenta estas realidades; así, el mensaje dejará de ser una sorpresa.
Soluciones definitivas para operadores discrecionales
Opere solo durante las sesiones activas del instrumento.
Envíe órdenes de mercado y espere que se activen los SL/TP solo mientras la sesión del símbolo esté abierta. Evite colocar órdenes urgentes en los últimos minutos antes de una pausa programada; la liquidez disminuye y el motor puede cambiar a estado cerrado en medio de la solicitud.
Programe las salidas y entradas lejos de las ventanas de renovación.
Si su enfoque requiere la ejecución alrededor de la hora del swap, ajuste el tiempo para que la solicitud se realice fuera de la ventana de mantenimiento. De este modo, eliminará la posibilidad de un bloqueo duro.
Planifique la apertura y las brechas del domingo/lunes.
Si mantiene posiciones durante el fin de semana, acepte que las paradas y los objetivos se procesen al precio de reapertura si el mercado presenta brechas. Si es esencial evitar el riesgo de brechas durante el fin de semana, aplane antes del cierre del viernes en lugar de confiar en las paradas durante la interrupción.
Utilice las órdenes pendientes de forma estratégica, pero comprenda los desencadenantes.
Colocar una orden pendiente antes de la apertura es válido como herramienta de planificación; la ejecución real se producirá al primer precio ejecutable igual o superior a su nivel cuando comience la sesión. Estructure el tamaño de la posición teniendo en cuenta el riesgo de brecha.
Guía determinista para desarrolladores de EA (MT4 y MT5)
Cree una lógica sensible a la sesión para que su algoritmo nunca se encuentre con un libro cerrado y nunca malinterprete un rechazo.
- 1) Controle el flujo de órdenes según el estado de la sesión.
– MT5: consulte la negociabilidad de la sesión conSymbolInfoSessionTrade()
oSymbolInfoInteger(symbol, SYMBOL_SESSION_DEALS)
/SYMBOL_TRADE_MODE
. Si la sesión está cerrada para el intervalo de tiempo actual, no envíe órdenes; póngalas en cola hasta que comience el primer intervalo abierto.
– MT4: no hay una función de sesión directa, pero puede leer la hora del servidor (TimeCurrent()
), el modo de negociación del símbolo (MarketInfo(symbol, MODE_TRADEALLOWED)
) y mantener una tabla de programación por símbolo que coincida con los descansos diarios del mercado.
Utilice esas comprobaciones para bloquear las llamadas durante las interrupciones conocidas.
2) Gestione el error 132 /TRADE_RETCODE_MARKET_CLOSED
de forma explícita. - 3) Controle el comportamiento durante el fin de semana.
Cree un programador para los viernes que salga o desactive las nuevas entradas antes del último minuto negociable si su método no está diseñado para las brechas del fin de semana. El domingo/lunes, al reabrir, vuelva a calificar las señales a partir de los nuevos ticks en lugar de actuar según el estado del viernes. - 4) Sincronice las órdenes en torno al roll-over.
Envuelva una ventana corta de bloqueo en torno al tiempo de intercambio para los símbolos que se detienen. Ponga en cola las modificaciones y los envíos; libérelos después de que se abran los informes de la sesión. - 5) Prepárese para el riesgo de brechas.
Las órdenes de stop y las órdenes pendientes pueden saltar niveles en la apertura. Configure el riesgo máximo por operación suponiendo que se completan al siguiente precio disponible después de una brecha. Eso mantiene los resultados alineados con el comportamiento del motor en lugar de un flujo de precios continuo idealizado. - 6) Registre los estados con claridad.
Escriba «bloqueado: mercado cerrado» con marcas de tiempo cuando suprima una acción. Distíngalo de «cotizaciones desactivadas» y «contexto de operación ocupado». Los registros limpios aceleran el análisis posterior.
Estudios de casos comunes y la ruta resuelta
- El viernes, un minuto antes del cierre, el scalper de CFD sobre índices envía una orden de mercado.
El motor pasa al estado cerrado; el ticket devuelve Mercado cerrado.
Solución: Adelantar el límite de entrada final de la estrategia y desactivar automáticamente las entradas dentro de un búfer previo al cierre. - Oro durante su pausa diaria de mantenimiento.
El EA intenta mover el SL al punto de equilibrio; el servidor rechaza la modificación porque la ejecución está desactivada.
Ruta resuelta: El EA aplaza todas las ediciones de SL/TP en una breve ventana que abarca la pausa; el primer tick después de la reapertura procesa el cambio en cola sujeto a los límites de distancia normales. - Brecha de apertura del domingo a través de una orden de compra stop.
Existe una orden pendiente; el primer tick negociable está por encima del nivel de entrada.
Ruta resuelta: La orden se ejecuta al próximo precio disponible; la gestión del dinero asume este deslizamiento como parte del diseño. El EA o el plan no lo tratan como una excepción. - Cierre por vacaciones de un CFD sobre una sola acción, mientras que el mercado de divisas permanece abierto.
Un EA multiactivo intenta enviar órdenes para todos los símbolos. Las partes de las acciones se rechazan con Mercado cerrado, las partes de divisas continúan.
Ruta resuelta: La estrategia consulta el estado de la sesión por símbolo y solo actúa sobre los símbolos que están abiertos para su ejecución.
Consejos de precisión que eliminan el mensaje del trading diario
- Ancle las entradas y modificaciones al calendario de sesiones. Las solicitudes solo se activan durante los segmentos abiertos.
- Evite los minutos límite. El último minuto antes de una pausa programada y el primer minuto después de una reapertura pueden ser escasos y volátiles; mantenga la automatización conservadora en esos momentos.
- Separe la generación de señales de la ejecución. Las señales se pueden calcular de forma continua; la ejecución solo se libera cuando el motor confirma una sesión abierta.
- Trate las brechas como algo normal, no como algo excepcional. Diseñe SL/TP y el tamaño de la posición teniendo en cuenta el riesgo de brecha.
- Si debe mantener la posición durante los cierres, acepte las reglas del servidor. Las paradas y los objetivos no se evalúan durante una interrupción; actúan al siguiente precio ejecutable.
MT4 frente a MT5: pequeñas diferencias, mismo resultado
- Códigos de retorno: los EA de MT4 ven el error 132, MT5 devuelve
TRADE_RETCODE_MARKET_CLOSED
. Su controlador se ramifica según la plataforma, pero realiza la misma acción: aplazar. - Acceso a la sesión: MT5 expone metadatos de sesión más completos; MT4 requiere tablas de programación y indicadores básicos. En cualquier caso, el enfoque correcto es bloquear los envíos mientras está cerrado y reanudarlos al abrirse.
- Gestión de órdenes pendientes: ambos almacenan las órdenes en el servidor y ambos las activan solo cuando llega un tick válido durante una sesión abierta. En ambos casos es posible rellenar las brechas.
Por qué nunca debe «reintentar hasta que se complete»
La puerta de sesión es binaria: cerrada o abierta. Por mucho que se vuelva a enviar, no cambiará. Los bucles agresivos hacen perder tiempo y pueden producir respuestas de límite de velocidad u otros errores que ocultan la verdadera causa. La respuesta correcta es detener, establecer el siguiente tiempo elegible y continuar cuando el símbolo vuelva a ser negociable.
Una lista de verificación concisa que siempre funciona
- Envía órdenes de mercado solo durante una sesión en vivo para ese símbolo.
- Pon en cola o desactiva las entradas para el fin de semana; vuelve a activarlas en el tick de reapertura.
- Envuelve una ventana de bloqueo alrededor de los descansos por renovación y mantenimiento diario.
- Controle los EA con condiciones sensibles a la sesión; gestione el error 132 / TRADE_RETCODE_MARKET_CLOSED aplazando, no reintentando.
- Dimensione las posiciones teniendo en cuenta el riesgo de brecha; asuma que las primeras ejecuciones tras la reapertura pueden superar su nivel.
Siga estas reglas y dejará de aparecer «Mercado cerrado» en su flujo de trabajo, no porque lo haya ignorado, sino porque su proceso ahora se alinea perfectamente con el funcionamiento de los motores y servidores de MT4/MT5.
- Close