Estrategia dinámica de ruptura del canal

El autor:¿ Qué pasa?, Fecha: 2024-01-17 15:29:55
Las etiquetas:

img

Resumen general

La estrategia de ruptura dinámica del canal es una estrategia de seguimiento de tendencias. Utiliza el indicador del canal Donchian para determinar dinámicamente los precios de compra y venta de ruptura, combina el indicador ATR para establecer puntos de stop loss y logra una automatización completa de la generación de señales comerciales y salidas de stop loss.

Principios

Canal de Donchian

El canal de Donchian es un indicador de canal dinámico que forma bandas superiores e inferiores mediante el cálculo de los precios más altos y más bajos durante un cierto período en el pasado. La banda superior es el precio más alto en los últimos n períodos, y la banda inferior es el precio más bajo en los últimos n períodos. El canal de Donchian refleja el rango de fluctuación y la tendencia potencial del mercado.

Esta estrategia establece el período del canal de Donchian a 20 días. Cuando el precio rompe el carril superior, se genera una señal de compra, lo que indica que el mercado ha entrado en una tendencia al alza. Cuando el precio cae por debajo del carril inferior, se genera una señal de venta, lo que indica que el mercado ha entrado en una tendencia a la baja.

Indicador ATR

El indicador ATR es la abreviatura de Average True Range, que refleja la amplitud de fluctuación promedio de un determinado activo durante un período reciente.

Esta estrategia utiliza el indicador ATR de 20 días para calcular el punto de stop loss. Cuanto mayor sea el valor ATR, mayor será la fluctuación del mercado, y más lejos estará el punto de stop loss establecido. Esto evita que el punto de stop loss esté demasiado cerca y fuera eliminado por fluctuaciones menores del mercado.

Generación de señales

Cuando el precio rompe la línea media del canal de Donchian hacia arriba, se genera una señal de compra. Cuando el precio rompe la línea media hacia abajo, se genera una señal de venta. Esto indica que el precio ha comenzado a romper este canal y entrar en una nueva ronda de tendencia.

Al mismo tiempo, en combinación con el punto de stop loss calculado por el indicador ATR, cuando la pérdida alcance el punto de stop loss, la posición se detendrá activamente para controlar los riesgos.

Análisis de ventajas

Seguimiento automático de tendencias

El canal Donchian es un indicador de seguimiento de tendencias. Al ajustar dinámicamente el rango del canal, esta estrategia puede rastrear automáticamente los cambios en las tendencias del mercado y generar señales de compra y venta en consecuencia. Esto evita la subjetividad del juicio manual y hace que las señales comerciales sean más objetivas y confiables.

Comercio de dos vías

La estrategia contiene reglas largas y cortas, lo que permite el comercio bidireccional. Esto amplía los entornos de mercado donde se puede aplicar la estrategia, lo que permite la rentabilidad tanto en tendencia alcista como descendente.

Gestión de riesgos

El mecanismo de stop loss del indicador ATR puede controlar eficazmente la pérdida de una sola operación. Esto es especialmente importante para la negociación cuantitativa para garantizar que las estrategias obtengan rendimientos positivos estables en eventos de alta probabilidad.

Análisis de riesgos

Riesgo de atrapar

La estrategia del canal de Donchian tiene cierto riesgo de quedar atrapado. Si el precio se invierte y vuelve a entrar en el canal sin una pérdida de parada, se pueden incurrir en pérdidas significativas.

Riesgo de reversión de tendencia

El indicador de canal de Donchian generará señales erróneas en las inversiones de tendencia. El usuario debe prestar atención a las condiciones del mercado para evitar operaciones a ciegas cuando ocurren inversiones de tendencia significativas.

Riesgo de optimización de parámetros

Los parámetros del período tanto del canal de Donchian como del stop loss ATR deben optimizarse, de lo contrario pueden generarse señales incorrectas excesivas.

Direcciones de optimización

Añadir juicio de tendencia

Se pueden añadir indicadores de evaluación de tendencias tales como medias móviles para evitar señales erróneas en puntos de inflexión significativos de la tendencia.

Optimización de parámetros

Optimizar los parámetros del canal de Donchian y ATR para encontrar la mejor combinación.

Añadir patrones de precios

Combinar otros indicadores de juicio auxiliares como los patrones de candlestick y los cambios en el volumen de operaciones para mejorar la precisión de la señal y reducir las operaciones de reversión innecesarias.

Conclusión

La estrategia de ruptura dinámica del canal localiza la dirección de la tendencia a través de las bandas superior e inferior del canal de Donchian y genera señales comerciales. El mecanismo de stop loss ATR controla el riesgo. Esta estrategia tiene un alto grado de automatización y es adecuada para el comercio cuantitativo.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "dc",  overlay = true)
atrLength = input(title="ATR Length:", defval=20, minval=1)

testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = input(20, "Period")

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2
atrValue=atr(atrLength)


useTakeProfit   = na
useStopLoss     = na
useTrailStop    = na
useTrailOffset  = na

Buy_stop = lowest(low[1],3) - atr(20)[1] / 3
plot(Buy_stop, color=red, title="buy_stoploss")
Sell_stop = highest(high[1],3) + atr(20)[1] / 3
plot(Sell_stop, color=green, title="sell_stoploss")

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=yellow, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=(close > dcAverage) and cross(close,dcAverage))
strategy.close("simpleBuy",when=((close < dcAverage) and  cross(close,dcAverage)) or ( close< Buy_stop))
    
strategy.entry("simpleSell", strategy.short,when=(close < dcAverage) and cross(close,dcAverage) )
strategy.close("simpleSell",when=((close > dcAverage) and cross(close,dcAverage)) or ( close > Sell_stop))
    
//strategy.exit("Exit simpleBuy", from_entry = "simpleBuy", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
//strategy.exit("Exit simpleSell", from_entry = "simpleSell", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)



Más.