Esta estrategia adopta una ruptura de canal de oscilación dinámica para determinar los puntos de entrada y parada de pérdida basados en el movimiento de los precios.
La estrategia primero calcula el máximo más alto y el mínimo más bajo en los últimos 20 días para obtener un canal de oscilación dinámica. Luego calcula los promedios móviles exponenciales de 8 días y 32 días. Cuando el precio de cierre rompe la banda superior del canal y la EMA de 8 días está por encima de la EMA de 32 días, va largo. Cuando el precio rompe la banda inferior o la EMA de 8 días cruza por debajo de la EMA de 32 días, sale. La stop loss se establece por debajo de la banda media del canal.
En concreto, las condiciones de entrada son las siguientes:
El precio de cierre rompe la banda dinámica superior formada por el máximo máximo en los últimos 20 días.
La EMA de 8 días está por encima de la EMA de 32 días.
Las condiciones de salida son:
Stop loss activado cuando el precio cae por debajo de la banda media.
La EMA de 8 días se cruza por debajo de la EMA de 32 días.
La estrategia identifica la dirección de la tendencia utilizando el canal dinámico y el estado actual de la tendencia alcista utilizando el cruce EMA. Esto ayuda a controlar el riesgo.
Los riesgos se pueden gestionar optimizando el período de canal, los períodos de EMA y el posicionamiento de stop loss.
La estrategia de ruptura de oscilación dinámica tiene una lógica clara para identificar la tendencia y entrar en función de la ruptura del canal y el cruce de la EMA. El stop loss ayuda a controlar el riesgo. El ajuste de parámetros como el período del canal y los períodos de la EMA puede mejorar el factor de ganancia. Esta estrategia funciona bien para acciones con patrones de continuación, especialmente rompiendo máximos anteriores.
/*backtest start: 2022-11-09 00:00:00 end: 2023-11-15 00:00:00 period: 1d basePeriod: 1h 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/ // © Robrecht99 //@version=5 strategy("My Strategy", overlay=true, margin_long=100, margin_short=100) fast = ta.sma(close, 8) slow = ta.sma(close, 32) plot(fast, color=color.red) plot(slow, color=color.navy) entrycondition1 = ta.crossover(fast, slow) entrycondition2 = fast > slow sellcondition1 = ta.crossunder(fast, slow) sellcondition2 = slow > fast atr = ta.atr(14) //Donchian Channels days = 20 h1 = ta.highest(high[1], days) l1 = ta.lowest(low[1], days) mid = math.avg(h1, l1) plot(mid, "channel", color=#FF6D00) u = plot(h1, "Upper", color=#2962FF) l = plot(l1, "Lower", color=#2962FF) fill(u, l, color.new(color.blue, 90)) if (close > h1 and entrycondition2) strategy.entry("long", strategy.long) stoploss = close - atr * 3 trail = close - atr * 3 strategy.exit("exit", "long", stop=stoploss, trail_offset=trail) if (sellcondition1 and sellcondition2) strategy.close(id="long")