리소스 로딩... 로딩...

RSI50_EMA 장기 전용 전략

저자:차오장, 날짜: 2024-05-11 11:49:29
태그:EMARSIATR

img

전반적인 설명

RSI50_EMA 장기전략이라는 전략은 주로 거래 결정을 내리기 위해 상대적 강도 지수 (RSI) 와 기하급수적 이동 평균 (EMA) 두 가지 기술 지표의 교차 신호를 사용합니다. 가격이 아래에서 EMA의 상위 대역을 넘어서고 RSI가 50보다 높을 때 긴 포지션을 열고, 가격이 상위에서 EMA의 하위 대역을 넘어서거나 RSI가 50 이하로 떨어지면 모든 긴 포지션을 닫습니다. 이 전략은 단지 긴 포지션을 취하고 짧은 것이 아니라 트렌드를 따르는 전략입니다.

전략 원칙

  1. EMA와 ATR을 계산해서 EMA의 상단과 하단 범위를 얻습니다.
  2. RSI를 계산하세요.
  3. 닫기 가격이 EMA 상단 범위를 넘어서고 RSI가 50을 넘으면 긴 포지션을 개척합니다.
  4. 닫기 가격이 EMA의 하단 범위를 넘거나 RSI가 50 이하로 떨어지면 모든 긴 포지션을 닫습니다.
  5. 길지만 짧지 않습니다.

전략적 장점

  1. 강한 시장에서 사용하기에 적합하며, 강한 주식의 상승 추세를 효과적으로 파악 할 수 있습니다.
  2. 트렌드 신호를 더 잘 확인하고 신호 신뢰성을 향상시키기 위해 EMA와 RSI 지표를 모두 사용합니다.
  3. 포지션 관리는 % 스톱 로스를 사용하며 위험은 통제 가능합니다.
  4. 코드 로직은 명확하고 간단하고 이해하기 쉽고 구현하기 쉽습니다.

전략 위험

  1. 빈번한 거래와 변동성 있는 시장에서 큰 마감률을 가진
  2. 잘못된 매개 변수 선택은 신호 실패로 이어질 수 있습니다. 예를 들어, EMA 길이의 잘못된 선택은 트렌드 판단에 차질을 초래할 것입니다. RSI 상부 및 하부 제한의 잘못된 선택은 바람직하지 않은 입문 및 출구 지점으로 이어질 것입니다.
  3. 전략은 일방적인 상승 추세를 파악할 수 있을 뿐이고, 하락 추세와 변동 추세를 파악할 수 없기 때문에 기회를 놓칠 수 있습니다.

전략 최적화 방향

  1. 트렌드 확인 지표, 예를 들어 MACD를 도입하여 트렌드 판단의 정확성을 향상시킵니다.
  2. RSI를 위한 매개 변수를 최적화하거나, RSI의 오차와 신호에 대한 다른 개선을 도입합니다.
  3. 리스크 통제를 개선하기 위해 후속 스톱 손실 또는 변동성 스톱 손실을 추가하는 것을 고려하십시오.
  4. 변동 시장과 하락 추세에 반전 진입 논리를 추가하는 것을 고려하십시오.

요약

RSI50_EMA 장기전략은 RSI와 EMA를 기반으로 한 간단하고 사용하기 쉬운 추세 추후 전략으로 일방적 상승 추세에 사용할 수 있습니다. 전략은 명확한 논리와 명백한 장점을 가지고 있지만 몇 가지 단점과 위험을 가지고 있습니다. 더 많은 보조 지표, 최적화 매개 변수, 위험 통제 및 기타 조치를 개선함으로써 전략의 안정성과 수익성이 더욱 향상 될 수 있습니다. 그러나 실제 응용에서는 시장 특성과 개인 위험 선호도 및 기타 요인에 따라 유연하게 조정하고 개선해야합니다.


/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("RSI50_EMA Long Only Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input(11, type=input.integer, minval=1, title="Length")
mul = input(2, type=input.float, minval=0, title="Multiplier")
rsicap = input(50, type=input.integer, minval=1, title="rsicap")
rsi_1 = rsi(close,20)
price = sma(close, 2)
average = ema(close, len)
diff = atr(len) * mul
bull_level = average + diff
bear_level = average - diff
bull_cross = crossover(price, bull_level) 
RENTRY = crossover(rsi_1,rsicap)
bear_cross = crossover(bear_level, price)
EXIT = crossunder(rsi_1,50)

strategy.entry("Buy", strategy.long, when=bull_cross)
strategy.close("Buy", when=bear_cross)  //strategy.entry("Sell", strategy.short, when=bear_cross)
if (RENTRY)
    strategy.entry("RSI", strategy.long, when=bull_cross)
if (EXIT)
    strategy.close("RSICLose", when=bull_cross)  //strategy.entry("Sell", strategy.short, when=bear_cross)

plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)


관련

더 많은