Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 7
- Ranking:
- Publicado:
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Detector de barrido de liquidez
La idea que hay detrás
Los máximos y mínimos de oscilación anteriores suelen acumular órdenes de stop-loss y de ruptura inactivas justo más allá de ellos; ese conjunto de órdenes es la «liquidez», y el precio suele verse empujado lo suficiente más allá del nivel como para activarlas antes de revertirse en la dirección opuesta. Este indicador formaliza ese patrón en dos pasos: en primer lugar, identifica puntos de oscilación fractales genuinos (un máximo o mínimo que sea el extremo de su propio entorno local a ambos lados); a continuación, analiza cada barra cerrada posterior en busca de una mecha que traspase uno de esos niveles en una cantidad significativa y cierre de nuevo al otro lado —la señal característica de un barrido, en lugar de una ruptura genuina—.
La confirmación de un swing, por definición, se retrasa unas cuantas barras (un pivote no puede confirmarse hasta que existan suficientes barras a su derecha que demuestren que era el extremo local), y las comprobaciones de barrido solo se realizan en barras que se han cerrado por completo, por lo que nada aquí se repinta una vez trazado: un nivel, una vez confirmado, permanece exactamente donde se confirmó, y una flecha de barrido, una vez trazada, permanece exactamente en la barra que la activó.
Cómo interpretarlo
- Línea de nivel (por defecto gris, discontinua): un máximo o mínimo de oscilación confirmado, trazada a partir de la barra en la que se formó. Se extiende en tiempo real hasta la barra actual mientras no se haya barrido.
- Flecha ascendente (por defecto verde): un barrido alcista: el precio ha caído por debajo de un mínimo oscilante y ha vuelto a cerrar por encima de él — una posible captación de liquidez antes de un movimiento alcista.
- Flecha hacia abajo (por defecto, roja): un barrido bajista: el precio ha superado un máximo de oscilación y ha vuelto a cerrar por debajo de él — una posible captación de liquidez antes de un movimiento a la baja.
- Una línea que se vuelve gris o se congela: ese nivel acaba de ser barrido; su línea deja de extenderse exactamente en la barra de barrido en lugar de continuar hacia adelante, por lo que los niveles antiguos, ya barridos, se distinguen visualmente de los que aún están «activos».
- Etiqueta de precio (opcional): muestra el precio exacto del nivel junto a cada flecha de barrido, por lo que no es necesario pasar el cursor por encima de la línea para leerlo.
Variables externas (parámetros de entrada)
| Entrada | Por defecto | Finalidad |
|---|---|---|
| InpSwingLookback | 5 | Barras necesarias a cada lado de una barra candidata para que se confirme como un máximo o mínimo de oscilación. |
| InpMaxLevelsToTrack | 20 | Número máximo de niveles que se mantienen en el gráfico a la vez; el nivel más antiguo de los que se siguen se elimina cada vez que uno nuevo supera este límite. |
| InpMinWickPoints | 30 | Distancia mínima de la mecha más allá de un nivel, en puntos, para que una vela que lo traspase cuente como un barrido auténtico. |
| InpRequireCloseBackInside | true | Si es «true», la vela también debe cerrar de nuevo en el lado original del nivel; si es «false», cuenta cualquier mecha lo suficientemente profunda. |
| InpOneSweepPerLevel | true | Si es «true», un nivel deja de comprobarse tras su primer barrido; si es «false», el mismo nivel puede generar varias señales de barrido a lo largo del tiempo. |
| InpShowLevels | verdadero | Dibuja las propias líneas de nivel de oscilación, no solo las flechas de barrido. |
| InpExtendLevelsUntilSwept | verdadero | Si es «true», la línea de un nivel no barrido se sigue extendiendo en tiempo real hasta el compás actual; si es «false», se detiene tras un número fijo de compases. |
| InpLevelExtendBars | 50 | Longitud fija de extensión (en compases), que solo se utiliza cuando InpExtendLevelsUntilSwept es «false». |
| InpLevelColor / InpSweptLevelColor | Plata / Gris oscuro | Color de la línea para un nivel antes y después de que se haya barrido. |
| InpBullishSweepColor / InpBearishSweepColor | Verde lima / Rojo | Color de la flecha y la etiqueta para las señales alcistas (mínimo barrido) frente a las bajistas (máximo barrido). |
| InpShowLabels | true | Muestra el nivel exacto del precio junto a cada flecha de barrido. |
| InpArrowWidth | 2 | Ancho de los marcadores de las flechas de barrido. |
Uso recomendado
Funciona con cualquier símbolo y cualquier marco temporal; los conceptos de liquidez basados en oscilaciones se aplican de la misma manera independientemente del instrumento, aunque —al igual que cualquier método de pivote fractal— un valor mayor de InpSwingLookback en un marco temporal más corto encuentra menos niveles, pero más significativos, mientras que un valor más pequeño encuentra más niveles, pero con más ruido. Dado que la confirmación del pivote requiere barras a ambos lados, cabe esperar un retraso equivalente a InpSwingLookback barras entre el momento en que se forma realmente un swing y la aparición de su nivel en el gráfico; se trata de una propiedad estructural de la detección fractal, no de un error, y es lo que evita que el indicador se repinte.
Un «sweep» es una observación de un patrón, no una señal de operación en sí misma: indica que probablemente se absorbió liquidez en un nivel y que el precio lo rechazó, lo que muchos operadores utilizan como una confirmación entre varias, en lugar de como un desencadenante automático de entrada. Este indicador solo lee datos de precios y nunca coloca, modifica ni cierra ninguna orden, por lo que es seguro utilizarlo en cualquier tipo de cuenta.
Todos los objetos del gráfico se crean bajo un único prefijo de nombre interno y se eliminan por completo mediante ObjectsDeleteAll() en OnDeinit() cuando se desvincula el indicador, por lo que no deja ningún rastro en el gráfico.

Fig. 1. Un barrido alcista de un mínimo de oscilación y un barrido bajista de un máximo de oscilación en el XAUUSD M15. Representado en blanco y negro según las directrices de imagen de Code Base (750×500 px).
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/76586
Interactive On-Chart Risk Management and Execution Panel
Un panel interactivo de interfaz gráfica de usuario (GUI) para MetaTrader 5, diseñado para operadores manuales y desarrolladores cuantitativos. Automatiza el cálculo dinámico del tamaño de las posiciones en función del porcentaje exacto de riesgo sobre el saldo de la cuenta, permite la ejecución de órdenes con un solo clic (compra/venta), ofrece la función de punto de equilibrio instantáneo, la opción «Cerrar todo» y la gestión continua en tiempo real del trailing stop.
MT5 Vertical Scroll
Esto permite que el gráfico de MT5 se desplace igual que el de TradingView, con un botón automático para restablecerlo.
Accumulation/Distribution
El indicador Accumulation/Distribution (Acumulación/Distribución) queda determinado por los cambios que se producen en el precio y en el volumen.
Accelerator Oscillator (AC)
El indicador Acceleration/Deceleration (AC, Aceleración/Desaceleración) mide la aceleración y la desaceleración de la fuerza impulsora del mercado.