Estrategia de ruptura del doble canal de Donchian

El autor:¿ Qué pasa?, Fecha: 2024-02-04 09:42:14
Las etiquetas:

img

Resumen general

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.

Estrategia lógica

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.

Análisis de ventajas

  • El mecanismo de doble canal establece dos líneas de defensa y controla eficazmente el riesgo
  • La combinación de canales rápidos y lentos capta de manera eficiente las tendencias
  • El filtro de volatilidad reduce las operaciones ineficaces
  • Simultáneamente rastrea las tendencias y evita el sobreajuste
  • Lógica sencilla y clara, fácil de entender y dominar

Análisis de riesgos

  • Las fluctuaciones violentas de precios pueden penetrar el stop loss y causar grandes pérdidas
  • La configuración incorrecta de parámetros (por ejemplo, períodos de canal) puede comprometer la eficiencia de la estrategia
  • Los costes de negociación también afectan en cierta medida a los beneficios
  • Los riesgos de brecha en torno a eventos significativos necesitan atención

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.

Direcciones de optimización

  • Prueba de diferentes combinaciones de períodos del canal de Donchian
  • Optimizar el parámetro de volatilidad para el mejor momento de entrada
  • Añadir un indicador de verificación de tendencia para evitar operaciones contra tendencia
  • Selección del stock basada en los fundamentos
  • Ajustar el mecanismo de stop loss para limitar las pérdidas

Conclusión

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)

Más.