돈치안 채널 브레이크아웃 전략 (Donchian Channel Breakout Strategy) 은 트렌드를 따르는 양적 거래 전략이다. 이 전략은 ATRSL 트레일링 스톱을 사용하여 리스크를 관리하는 동안 시장 트렌드를 캡처하기 위해 돈치안 채널을 사용합니다. 가격이 돈치안 채널의 상단 밴드 이상으로 넘으면 전략은 긴 포지션으로 진입합니다. 가격이 ATRSL 트레일링 스톱 라인 아래에 떨어지면 전략은 포지션을 닫습니다.
donLength
매개 변수, 과거 최고 최고와 최저 낮은 계산donLength
상단역으로donUpper
그리고 하단 밴드donLower
각각 도니치안 채널의 중간선donBasis
상단과 하단 간격의 평균입니다.AP2
그리고AF2
매개 변수, ATR 값을 계산SL2
. 다음, 동적으로 트레일링 정지 가격을 조정Trail2
현재 폐쇄 가격 사이의 관계SC
그리고 이전 트레일링 스톱 가격Trail2[1]
.donLength
, AP2
, 그리고AF2
그들의 필요에 따라 전략 성과를 최적화합니다.돈치안 채널 브레이크아웃 전략 (Donchian Channel Breakout Strategy) 은 돈치안 채널을 사용하여 트렌드를 캡처하고 ATRSL 트레일링 스톱으로 위험을 관리하는 고전적인 트렌드 추적 전략이다. 전략의 장점은 간단하고 명확한 논리, 구현 용이성 및 최적화 잠재력이다. 그러나 단점으로는 불안정한 시장과 트렌드 역전 중 낮은 성능과 전략 성능에 대한 매개 변수 설정의 중요한 영향을 포함한다. 실제 응용에서는 트렌드 필터를 추가하고, 스톱 로스를 최적화하고, 안정성과 수익성을 향상시키기 위해 포지션 사이징 모듈을 통합하여 전략을 향상시킬 수 있다. 동시에, 거래 빈도와 전략 비용을 제어하고, 시장 특성과 개인적인 위험 선호도에 따라 매개 변수를 유연하게 조정하는 것이 중요합니다.
/*backtest start: 2023-03-16 00:00:00 end: 2024-03-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Stock Trend USE THIS", overlay = true) donLength = input(100, minval=1) //Donchian Long donLower = lowest(donLength) donUpper = highest(donLength) donBasis = avg(donUpper,donLower) // ATRSL SC = close // Slow Trail // AP2 = input(10, title="Slow ATR period") // ATR Period AF2 = input(3, title="Slow ATR multiplier") // ATR Factor SL2 = AF2 * atr(AP2) // Stop Loss Trail2 = 0.0 iff_3 = SC > nz(Trail2[1], 0) ? SC - SL2 : SC + SL2 iff_4 = SC < nz(Trail2[1], 0) and SC[1] < nz(Trail2[1], 0) ? min(nz(Trail2[1], 0), SC + SL2) : iff_3 Trail2 := SC > nz(Trail2[1], 0) and SC[1] > nz(Trail2[1], 0) ? max(nz(Trail2[1], 0), SC - SL2) : iff_4 // Long and Short Conditions longCondition = (crossover(close,donUpper[1])) // Close Conditions closeLongCondition = crossunder(close,Trail2) // Strategy logic if (longCondition) strategy.entry("Long", strategy.long) alert("Open Long position") if (closeLongCondition) strategy.close("Long") alert("Close Long position") // Plot Donchian l = plot(donLower, color=color.blue) u = plot(donUpper, color=color.blue) plot(donBasis, color=color.orange) fill(u, l, color=color.blue) plot(Trail2, color=color.blue, title="ATRSL Trail")