
La estrategia de ruptura de canal adaptativa es una estrategia de tendencia que sigue el canal de precios del mercado. Determina el canal de precios calculando los precios más altos y más bajos de un ciclo determinado y emite una señal de negociación cuando el precio rompe el canal.
La ventaja de esta estrategia es que puede adaptarse automáticamente a los cambios en el mercado, filtrar el ruido mediante la ampliación de los canales y generar señales de negociación cuando la tendencia es clara. Pero también existe el riesgo de perseguir altibajos.
La estrategia se basa en la teoría de la ruptura de canal. Se calcula simultáneamente el precio más alto y el precio más bajo de dos conjuntos de diferentes períodos (la longitud de entrada y la longitud de salida), formando un canal. Se produce una señal cuando el precio supera el canal.
En concreto, la estrategia calcula primero los máximos y mínimos precios de los 20 ciclos (la longitud de la entrada en el mercado) para formar un canal de precios. Luego calcula los máximos y mínimos precios de los 10 ciclos (la longitud de la salida del mercado).
La estrategia emite una señal de negociación cuando el precio rompe el canal, lo que indica que la tendencia se está formando. Al mismo tiempo, la línea de parada y pérdida también se ajusta a los cambios en el precio para bloquear las ganancias y evitar las pérdidas.
El principal riesgo de esta estrategia es:
La estrategia también tiene el siguiente espacio de optimización:
La estrategia de ruptura de canal de auto-adaptación tiene una idea general clara y una gran viabilidad. Es capaz de seguir automáticamente los cambios en el mercado y generar señales de negociación cuando se forma una tendencia. Al mismo tiempo, establece dos conjuntos de ciclos de control de riesgos de canal y mecanismo de parada de pérdidas.
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Turtle Trade Channels Strategy", shorttitle="TTCS", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
length = input(20,"Entry Length", minval=1)
len2=input(10, "Exit Length", minval=1)
lower = lowest(length)
upper = highest(length)
up=highest(high,length)
down=lowest(low,length)
sup=highest(high,len2)
sdown=lowest(low,len2)
K1=barssince(high>=up[1])<=barssince(low<=down[1]) ? down : up
K2=iff(barssince(high>=up[1])<=barssince(low<=down[1]),sdown,sup)
K3=iff(close>K1,down,na)
K4=iff(close<K1,up,na)
buySignal=high==upper[1] or crossover(high,upper[1])
sellSignal = low==lower[1] or crossover(lower[1],low)
buyExit=low==sdown[1] or crossover(sdown[1],low)
sellExit = high==sup[1] or crossover(high,sup[1])
strategy.entry("Buy", strategy.long, when = buySignal and barssince(buySignal) < barssince(sellSignal[1]))
strategy.entry("Sell", strategy.short, when = sellSignal and barssince(sellSignal) < barssince(buySignal[1]))
strategy.exit("Buy Exit", from_entry = "Buy", when = buyExit and barssince(buyExit) < barssince(sellExit[1]))
strategy.exit("Sell Exit", from_entry = "Sell", when = sellExit and barssince(sellExit) < barssince(buyExit[1]))
plot(K1, title="Trend Line", color=color.red, linewidth=2)
e=plot(K2, title="Exit Line", color=color.blue, linewidth=1, style=6)