이중 돈치안 채널 브레이크아웃 전략 (Double Donchian Channel Breakout strategy) 은 돈치안 채널을 기반으로 한 양적 거래 전략이다. 이 전략은 저위험 고수익 브레이크아웃 거래를 달성하기 위해 빠르고 느린 돈치안 채널의 조합을 사용합니다. 가격이 느린 채널을 깨고 스톱 손실로 빠져나갈 때 길고 짧습니다. 또는 가격이 빠른 채널을 통해 다시 깨지면 이익을 취합니다.
이 전략은 주로 두 개의 돈치안 채널을 이용합니다. 더 긴 기간을 가진 느린 채널과 짧은 기간을 가진 더 빠른 채널을 포함합니다.
느린 돈치안 채널은 더 긴 기간을 가지고 있으며 이는 시장 소음을 효과적으로 필터링하여 브레이크아웃 신호를 더 신뢰할 수 있습니다. 가격이 느린 채널의 상단 범위를 넘어서면 전략은 길고 가격이 하단 범위를 넘어서면 짧습니다.
빠른 돈치안 채널은 짧은 기간을 가지고 있으며 단기 가격 변동에 신속하게 반응 할 수 있습니다. 가격이 이 채널을 통해 다시 깨지면 트렌드 역전 신호를 보내고 스톱 로스 또는 수익을 취하기 위해 출구를 촉구합니다.
또한, 변동성 조건은 엔트리 신호를 필터로 설정됩니다. 이 전략은 가격 움직임이 미리 결정된 퍼센트 임계치를 초과 할 때만 엔트리를 유발합니다. 이는 범위 제한 통합 중 빈번한 윙스를 피합니다.
이러한 위험은 매개 변수 최적화, 합리적인 스톱 로스 배치, 이벤트 인식 등으로 줄일 수 있습니다.
이중 돈치안 채널 브레이크아웃 전략은 전반적으로 비교적 안정적이고 신뢰할 수 있는 트렌드 추후 전략이다. 트렌드 캡처와 리스크 제어 두 가지의 장점을 결합하여 다양한 주식 거래 전략의 기본 모듈로 적합합니다. 매개 변수 조정 및 논리 정밀화로 인해 성능의 추가 개선이 예상 될 수 있습니다.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © omererkan //@version=5 strategy(title="Double Donchian Channel Breakout", overlay=true, initial_capital = 1000, commission_value = 0.05, default_qty_value = 100, default_qty_type = strategy.percent_of_equity) slowLen = input.int(50, title="Slow Donchian") fastLen = input.int(30, title="Fast Donchian") volatility = input.int(3, title="Volatility (%)") longProfitPerc = input.float(2, title="Long TP1 (%)", minval=0.0, step=0.1) * 0.01 shortProfitPerc = input.float(2, title="Short TP1 (%)", minval=0.0, step=0.1) * 0.01 TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)") ubSlow = ta.highest(close, slowLen)[1] lbSlow = ta.lowest(close, slowLen)[1] ubFast = ta.highest(close, fastLen)[1] lbFast = ta.lowest(close, fastLen)[1] plot(ubSlow, color=color.green, linewidth=2, title="Slow DoCh - Upperband") plot(lbSlow, color=color.green, linewidth=2, title="Slow DoCh - Lowerband") plot(ubFast, color=color.blue, linewidth=2, title="Fast DoCh - Upperband") plot(lbFast, color=color.blue, linewidth=2, title="Fast DoCh - Lowerband") fark = (ubSlow - lbSlow) / lbSlow * 100 longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) longCondition = ta.crossover(close, ubSlow) and fark > volatility if (longCondition) strategy.entry("Long", strategy.long) shortCondition = ta.crossunder(close, lbSlow) and fark > volatility if (shortCondition) strategy.entry("Short", strategy.short) if strategy.position_size > 0 and ta.crossunder(close, lbFast) strategy.close("Long", "Close All") if strategy.position_size < 0 and ta.crossover(close, ubFast) strategy.close("Short", "Close All") // Take Profit if strategy.position_size > 0 strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice) if strategy.position_size < 0 strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)