
Adaptive Channel Breakout Strategy adalah strategi trend yang mengesan saluran harga pasaran. Ia menentukan saluran harga dengan mengira harga tertinggi dan terendah dalam kitaran yang ditetapkan, dan menghantar isyarat perdagangan apabila harga menembusi saluran.
Kelebihan strategi ini ialah ia dapat menyesuaikan diri dengan perubahan pasaran secara automatik, menyaring kebisingan dengan memperluaskan saluran, dan menghasilkan isyarat perdagangan apabila trend jelas. Tetapi ada risiko mengejar kenaikan dan penurunan. Dengan mengoptimumkan parameter, ia dapat mengurangkan perdagangan yang tidak perlu dan meningkatkan kadar keuntungan.
Strategi ini adalah berdasarkan teori penembusan saluran. Ia mengira harga tertinggi dan terendah pada masa yang sama dalam dua set kitaran yang berbeza (panjang masuk dan panjang keluar), membentuk saluran.
Khususnya, strategi ini mengira harga tertinggi dan terendah 20 kitaran ((panjang masa masuk ke pasaran) untuk membentuk saluran harga. Kemudian ia mengira harga tertinggi dan terendah 10 kitaran ((panjang masa keluar dari pasaran).
Apabila harga menembusi saluran, menunjukkan bahawa trend sedang terbentuk, strategi ini akan menghantar isyarat perdagangan. Pada masa yang sama, garis hentian dan hentian juga akan disesuaikan dengan perubahan harga, untuk mengunci keuntungan dan mengelakkan kerugian.
Strategi ini mempunyai risiko utama:
Strategi ini juga mempunyai ruang untuk pengoptimuman seperti berikut:
Strategi penembusan saluran penyesuaian sendiri mempunyai pemikiran keseluruhan yang jelas dan kebolehan yang kuat. Ia dapat menjejaki perubahan pasaran secara automatik dan menghasilkan isyarat perdagangan apabila trend terbentuk. Ia juga menetapkan dua set saluran dan mekanisme kawalan risiko penghadaman berhenti.
/*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)