Breakout Scalper - Capturando rápidamente los cambios de tendencia

El autor:¿ Qué pasa?, Fecha: 2023-10-25 17:58:11
Las etiquetas:

img

Resumen general

La estrategia de Scalper de Breakout es una estrategia de negociación de breakout que utiliza promedios móviles rápidos y lentos para identificar los cambios de tendencia. Establece paradas de entrada y paradas de salida para la gestión de riesgos. La estrategia cierra posiciones manualmente cuando el mercado va de lado. Es adecuado para instrumentos volátiles para capitalizar los rápidos cambios de tendencia.

Estrategia lógica

La estrategia emplea una ventana rápida y una ventana lenta. Los períodos predeterminados son 13 y 52 respectivamente. La ventana rápida captura tendencias a corto plazo mientras que la ventana lenta determina la dirección general del mercado. Los precios medios de las dos ventanas se trazan. Cuando el precio medio rápido cruza por encima del precio medio lento, puede estar formándose una tendencia alcista. Cuando el precio medio rápido cruza por debajo del lento, puede estar comenzando una tendencia bajista.

Cuando el precio medio rápido está por encima del precio medio lento, y el precio instantáneo también está por encima del precio medio rápido, se genera una señal de compra. La parada de entrada se coloca en el precio más alto de la ventana lenta.

Además, las paradas de salida se definen para controlar el riesgo. La parada de salida larga es el máximo de las ventanas rápidas y lentas precios más bajos. La parada de salida corta es el mínimo de las ventanas rápidas y lentas precios más altos. Esto asegura que las paradas se colocan fuera de la dirección de la tendencia actual para mitigar el riesgo.

Las posiciones se cierran cuando las condiciones de entrada ya no son válidas, evitando pérdidas innecesarias durante los mercados laterales.

Análisis de ventajas

Las principales ventajas de esta estrategia incluyen:

  1. La combinación de ventanas rápidas y lentas permite la detección rápida de cambios de tendencia.

  2. Gestión eficaz del riesgo mediante paradas razonables. Las paradas permiten salidas oportunas para controlar las pérdidas.

  3. Lógica simple y clara basada en cruces y paradas de promedios móviles.

  4. Fácilmente optimizable y extensible. Los parámetros se pueden ajustar y se pueden añadir más indicadores.

Análisis de riesgos

Los principales riesgos son:

  1. El ruido del mercado puede generar señales incorrectas.

  2. Pueden detectarse puntos de inflexión tarde.

  3. Las paradas basadas directamente en los precios de la ventana pueden ser demasiado ajustadas.

  4. Los mercados laterales conducen a la caída de los precios, los mercados agitados generan señales falsas.

Mitigantes:

  1. Optimiza la ventana rápida y añade filtros.

  2. Mejorar la ventana lenta y añadir indicadores de confirmación.

  3. El amortiguador se detiene en el precio de mercado.

  4. Detecta los laterales y evita las señales.

Oportunidades de optimización

La estrategia puede mejorarse en varios aspectos:

  1. Optimizar los períodos de ventana para diferentes activos.

  2. Añadir el tamaño de la posición para un mejor control del riesgo.

  3. Implementar mecanismos de obtención de beneficios.

  4. Añadir más filtros para crear señales robustas.

  5. Incorpore la detección de patrones como triángulos y divergencias.

  6. Utilice el aprendizaje automático para optimizar los parámetros.

Conclusión

El Breakout Scalper tiene como objetivo capturar rápidamente los cambios de tendencia basados en cruces de promedio móvil rápido y lento. Es adecuado para mercados volátiles como el oro. Las paradas proporcionan gestión de riesgos. La lógica simple hace que sea fácil de entender y optimizar. Los riesgos y mejoras identificados ofrecen formas de mejorar aún más la estrategia. En general, este es un sistema de trading de tendencia eficiente que se puede refinar en un enfoque robusto.


/*backtest
start: 2023-10-17 00:00:00
end: 2023-10-24 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Breakout Scalper", overlay=true)

fast_window = input(title="Fast Window",  defval=13, minval=1)
slow_window = input(title="Slow Window",  defval=52, minval=1)
instant_period = input(title="Instant Period",  defval=3, minval=1)

fast_low = lowest(fast_window)
fast_high = highest(fast_window)
fast_mid = (fast_low + fast_high) / 2

slow_low = lowest(slow_window)
slow_high = highest(slow_window)
slow_mid = (slow_low + slow_high) / 2

instant_price = ema(close, instant_period)

plot(instant_price, title="Instant Price", color=black, transp=50)
fp = plot(fast_mid, title="Fast Mid", color=green)
sp = plot(slow_mid, title="Slow Mid", color=red)
fill(fp, sp, color=(fast_mid > slow_mid ? green : red))

is_buy_mode = (instant_price > fast_mid) and (fast_mid > slow_mid)
is_sell_mode = (instant_price < fast_mid) and (fast_mid < slow_mid)
entry_color = is_buy_mode ? green : (is_sell_mode ? red : na)
exit_color = is_buy_mode ? red : (is_sell_mode ? green : na)

entry_buy_stop = slow_high
entry_sell_stop = slow_low
exit_buy_stop = max(fast_low, slow_low)
exit_sell_stop = min(fast_high, slow_high)
strategy.entry("long", strategy.long, stop=entry_buy_stop, when=is_buy_mode)
strategy.exit("stop", "long", stop=exit_buy_stop)
strategy.entry("short", strategy.short, stop=entry_sell_stop, when=is_sell_mode)
strategy.exit("stop", "short", stop=exit_sell_stop)
strategy.close("long", when=(not is_buy_mode))
strategy.close("short", when=(not is_sell_mode))

entry_buy_stop_color = (strategy.position_size == 0) ? (is_buy_mode ? green : na) : na
plotshape(entry_buy_stop, location=location.absolute, color=entry_buy_stop_color, style=shape.circle)
entry_sell_stop_color = (strategy.position_size == 0) ? (is_sell_mode ? red : na) : na
plotshape(entry_sell_stop, location=location.absolute, color=entry_sell_stop_color, style=shape.circle)
exit_buy_stop_color = (strategy.position_size > 0) ? red : na
plotshape(exit_buy_stop, location=location.absolute, color=exit_buy_stop_color, style=shape.xcross)
exit_sell_stop_color = (strategy.position_size < 0) ? green : na
plotshape(exit_sell_stop, location=location.absolute, color=exit_sell_stop_color, style=shape.xcross)


Más.