
적응 채널 브레이크아웃 전략 (Adaptive Channel Breakout Strategy) 은 시장 가격 채널을 추적하는 트렌드 전략이다. 그것은 지정된 주기의 최고 가격과 최저 가격을 계산하여 가격 채널을 결정하고, 가격이 채널을 뚫을 때 거래 신호를 발산한다.
이 전략의 장점은 시장의 변화에 자동으로 적응할 수 있고, 채널을 확장하여 잡음을 필터링하고, 트렌드가 명확할 때 거래 신호를 생성할 수 있다는 것입니다. 그러나, 상승과 하락을 쫓는 위험도 있습니다. 최적화 파라미터를 통해 불필요한 거래를 줄이고, 수익률을 높일 수 있습니다.
이 전략은 채널 브레이크 이론에 기반한다. 그것은 동시에 두 개의 다른 주기 (시장 진입 길기와 출구 길) 의 최고 가격과 최저 가격을 계산하여 채널을 형성한다. 가격이 채널을 초과할 때 신호가 발생한다.
구체적으로, 전략은 먼저 20주기 (시장 진입 길이) 의 최고 가격 upper과 최저 가격 lower을 계산하여 가격 통로를 형성한다. 그리고 나서 10주기 (시장 진출 길이) 의 최고 가격 sup과 최저 가격 sdown을 계산한다. 구매 신호가 촉발되면 (가격이 상반되는 경우) 10주기의 최저 가격 sdown으로 스톱 라인을 한다. 판매 신호가 촉발되면 (가격이 하락하는 경우) 10주기의 최고 가격 sup로 스톱 라인을 종료한다.
가격이 채널을 뚫을 때, 트렌드가 형성되고 있음을 나타냅니다. 이 때 전략은 거래 신호를 발산합니다. 동시에, 스톱 스톱 라인은 가격 변화에 따라 조정되어 이익을 잠금하고 손실을 방지합니다.
이 전략에는 다음과 같은 위험들이 있습니다.
이 전략에는 다음과 같은 최적화 방안이 있습니다.
적응형 채널 브레이크 전략은 전체적인 아이디어가 명확하고 강력한 실행성을 가지고 있다. 그것은 시장의 변화를 자동으로 추적할 수 있고, 트렌드가 형성될 때 거래 신호를 생성한다. 동시에 두 개의 사이클의 채널과 스톱 스톱 메커니즘을 설정한다.
/*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)