Stops Level y Freeze Level: por qué no puedes poner el SL
Contenido
- Que no puedas poner el SL no siempre es un fallo del EA
- Cómo funciona: dos «distancias mínimas»
- Stops Level
- Freeze Level
- «0» no significa que no haya restricción
- La distancia se amplía durante la publicación de indicadores
- Procedimiento de verificación y lista de comprobación
- Comprobación de distancia mínima en el EA
- Límites y precauciones
- Resumen
Que no puedas poner el SL no siempre es un fallo del EA
Vamos directo a la conclusión. En la mayoría de los casos, que no se pueda colocar el SL o moverlo no se debe a la lógica del EA, sino a una «distancia mínima» fijada por la especificación del símbolo. MT5 tiene el «Stops Level», que determina cuánto hay que alejar el SL y el TP del precio actual, y el «Freeze Level», que prohíbe modificar una orden cuando el precio se acerca al SL, al TP o a una orden pendiente.
Lo complicado es que esta distancia no siempre es la misma. Un SL a una distancia que normalmente se acepta sin problema puede ser rechazado justo después de la publicación de un indicador. Cuando desarrollamos un EA, siempre comprobamos esta distancia antes de enviar la orden. En este artículo resumimos el mecanismo, el procedimiento de verificación y los límites de las medidas que se pueden tomar desde el EA.
Comparación de brókers recomendados →
🎁 Descargar EA gratis📧 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 funciona: dos «distancias mínimas»
Stops Level
El Stops Level (SYMBOL_TRADE_STOPS_LEVEL) expresa en puntos la distancia mínima entre el precio actual y el SL o el TP. Para una posición de compra se mide desde el Bid, que es la referencia de cierre; para una de venta, desde el Ask. Si intentas poner un SL más cerca que esa distancia, el servidor rechaza la orden y el código de retorno de MT5 es «Invalid stops» (10016).
Freeze Level
El Freeze Level (SYMBOL_TRADE_FREEZE_LEVEL) es la distancia a la que, cuando el precio se acerca al SL, al TP o al precio de una orden pendiente, esa orden ya no se puede modificar ni eliminar. Cuando un EA con trailing stop intenta mover el SL justo antes del cierre y se lo rechazan, casi siempre es por esto. El código de retorno es «Frozen» (10029).
| Concepto | Significado | Operaciones afectadas | Código de rechazo habitual |
|---|---|---|---|
| Stops Level | Distancia mínima del precio actual al SL/TP | Indicar SL/TP al enviar una orden, modificar el SL | Invalid stops (10016) |
| Freeze Level | Distancia a la que se prohíbe modificar cuando el precio se acerca al SL/TP o a una orden pendiente | Modificar SL/TP, modificar o cancelar órdenes pendientes | Frozen (10029) |
«0» no significa que no haya restricción
Aunque la especificación del símbolo muestre un Stops Level de 0, no es seguro que se acepte un SL por muy cerca que lo pongas. Parece que, cuando es 0, algunos brokers aplican en el servidor otra regla (por ejemplo, una distancia basada en el spread). No hemos podido comprobar la implementación de cada broker, así que lo tratamos de forma conservadora: «0 = alejar al menos el spread».
La distancia se amplía durante la publicación de indicadores
El Stops Level y el Freeze Level no son valores fijos; el broker puede modificarlos. Algunos brokers los amplían temporalmente alrededor de la publicación de indicadores importantes, justo tras la apertura del lunes o durante el rollover. Además, el spread también se ensancha en esas mismas franjas, de modo que un SL de venta, que se mide desde el Ask, tiene que ir más lejos de lo que exigiría el movimiento real del precio.
Es decir, aunque con la especificación habitual pienses «con esta distancia basta», puede que no se acepte justo en el momento más importante. En un EA diseñado de forma que la entrada se ejecute pero el SL no, puede quedar una posición sin protección.
Procedimiento de verificación y lista de comprobación
Comprueba los siguientes puntos en la cuenta que utilizas.
- Abre la especificación del símbolo: en Observación del mercado, clic derecho sobre el símbolo → «Especificación». Anota los valores de «Stops Level» y «Freeze Level» (la unidad son puntos).
- Convierte los puntos a precio: un punto no equivale al mismo rango de precio en XAUUSD que en USDJPY, así que comprueba el número de decimales y pásalo a diferencia de precio.
- Compáralo con la distancia del SL del EA: verifica que la distancia de SL que usan la configuración o la lógica del EA sea claramente mayor que el Stops Level más el spread.
- Vuelve a mirar antes y después de un indicador: abre la misma pantalla justo antes de la publicación y comprueba si los valores cambian. No se sabe si un broker lo hace hasta que lo ves.
- Revisa los registros: en las pestañas «Operaciones» y «Expertos», comprueba si aparecen «Invalid stops» o «Frozen». En Conocimientos de EA y MT5 también explicamos cómo averiguar la causa cuando se rechaza una orden.
Para la configuración del EA en sí, consulta Cómo configurar un EA, y para las diferencias de condiciones entre brokers, la Comparativa de brokers FX.
Comprobación de distancia mínima en el EA
En nuestros EA hacemos las siguientes comprobaciones, en este orden, justo antes de enviar la orden.
- Se obtienen en cada ocasión el Stops Level, el Freeze Level y el spread de ese momento (no se usa un valor leído una sola vez al iniciar).
- La distancia mínima es el mayor de los dos, Stops Level y Freeze Level, más el spread y un pequeño margen.
- Si el SL queda más cerca que esa distancia, no se amplía el SL por cuenta propia: se renuncia a la entrada.
No diseñamos el EA para ampliar el SL automáticamente porque, al hacerlo, la pérdida por operación sería mayor que la prevista. Si el lote se calcula a partir de la distancia del SL, ampliar solo el SL rompe el porcentaje de riesgo. Renunciar reduce las oportunidades, pero consideramos que es mejor que asumir un riesgo no previsto.
Límites y precauciones
Esta comprobación no evita todos los problemas.
- Es difícil reproducirlo en el backtest: según entendemos, el probador de estrategias de MT5 usa la configuración actual de la especificación del símbolo y no reproduce que la distancia se ampliara en publicaciones de indicadores pasadas. Cuanto más corto es el SL del EA, mayor puede ser la diferencia entre el resultado del test y el real. Por ejemplo, GOLD TRIPWIRE es de los que tienen un tiempo medio de posesión corto en el backtest (0:21:12), por lo que lo consideramos de los más expuestos a este tipo de diferencias.
- Renunciar cambia los resultados: entre las operaciones que la comprobación descarta hay algunas que habrían sido ganadoras. Al activar la comprobación, se opera de forma distinta a como se hizo en el backtest.
- Las condiciones también cambian en el instante de la orden: pueden variar entre que pasas la comprobación y la orden llega al servidor, por lo que no se pueden eliminar del todo los rechazos.
- El propio SL puede deslizarse: aunque consigas colocar el SL, si el mercado cambia bruscamente la ejecución puede producirse a un precio peor que el SL. La comprobación de distancia mínima no es una medida contra el slippage.
Resumen
- La mayoría de las veces que no se puede poner el SL, la causa es el Stops Level (distancia mínima) y el Freeze Level (distancia de prohibición de modificar) de la especificación del símbolo.
- Si se rechaza, el código de retorno es «Invalid stops» o «Frozen».
- Un Stops Level de 0 no siempre significa «sin restricción». Aleja el SL al menos el spread.
- Algunos brokers amplían la distancia y el spread alrededor de la publicación de indicadores, y la orden puede ser rechazada en el momento más importante.
- Nuestro diseño en el EA: obtener cada vez los valores de ese momento, comprobar y, si no alcanza, renunciar sin ampliar el SL.
- El backtest tiene dificultad para reproducir los cambios pasados de la distancia. Cuanto más corto es el SL del EA, más atención hay que prestar a la diferencia en la operativa real.
Relacionado
2026-11-06
Rechazo de órdenes en MT5: retcodes y orden de revisión
2026-11-04
MagicNumber: cómo usar varios EA en la misma cuenta
2026-11-02
Órdenes y posiciones en MT5: evita errores con netting
2026-10-29
OnTick vs OnTimer en MQL5: cuándo usar cada uno en un EA
📧 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 ↗