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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Optimizar los parámetros del canal de Donchian y ATR para encontrar la mejor combinación.
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.
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)