
La stratégie de rupture de canal adaptative (Adaptive Channel Breakout Strategy) est une stratégie de tendance qui suit les canaux de prix du marché. Elle détermine les canaux de prix en calculant les prix les plus élevés et les plus bas d’un cycle donné et émet des signaux de transaction lorsque les prix franchissent les canaux.
L’avantage de cette stratégie est qu’elle peut s’adapter automatiquement aux changements du marché, filtrer le bruit en élargissant les canaux et générer des signaux de transaction lorsque la tendance est claire. Cependant, il existe également un risque de poursuite des hauts et des bas. Par l’optimisation des paramètres, les transactions inutiles peuvent être réduites et les taux de profit augmentés.
Cette stratégie est basée sur la théorie des ruptures de canaux. Elle calcule simultanément les prix les plus élevés et les plus bas de deux groupes de cycles différents (longueur d’entrée et de sortie) pour former des canaux. Un signal est émis lorsque le prix dépasse le canal.
En particulier, la stratégie calcule d’abord le prix le plus élevé et le prix le plus bas de 20 cycles (longueur d’entrée en bourse) pour former un canal de prix. Ensuite, elle calcule le prix le plus élevé et le prix le plus bas de 10 cycles (longueur de sortie en bourse).
La stratégie envoie un signal de transaction lorsque le prix franchit le canal, ce qui indique que la tendance est en train de se former. En même temps, le stop loss line s’ajuste au changement de prix, afin de bloquer les bénéfices et d’éviter les pertes.
La stratégie présente principalement les risques suivants:
La stratégie a également la possibilité d’optimiser:
L’idée générale de la stratégie de rupture de canal auto-adaptative est claire et a une forte viabilité. Elle est capable de suivre automatiquement les changements du marché et de générer des signaux de transaction lorsque des tendances se forment.
/*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)