이동평균선과 RSI를 기반으로 한 기회추종 전략


생성 날짜: 2024-01-18 15:46:35 마지막으로 수정됨: 2024-01-18 15:46:35
복사: 0 클릭수: 556
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이동평균선과 RSI를 기반으로 한 기회추종 전략

개요

이 전략은 이동 평균선, 헐 이동 평균선, 상대적으로 강한 지수 (RSI) 를 기반으로 거래 신호를 구축하고, 전형적인 기회 추적 전략에 속한다. 그것은 자동으로 시장 기회를 식별하고, 장거리 전환을 할 수 있으며, 중·단기 거래에 적용된다.

전략 원칙

  1. 50주기의 지수 이동 평균 ((EMA) 을 추세를 판단하는 평균 지표로 계산한다.
  2. 7일간의 헐 이동 평균을 더 민감하고 선입장 평균으로 계산하고, EMA와 함께 골드 포크를 형성한다.
  3. RSI의 오버 바이 라인과 오버 소드 라인을 각각 60과 45로 설정합니다. RSI가 60보다 높으면 오버 바이 신호이며, RSI가 45보다 낮으면 오버 소드 영역입니다.
  4. 오버 바이가 동시 EMA를 상향으로 통과할 때, 하위 신호를 니다.
  5. 오버셀 영역이 동시적으로 아래로 EMA를 통과할 때, 더 많은 신호를 다.

전략적 이점

  1. EMA, Hull, RSI의 3가지 지표를 조합하여 시장의 추세, 동력, 과매도 과매도 영역을 종합적으로 판단하여 신호의 정확성을 향상시킵니다.
  2. EMA는 중장기 트렌드를 판단하고, 헐은 단기 선도적 지표를 판단하고, RSI는 과매매 지역을 판단하고, 다른 주기적 지표는 다양한 수준의 거래 기회를 잡기 위해 사용된다.
  3. 거래 신호는 트렌드, 동력 및 오버 바이 오버 셀 영역의 세 가지 조건을 동시에 충족 한 후에 발동되며, 가짜 신호를 효과적으로 필터링 할 수 있습니다.

전략적 위험

  1. 3가지 지표의 조합으로 판단하면 거래 기회를 놓칠 수 있습니다.
  2. EMA와 헐의 주기적 설정은 반복 테스트 최적화를 필요로 하며, 부적절한 매개 변수 선택은 응답 질에 영향을 줄 수 있다.
  3. RSI의 변수 또한 조정할 필요가 있으며, 다른 주식과 외환은 과매매에 대한 판단 기준이 달라진다.

전략 최적화

  1. 더 많은 보조 지표들을 도입할 수 있습니다. 예를 들어, 브린 라인, KC 라인 등이 있습니다.
  2. 다양한 품종 설정에 따라 다양한 파라미터 조합을 최적화할 수 있다.
  3. 고위 수준의 시간적 순환을 통해 의사결정을 할 수 있고, 단기적인 가짜 돌파구에 의해 오해받지 않습니다.
  4. 리스크 관리를 위한 Stop Loss 전략이 도입될 수 있습니다.

요약하다

이 전략은 EMA, Hull 및 RSI의 3가지 지표의 조합을 사용하여 중·단기 거래 기회를 포착한다. 전략 신호의 생성은 트렌드, 동력 및 오버 구매 오버 판매의 3차원을 충족해야 하며, 따라서 많은 가짜 신호를 필터링한다. 또한, 변수 최적화 및 더 많은 보조 지표를 도입하는 등의 방법으로 전략의 안정성과 거래 성능을 더욱 향상시킬 수 있다.

전략 소스 코드
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bitduke

//@version=4
strategy(shorttitle="EHR", title="Simple EMA_Hull_RSI", overlay=false, 
     calc_on_every_tick=false, pyramiding=0, default_qty_type=strategy.cash, 
     default_qty_value=1000, currency=currency.USD, initial_capital=1000,
     commission_type=strategy.commission.percent, commission_value=0.075)

// EMA
len = input(minval=1, title="EMA Length", defval=50)
src = input(close, title="EMA Source")
final_ema = ema(src, len)
plot(final_ema, color=color.red, title="EMA")

overbought = input(60, title="overbought value")
oversold = input(45, title="oversold value")

overbought_signal = rsi(close, 14) > overbought
oversold_signal = rsi(close, 14) < oversold
barcolor(overbought_signal ? color.black : na)
barcolor(oversold_signal ? color.blue : na)
// Hull MA
n = input(title="Hull Length", defval=7)
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))

n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))

n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?color.green:color.red
ma=plot(n1,color=c)

// Strategy Logic
longCondition =  overbought_signal and crossover(n1,final_ema) 
shortCondition = oversold_signal and crossover(final_ema,n1) 

strategy.entry("EHR_Long", strategy.long, when=longCondition)
strategy.entry("EHR_Short", strategy.short, when=shortCondition)