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.
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
Las posiciones se cierran cuando las condiciones de entrada ya no son válidas, evitando pérdidas innecesarias durante los mercados laterales.
Las principales ventajas de esta estrategia incluyen:
La combinación de ventanas rápidas y lentas permite la detección rápida de cambios de tendencia.
Gestión eficaz del riesgo mediante paradas razonables. Las paradas permiten salidas oportunas para controlar las pérdidas.
Lógica simple y clara basada en cruces y paradas de promedios móviles.
Fácilmente optimizable y extensible. Los parámetros se pueden ajustar y se pueden añadir más indicadores.
Los principales riesgos son:
El ruido del mercado puede generar señales incorrectas.
Pueden detectarse puntos de inflexión tarde.
Las paradas basadas directamente en los precios de la ventana pueden ser demasiado ajustadas.
Los mercados laterales conducen a la caída de los precios, los mercados agitados generan señales falsas.
Mitigantes:
Optimiza la ventana rápida y añade filtros.
Mejorar la ventana lenta y añadir indicadores de confirmación.
El amortiguador se detiene en el precio de mercado.
Detecta los laterales y evita las señales.
La estrategia puede mejorarse en varios aspectos:
Optimizar los períodos de ventana para diferentes activos.
Añadir el tamaño de la posición para un mejor control del riesgo.
Implementar mecanismos de obtención de beneficios.
Añadir más filtros para crear señales robustas.
Incorpore la detección de patrones como triángulos y divergencias.
Utilice el aprendizaje automático para optimizar los parámetros.
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)