Estrategia de ruptura de doble canal de Donchian

El autor:¿ Qué pasa?, Fecha: 2024-02-21 11:38:48
Las etiquetas:

img

Resumen general

La estrategia de ruptura de canal doble de Donchian es una estrategia de ruptura basada en los canales de Donchian. Utiliza canales de Donchian rápidos y lentos para construir señales comerciales largas y cortas. Cuando el precio atraviesa el canal lento, abra posiciones largas o cortas. Cuando el precio atraviesa el canal rápido, cierre posiciones.

Principio de la estrategia

La estrategia de ruptura del canal doble de Donchian se basa en dos parámetros:Período del canal Donchiano lentoyPeríodo del canal de Donchian rápidoLa estrategia calcula primero las bandas superior e inferior de los dos canales de Donchian.

  • El período de canal Donchiano lento por defecto es de 50 bares, lo que refleja tendencias a largo plazo.
  • El período predeterminado del canal de Donchian rápido es de 30 bares, lo que refleja los cambios de tendencia a corto plazo.

La señal de entrada larga es unaruptura por encima de la banda superiorconvolatilidad superior al umbralLa señal de entrada corta es unadesglose por debajo de la banda inferiorconvolatilidad superior al umbral.

La señal de salida de stop-loss largo es undesglose por debajo de la banda inferiorLa señal de salida de stop-loss corto es unaruptura por encima de la banda superior.

La estrategia también estableceobtener beneficiosEl índice de ganancia por defecto es de 2%, es decir, la mitad de la posición de ganancia cuando el movimiento del precio alcanza el 2%.

Análisis de ventajas

La estrategia de ruptura de doble canal de Donchian tiene las siguientes ventajas:

  1. El diseño de doble canal puede capturar señales de tendencia de marcos de tiempo más largos y más cortos, lo que permite entradas más precisas.

  2. La condición de volatilidad evita que las operaciones se realicen con frecuencia en mercados de rango.

  3. Las configuraciones integrales de toma de ganancias y stop loss bloquean ganancias parciales y reducen las pérdidas.

  4. Una lógica estratégica simple y clara, fácil de entender e implementar.

  5. Los parámetros personalizables se adaptan a diferentes productos y preferencias comerciales.

Análisis de riesgos

La estrategia de ruptura del canal doble de Donchian también tiene algunos riesgos:

  1. El diseño de doble canal es sensible y puede generar señales falsas.

  2. En mercados volátiles, el stop loss puede activarse con demasiada frecuencia.

  3. El porcentaje fijo de ganancias no maximiza las ganancias. Considere la intervención dinámica o manual para un precio óptimo de ganancias.

  4. El rendimiento real de la negociación puede diferir de las expectativas de las pruebas de retroceso. Requiere una validación exhaustiva y ajustes de parámetros si es necesario.

Direcciones de optimización

La estrategia de ruptura del canal dual de Donchian puede optimizarse en varios aspectos:

  1. Prueba más combinaciones de períodos para encontrar parámetros óptimos.

  2. Prueba diferentes medidas de volatilidad como ATR para encontrar la métrica más estable.

  3. Establezca un límite en el número de entradas para evitar pérdidas al final de las tendencias.

  4. Prueba dinámico obtener ganancias para obtener un mayor beneficio de comercio único.

  5. Incorporar otros indicadores para filtrar las entradas y mejorar la precisión, por ejemplo, el volumen.

  6. Optimizar los modelos de gestión de dinero como el tamaño de la posición fraccionaria fija para un mejor control del riesgo.

Conclusión

En conclusión, la Estrategia de Breakout de Canal Dual Donchian es una excelente estrategia de seguimiento de tendencias. Combina tanto la identificación de tendencias como las capacidades de protección contra la reversión. Con la optimización de parámetros y el refinamiento de reglas, puede ser rentable en la mayoría de los productos y condiciones de mercado. La estrategia es simple y práctica, vale la pena aprender y aplicar para los operadores cuantitativos.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
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)

// Donchian Channels
slowLen = input.int(50, title="Slow Donchian", group = "Conditions")
fastLen = input.int(30, title="Fast Donchian", group = "Conditions")

// Volatility Calculated as a percentage
volatility = input.int(3, title="Volatility (%)", group = "Conditions")

// Long positions
long = input.bool(true, "Long Position On/Off", group = "Strategy")
longProfitPerc = input.float(2, title="Long TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01

// Short positions
short = input.bool(true, "Short Position On/Off", group = "Strategy")
shortProfitPerc = input.float(2, title="Short TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01

// First take profit point for positions
TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)", group = "Strategy")

// Slow Donchian Calculated
ubSlow = ta.highest(high, slowLen)[1]
lbSlow = ta.lowest(low, slowLen)[1]

// Fast Donchian Calculated
ubFast = ta.highest(high, fastLen)[1]
lbFast = ta.lowest(low, fastLen)[1]

// Plot Donchian Channel for entries
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")

// This calculation, the strategy does not open position in the horizontal market.
fark = (ubSlow - lbSlow) / lbSlow * 100

// Take profit levels
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Code long trading conditions
longCondition = ta.crossover(close, ubSlow) and fark > volatility
if longCondition and long == true
    strategy.entry("Long", strategy.long)

// Code short trading conditions
shortCondition = ta.crossunder(close, lbSlow) and fark > volatility
if shortCondition and short == true
    strategy.entry("Short", strategy.short)

// Determine long trading conditions
if strategy.position_size > 0 and ta.crossunder(close, lbFast) 
    strategy.close_all("Close All")

// Determine short trading conditions
if strategy.position_size < 0 and ta.crossover(close, ubFast)
    strategy.close_all("Close All")

// Take Profit Long
if strategy.position_size > 0
    strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice)

// Take Profit Short
if strategy.position_size < 0
    strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)

Más.