개장가 채널을 기반으로 한 트렌드 전략


생성 날짜: 2023-12-18 12:35:42 마지막으로 수정됨: 2023-12-18 12:35:42
복사: 1 클릭수: 624
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

개장가 채널을 기반으로 한 트렌드 전략

개요

채널 트렌드 전략은 오픈 가격과 Donchian 채널을 기반으로 한 트렌드 추적 전략이다. Donchian 채널이 형성된 가격 채널과 결합하여 현재 가격에서 오픈 가격을 기준으로 한 트렌드 라인을 그리는 것으로 트렌드 방향을 식별한다. 가격이 채널을 뚫을 때 거래 신호를 발생시킨다.

전략 원칙

  1. 시간주기를 선택하여 (일계, 주계 등) 그 주기의 오픈 가격을 기준 가격으로 얻습니다.

  2. 돈치안 채널 지표를 사용하여 해당 주기 최고 가격과 최저 가격의 N일 이동 평균을 계산하여 가격 채널을 형성한다.

  3. 현재의 종전 가격에서 그 주기의 개시 가격으로 직선을 그리는 것이 트렌드 기준선이다.

  4. 종전 가격이 Donchian 통로 상단을 돌파했을 때, 구매 신호를 발생; 종전 가격이 통로 하단을 돌파했을 때, 판매 신호를 발생

  5. 스톱 스톱 손실 전략을 설정하십시오.

이 전략은 기준선과 통로선의 조합을 통해 트렌드 방향을 고정하고, 트렌드가 존재할 때 지속적인 신호를 생성하며, 일부 소음을 필터링합니다.

우위 분석

  1. 개시 가격을 전략적 기준으로 사용하여, 다른 기간 동안의 가격 추세 변화를 효과적으로 판단할 수 있다.

  2. 돈치안 채널 지표는 단기 변동이 기준선에 미치는 영향을 효과적으로 제거할 수 있다.

  3. 기준선과 Donchian 통로와 결합하여, 트렌드가 명확할 때 신호를 생성할 수 있으며, 가짜 돌파구를 피할 수 있다.

  4. 자동으로 스톱포드 스톱로스 위치를 설정하여 수익의 일부를 잠금하고 위험을 제어 할 수 있습니다.

  5. 이 전략은 적은 매개 변수, 구현의 어려움은 높지 않으며, 쉽게 습득할 수 있다.

위험 분석

  1. “이런 일이 벌어진다면, 우리는 더 많은 무효 신호를 만들어 낼 수 있다”.

  2. 만약 변수가 잘못 설정되어, 스톱피치가 너무 가까워지면, 조기 스톱피드가 출전할 수 있다.

  3. 이 전략은 추세에 의존하고, FREQ 전략에는 적합하지 않다.

  4. 특이한 상황에서는, 가격이 직접적으로 스톱로스 라인을 뚫고 큰 손실을 초래할 수 있다.

최적화 방향

  1. 다양한 주기 변수를 테스트할 수 있으며, 신호를 생성하는 가장 순조로운 주기를 선택한다.

  2. Donchian 통로 매개 변수를 조정하여 더 적합한 통로 폭을 설정할 수 있습니다.

  3. 다양한 품종 특성에 따라 스티치 스티드 손실 비율을 최적화 할 수 있습니다.

  4. 다른 지표 필터링을 추가하여 비정상적인 상황에서의 신호 발생을 방지할 수 있습니다.

요약하다

채널 트렌드 전략은 오픈 가격과 Donchian 채널이 형성된 채널 라인을 활용하여 가격 트렌드 방향을 식별한다. 그것은 읽기 쉬운 지속적인 신호를 생성할 수 있으며, 스톱 스톱을 설정하여 수익을 잠금하고 위험을 제어하는 매우 실용적인 트렌드 추적 전략이다. 매개 변수를 계속 테스트하고 최적화함으로써 이 전략은 다양한 품종에 적용될 수 있으며, 트렌드 상황에서 더 나은 수익을 얻을 수 있다.

전략 소스 코드
/*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="")