La estrategia de ruptura del canal de Donchian doble es una estrategia de negociación cuantitativa basada en el canal de Donchian. Esta estrategia utiliza una combinación de canales de Donchian rápidos y lentos para lograr una negociación de ruptura de alto rendimiento de bajo riesgo.
Esta estrategia utiliza principalmente dos canales de Donchian, incluido un canal más lento con un período más largo y un canal más rápido con un período más corto.
El canal lento de Donchian tiene un período más largo que puede filtrar eficazmente el ruido del mercado, haciendo que sus señales de ruptura sean más confiables.
El canal de Donchian rápido tiene un período más corto que puede responder rápidamente a las fluctuaciones de precios a corto plazo.
Además, una condición de volatilidad se establece como un filtro para las señales de entrada. La estrategia solo activará la entrada cuando el movimiento del precio exceda un umbral porcentual predeterminado. Esto evita frecuentes cambios durante las consolidaciones de rango.
Estos riesgos pueden reducirse mediante la optimización de los parámetros, la colocación razonable de stop loss, la conciencia de los eventos, etc.
La estrategia Double Donchian Channel Breakout es en general una estrategia de seguimiento de tendencias relativamente estable y confiable. Combina las fortalezas de la captura de tendencias y el control de riesgos, lo que la hace adecuada como un módulo básico en varias estrategias de negociación de acciones. Se pueden esperar mejoras adicionales en el rendimiento a través del ajuste de parámetros y el refinamiento de la lógica.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © omererkan //@version=5 strategy(title="Double Donchian Channel Breakout", overlay=true, initial_capital = 1000, commission_value = 0.05, default_qty_value = 100, default_qty_type = strategy.percent_of_equity) slowLen = input.int(50, title="Slow Donchian") fastLen = input.int(30, title="Fast Donchian") volatility = input.int(3, title="Volatility (%)") longProfitPerc = input.float(2, title="Long TP1 (%)", minval=0.0, step=0.1) * 0.01 shortProfitPerc = input.float(2, title="Short TP1 (%)", minval=0.0, step=0.1) * 0.01 TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)") ubSlow = ta.highest(close, slowLen)[1] lbSlow = ta.lowest(close, slowLen)[1] ubFast = ta.highest(close, fastLen)[1] lbFast = ta.lowest(close, fastLen)[1] plot(ubSlow, color=color.green, linewidth=2, title="Slow DoCh - Upperband") plot(lbSlow, color=color.green, linewidth=2, title="Slow DoCh - Lowerband") plot(ubFast, color=color.blue, linewidth=2, title="Fast DoCh - Upperband") plot(lbFast, color=color.blue, linewidth=2, title="Fast DoCh - Lowerband") fark = (ubSlow - lbSlow) / lbSlow * 100 longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) longCondition = ta.crossover(close, ubSlow) and fark > volatility if (longCondition) strategy.entry("Long", strategy.long) shortCondition = ta.crossunder(close, lbSlow) and fark > volatility if (shortCondition) strategy.entry("Short", strategy.short) if strategy.position_size > 0 and ta.crossunder(close, lbFast) strategy.close("Long", "Close All") if strategy.position_size < 0 and ta.crossover(close, ubFast) strategy.close("Short", "Close All") // Take Profit if strategy.position_size > 0 strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice) if strategy.position_size < 0 strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)