ATRSL 후속 중지와 함께 Donchian 채널 브레이크업 전략

저자:차오장날짜: 2024-03-22 16:13:58
태그:

img

전략 개요

돈치안 채널 브레이크아웃 전략 (Donchian Channel Breakout Strategy) 은 트렌드를 따르는 양적 거래 전략이다. 이 전략은 ATRSL 트레일링 스톱을 사용하여 리스크를 관리하는 동안 시장 트렌드를 캡처하기 위해 돈치안 채널을 사용합니다. 가격이 돈치안 채널의 상단 밴드 이상으로 넘으면 전략은 긴 포지션으로 진입합니다. 가격이 ATRSL 트레일링 스톱 라인 아래에 떨어지면 전략은 포지션을 닫습니다.

전략 원칙

  1. 치안 채널을 계산합니다: 사용자 정의를 기반으로donLength매개 변수, 과거 최고 최고와 최저 낮은 계산donLength상단역으로donUpper그리고 하단 밴드donLower각각 도니치안 채널의 중간선donBasis상단과 하단 간격의 평균입니다.
  2. ATRSL 트레일링 스톱 계산: 사용자 정의 기준AP2그리고AF2매개 변수, ATR 값을 계산SL2. 다음, 동적으로 트레일링 정지 가격을 조정Trail2현재 폐쇄 가격 사이의 관계SC그리고 이전 트레일링 스톱 가격Trail2[1].
  3. 진입 조건: 현재 닫기 가격이 돈치안 채널의 상단 범위를 넘을 때 긴 포지션을 입력합니다.
  4. 출구 조건: 현재 폐쇄 가격이 ATRSL 후속 스톱 라인을 넘으면 포지션을 닫습니다.

전략적 장점

  1. 트렌드 추적: 트렌드 방향을 결정하기 위해 돈치안 채널을 사용하여 전략은 시장 트렌드를 효과적으로 포착 할 수 있습니다.
  2. 동적 스톱 로스: ATRSL 트레일링 스톱은 시장 변동성에 따라 스톱 로스 수준을 동적으로 조정하여 위험을 관리하는 데 도움이됩니다.
  3. 파라미터 유연성: 사용자는 파라미터를 조정할 수 있습니다.donLength, AP2, 그리고AF2그들의 필요에 따라 전략 성과를 최적화합니다.

전략 위험

  1. 매개 변수 위험: 다른 매개 변수 설정은 전략 성능에 상당한 차이를 초래할 수 있으며 철저한 백테스팅과 매개 변수 최적화를 요구합니다.
  2. 시장 위험: 시장의 불안정성 또는 트렌드 반전 시 전략은 상당한 마이너스를 경험할 수 있습니다.
  3. 슬리퍼 및 거래 비용: 빈번한 거래는 높은 슬리퍼 및 거래 비용을 초래하여 전략 수익성에 영향을 줄 수 있습니다.

최적화 방향

  1. 트렌드 필터를 추가합니다. 엔트리 조건에서 ADX와 같은 지표를 추가하여 트렌드 강도를 평가하고 트렌드가 강할 때만 포지션을 입력하여 엔트리 품질을 향상시킬 수 있습니다.
  2. 스톱 로스를 최적화 합니다. 백분율 기반 스톱 로스 또는 ATR 스톱 로스 등 다른 스톱 로스 방법을 실험하거나 여러 스톱 로스 접근 방식을 결합하여 스톱 로스 유연성을 높여줍니다.
  3. 포지션 크기를 포함합니다: 시장 변동성과 계정 위험을 기반으로 포지션 크기를 동적으로 조정하여 위험 노출을 관리합니다.

요약

돈치안 채널 브레이크아웃 전략 (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")

더 많은