채널 트렌드 전략

저자:차오장, 날짜: 2023-12-18 12:35:42
태그:

img

전반적인 설명

채널 트렌드 전략 (Channel Trend strategy) 은 오픈 가격과 돈치안 채널을 기반으로 하는 트렌드 다음 전략이다. 현재 가격에서 오픈 가격에 벤치 마크 된 트렌드 라인에 선을 그리면서 트렌드 방향을 파악하며, 돈치안 채널에 의해 형성된 가격 채널과 결합한다. 가격이 채널을 통과할 때 거래 신호가 생성된다.

전략 논리

  1. 시간 프레임 (일간, 주간 등) 을 선택하고 개시 가격을 기준 가격으로 얻습니다.

  2. 가장 높은 가격과 가장 낮은 가격의 N일 이동 평균을 도 채널 지표를 사용하여 계산하여 가격 채널을 형성합니다.

  3. 현재 종료 가격에서 그 시간 프레임의 시작 가격으로 직선을 그리며, 트렌드 벤치마크 라인으로 표시합니다.

  4. 닫기 가격이 돈치안 채널의 상위 대역을 넘을 때 구매 신호가 생성됩니다. 닫기 가격이 하위 대역을 넘을 때 판매 신호가 생성됩니다.

  5. 손해를 막고 수익을 창출하는 전략을 설정하세요.

벤치마크 라인과 채널 라인의 조합은 트렌드 방향으로 잠금되어 트렌드가 존재하는 경우 지속적인 신호를 생성하며 약간의 잡음을 필터링합니다.

이점 분석

  1. 개시 가격을 전략 벤치마크 라인으로 사용하면 다른 시간 프레임 내에서 가격 트렌드 변화를 효과적으로 결정할 수 있습니다.

  2. 돈치안 채널 지표는 벤치마크 라인에 대한 단기 변동의 영향을 효과적으로 제거 할 수 있습니다.

  3. 벤치마킹 라인과 돈치안 채널의 조합은 트렌드가 명확할 때 신호를 생성하여 잘못된 파장을 피할 수 있습니다.

  4. 자동적인 스톱 로스 및 취득 설정은 일부 수익을 차단하고 위험을 제어합니다.

  5. 이 전략은 몇 가지 매개 변수를 가지고 있으며 쉽게 실행됩니다.

위험 분석

  1. 범위에 묶인 시장에서 더 많은 유효하지 않은 신호를 생성할 수 있습니다.

  2. 매개 변수가 잘못 설정되면, 스톱 로스는 조기에 시작될 수 있습니다.

  3. 이 전략은 시장 트렌드에 더 의존하고 평균 역전 전략에는 적합하지 않습니다.

  4. 비정상적인 시장 상태에서는 가격이 스톱 로스 라인을 뚫고 직접적으로 큰 손실을 초래할 수 있습니다.

최적화 방향

  1. 다른 시간 프레임 매개 변수를 테스트하여 신호 생성에 가장 부드러운 것을 선택합니다.

  2. 더 적합한 채널 너비를 설정하기 위해 Donchian 채널의 매개 변수를 조정합니다.

  3. 다른 제품 특성에 따라 스톱 로스 및 수익률을 최적화합니다.

  4. 다른 지표 필터를 추가하여 비정상적인 시장 조건에서 생성되는 신호를 피합니다.

요약

채널 트렌드 전략은 개시 가격과 돈치안 채널에 의해 형성된 채널 라인을 활용하여 가격 트렌드 방향을 파악합니다. 읽기 쉬운 지속적인 신호를 생성하고 수익에 잠금하고 스톱 로스 및 수익 설정으로 위험을 제어하여 매우 실용적인 트렌드 다음 전략이됩니다. 지속적인 테스트와 매개 변수 최적화를 통해이 전략을 다른 제품에 적용하고 트렌딩 시장에서 좋은 수익을 얻을 수 있습니다.


/*backtest
start: 2023-11-17 00:00:00
end: 2023-12-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//
strategy("STR-TREND", overlay=true)

emax = ta.ema(close,1)
plot(emax,title="X-EMA",color=color.black,linewidth=2)

XDX = input.string(title="TIMELINE", defval="M")
xdaily = request.security(syminfo.tickerid, XDX, open,barmerge.gaps_off, barmerge.lookahead_on)
length = input.int(21, minval=1)
lower = ta.lowest(xdaily,length)
upper = ta.highest(xdaily,length)
XXX = close>upper?lower:upper
plot(XXX,title="STR-X",color=color.red,linewidth=4)

TAKEPROFIT = input.int(15,title="Take Profit %", minval=1)
SELLTAKEPROFIT = XXX * (1-(TAKEPROFIT/100))
BUYTAKEPROFIT = XXX * (1+(TAKEPROFIT/100))
TAKEPROFITX = close<XXX?SELLTAKEPROFIT:BUYTAKEPROFIT
plot(TAKEPROFITX,title="TAKE PROFIT",color=color.black,linewidth=1)


//////////////STRATEGY ///////////////////

buystat= ta.crossover(close,XXX) 
sellstat = ta.crossunder(close,XXX) 

plotshape(buystat==true, title='long', text='BUY', textcolor=color.new(color.white, 0), style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), size=size.tiny) 
plotshape(sellstat==true, title='short', text='SELL', textcolor=color.new(color.white, 0), style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), size=size.tiny) 

//////////////STRATEGY ///////////////////

strategy.entry("LONG", strategy.long, when = buystat==true, comment="")
strategy.exit("BUY TP", "LONG", qty_percent = 50 ,limit = BUYTAKEPROFIT)
strategy.close("LONG", when = sellstat==true, comment="")

strategy.entry("SHORT", strategy.short, when = sellstat==true, comment="")
strategy.exit("SELL TP", "SHORT", qty_percent = 50 ,limit = SELLTAKEPROFIT)
strategy.close("SHORT", when = buystat==true , comment="")








더 많은