La estrategia de Swing Points Breakouts es una estrategia de fluctuación de tendencia a largo plazo basada en la identificación de altas y bajas oscilaciones.
La estrategia define el precio más alto y el precio más bajo de la barra N más reciente como el swing high y swing low a través de los parámetros de entrada. Determina la entrada y salida en función del parámetro de dirección. Cuando se va largo, entra en posiciones largas con una orden de parada OCO cuando los precios rompen el swing high. Cuando se va corto, entra en posiciones cortas con una orden de parada OCO cuando los precios rompen el swing low.
Además, la estrategia establece stop losses. Después de abrir posiciones largas, el stop loss se establece cerca del precio más bajo reciente. Después de abrir posiciones cortas, el stop loss se establece cerca del precio más alto reciente. Esto evita efectivamente grandes pérdidas en un mercado de tendencia.
La mayor ventaja de esta estrategia es que captura las fluctuaciones clave en torno a los máximos y mínimos del swing y las ganancias en consecuencia.
En concreto, las ventajas son las siguientes:
La lógica de la estrategia es clara, con entradas y salidas basadas en breakouts altas/bajas.
Utiliza altas/bajas de oscilación para identificar oportunidades de reversión, un enfoque clásico de análisis técnico.
Hay paradas de pérdidas establecidas para controlar los riesgos y evitar grandes pérdidas en los mercados de tendencia.
El código tiene una estructura clara y es fácil de entender y modificar.
Los parámetros se pueden ajustar para optimizar la estrategia, como ajustar el período de swing alto / bajo.
El principal riesgo de esta estrategia proviene de la identificación inexacta de los altos/bajos de los movimientos que conduce a operaciones erróneas.
Falsa ruptura de los máximos/ mínimos de los movimientos que resulta en entradas erróneas.
Un enorme stop loss alcanzado cerca de los puntos de escape.
Los símbolos de tendencia tienden a necesitar enormes costos para determinar los puntos de giro.
El ajuste incorrecto de parámetros también afecta el rendimiento de la estrategia.
Las soluciones incluyen:
Optimizando parámetros como el período de swing alto/bajo.
Aumento de la distancia de pérdida de parada.
Evitar usarlo en los símbolos de tendencia.
Adopción de aprendizaje automático para optimizar dinámicamente los parámetros.
La estrategia se puede optimizar en las siguientes direcciones:
Optimización dinámica de los períodos de oscilación alto/bajo en lugar de valores fijos para evitar el sobreajuste.
Introducción de un stop loss/take profit dinámico basado en ATR y volatilidad.
Combinando marcos de tiempo múltiples, utilizando TF más altos para definir la tendencia y TF más bajos para la entrada.
Incorporar modelos de aprendizaje automático para predecir posibles puntos de inflexión y mejorar el rendimiento.
Optimización de los algoritmos de stop loss para evitar golpes innecesarios mientras se mantiene un stop loss efectivo.
La estrategia de Swing Points Breakouts es una estrategia cuantitativa práctica a largo plazo en general. Al capturar oportunidades de reversión alrededor de los puntos de swing y establecer stop losses para controlar los riesgos, asegura ganancias mientras también controla los drawdowns. Con un ajuste flexible de parámetros y una lógica clara, es un paradigma de estrategia recomendado que vale la pena utilizar.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © tweakerID // Long term strategy for managing a Crypto investment with Swing Trades of more than 1 day. The strategy buys with a // stop order at the Swing High price (green line) and sells with a stop order at the Swing Low price (red line). // The direction of the strategy can be adjusted in the Inputs panel. //@version=4 strategy("Swing Points Breakouts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, commission_value=0.04) direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1) strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long)) //Inputss i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit") i_SwingLow=input(10, title="Swing Low Lookback") i_SwingHigh=input(10, title="Swing High Lookback") i_reverse=input(false, "Reverse Trades") i_SLExpander=input(defval=0, step=1, title="SL Expander") //Strategy Calculations SwingLow=lowest(i_SwingLow) SwingHigh=highest(i_SwingHigh) //SL & TP Calculations bought=strategy.position_size != strategy.position_size[1] LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0)/5)*i_SLExpander) SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0)/5)*i_SLExpander) islong=strategy.position_size > 0 isshort=strategy.position_size < 0 SL= islong ? LSL : isshort ? SSL : na //Entries and Exits strategy.entry("long", true, stop=i_reverse?na:SwingHigh, limit=i_reverse?SwingLow:na) strategy.entry("short", false, stop=i_reverse?na:SwingLow, limit=i_reverse?SwingHigh:na) if i_SL strategy.exit("longexit", "long", stop=LSL) strategy.exit("shortexit", "short", stop=SSL) //Plots plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL") plot(SwingLow, color=color.red) plot(SwingHigh, color=color.green)