
La estrategia de ruptura de canal dinámico es una estrategia de seguimiento de tendencias. La estrategia utiliza el indicador de canal Donchian para determinar dinámicamente los precios de compra y venta de ruptura, en combinación con el indicador ATR de volatilidad para establecer el punto de parada, para lograr la generación de señales de negociación y la automatización completa de la salida de la parada.
El canal Donchian es un indicador de canal dinámico que forma un trazado ascendente y descendente mediante el cálculo de los precios máximos y mínimos de los últimos períodos. El trazado ascendente es el precio más alto en los últimos n períodos y el trazado descendente es el precio más bajo en los últimos n períodos. El canal Donchian refleja el rango de fluctuación del mercado y las tendencias potenciales.
La estrategia establece un ciclo de canales Donchian de 20 días. Cuando el precio se rompe en la trayectoria ascendente, se produce una señal de compra, lo que indica que el precio entra en una tendencia alcista; cuando el precio se rompe en la trayectoria descendente, se produce una señal de venta, lo que indica que el precio entra en una tendencia descendente.
El indicador ATR es la abreviatura de Average True Range, que refleja la amplitud de fluctuación promedio de un activo en un período reciente. El ATR puede adaptarse automáticamente a los cambios en la frecuencia de las fluctuaciones del mercado, lo que refleja con mayor precisión la amplitud real de los últimos períodos del mercado.
La estrategia utiliza el indicador ATR de 20 días para calcular el punto de parada. Cuanto mayor sea el valor de ATR, mayor será la volatilidad del mercado y más lejos estará el punto de parada establecido. Esto puede evitar que el punto de parada se acerque demasiado y sea golpeado por las pequeñas fluctuaciones del mercado.
Cuando el precio cruza la línea media del canal Donchian hacia arriba, genera una señal de compra; cuando el precio cruza la línea media del canal Donchian hacia abajo, genera una señal de venta. Esto indica que el precio comienza a romper el canal y entrar en una nueva ronda de tendencia.
Al mismo tiempo, en combinación con el punto de pérdida calculado por el indicador ATR, cuando la pérdida alcanza el punto de pérdida, la pérdida activa se retira de la posición para controlar el riesgo.
El canal Donchian es un indicador de seguimiento de tendencias. La estrategia permite seguir automáticamente los cambios en las tendencias del mercado mediante el ajuste dinámico del rango del canal, lo que genera señales de compra y venta. Esto evita la subjetividad del juicio artificial y hace que la generación de señales de negociación sea más objetiva y confiable.
La estrategia contiene reglas de venta y ventaja al mismo tiempo, lo que permite el comercio bilateral. Esto expande el entorno de mercado al que se aplica la estrategia y permite obtener ganancias tanto en alzas como en caídas.
El mecanismo de stop loss combinado con el indicador ATR permite un control efectivo de las pérdidas de una sola operación. Esto es especialmente importante para el trading cuantitativo, ya que puede garantizar que la estrategia obtenga un rendimiento positivo estable en eventos de alta probabilidad.
La estrategia de canal de Donchian tiene un cierto riesgo de cobertura. Cuando el precio se invierte y vuelve a entrar en el canal, se producen grandes pérdidas si no se detiene. Esta estrategia reduce este riesgo a través del mecanismo de detención de pérdidas del indicador ATR.
El indicador del canal Donchian produce una señal errónea cuando la tendencia se invierte. Los usuarios deben estar atentos a la situación del mercado y evitar seguir a ciegas cuando la tendencia se invierte.
Los parámetros de ciclo de la parada de los canales Donchian y ATR requieren pruebas de optimización, de lo contrario se producen demasiadas señales de error. En esta estrategia se utilizan parámetros de experiencia, los parámetros reales requieren optimización de parámetros basados en datos históricos.
Se pueden agregar indicadores de tendencia como las medias móviles para evitar señales erróneas en los puntos de inflexión de tendencia significativos.
Optimización de los canales Donchian y los parámetros ATR para encontrar la combinación óptima de parámetros. La reducción adecuada del ciclo de los canales permite capturar más rápidamente los giros de tendencia.
En combinación con otros indicadores auxiliares de juicio, como la forma de la línea K, el cambio en el volumen de la transacción, etc., se puede mejorar la precisión de la señal y reducir la inversión innecesaria.
La estrategia de ruptura de canal dinámico localiza la dirección de la tendencia a través de la subida y bajada del canal Donchian y genera señales de negociación. La estrategia tiene un alto grado de automatización y es adecuada para el comercio cuantitativo. El espacio de optimización está en la optimización de la selección de parámetros y en combinación con otros indicadores auxiliares para mejorar la precisión de la señal.
/*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)