RSI 이동 평균 크로스오버 트렌드 전략

저자:차오장, 날짜: 2023-11-28 17:03:56
태그:

img

전반적인 설명

RSI 이동 평균 크로스오버 트렌드 전략은 트렌드를 결정하고 거래 신호를 발행하기 위해 RSI 지표의 이동 평균 크로스오버 신호를 사용하는 전략이다. 이 전략은 또한 가격 EMA를 통합하여 가격이 EMA보다 높을 때만 구매 신호를 발행합니다.

전략 논리

이 전략의 핵심 지표는 RSI입니다. 그것은 RSI의 EMA와 SMA를 모두 계산합니다. 구매 신호는 RSI EMA가 SMA보다 높고 가격이 EMA보다 높을 때만 발급됩니다. 판매 신호는 RSI EMA가 트렌드를 따라 SMA 아래로 떨어지면 발급됩니다.

RSI 지표는 시장에서 과반 구매 및 과반 판매 조건을 효과적으로 반영 할 수 있습니다. RSI에서 70을 넘어서면 과반 구매로 간주되며 30을 넘어서면 과반 판매로 간주됩니다. 이 전략은 EMA와 SMA를 사용하여 RSI 지표의 추세와 전환점을 발견합니다. EMA는 최근 가격 변화에 더 빠르게 반응하며 SMA는 오래된 데이터에 더 많이 의존합니다. 두 라인은 함께 작동합니다.

RSI EMA가 상승하기 시작하면 시장의 안정화를 신호합니다. SMA는 그 방향을 확인합니다. SMA도 상승하기 시작하면 RSI가 상승 추세에 있음을 확인합니다. 전략은 이제 가격이 EMA보다 높아서 추세를 따라 구매 신호를 발행합니다.

이점 분석

이것은 중장기간에 방향 기회를 효과적으로 잡을 수있는 트렌드 다음 전략입니다. 단일 지표와 비교하면이 전략은 검증을 위해 RSI EMA와 SMA 크로스오버를 사용하여 잘못된 신호를 줄이고 안정성을 높입니다.

이 전략은 또한 가격 EMA를 통합하여 가격 상승 추세에서만 구매를 보장하고, 범위 시장의 위험을 피하고 수익성을 향상시킵니다.

위험 분석

이 전략은 주로 RSI 지표에 의존한다. 잘못된 RSI 신호는 잘못된 전략 신호로 이어질 것이다. 또한, RSI는 중장기 트렌드를 잡는 데 약간의 지연이 있는 과반 구매/ 과반 판매 수준을 식별하는 데 더 적합하다.

또한 RSI EMA와 SMA가 범위에 더 묶여있을 때 약간의 시간 지연이있을 수 있습니다. 이 기간은 신호가 발생하기 전에 약간의 손실 위험을 초래합니다.

최적화 방향

  1. RSI는 효율성을 높이기 위해 더 적절한 매개 변수를 선택함으로써 최적화 될 수 있습니다.

  2. 스톱 로스 로직은 손실이 일정 수준에 도달한 후에 출구 포지션에 추가하여 위험을 효과적으로 관리할 수 있습니다.

  3. 매개 변수들은 다양한 기간에 걸쳐 테스트되고 최적화될 수 있으므로 전략은 더 많은 제품과 기간에 안정적으로 실행될 수 있습니다.

요약

RSI 이동 평균 크로스오버 트렌드 전략은 트렌드 방향을 결정하고 검증을 위해 크로스오버를 결정하기 위해 RSI를 사용하는 간단한 트렌드 다음 전략입니다. 상승 추세에 구매하기 위해 가격 EMA를 통합합니다. 전략은 중장기 보유에 높은 안정성을 가지고 있지만 지연 위험을 관리해야합니다. 추가 최적화는 전략 성능을 향상시킬 수 있습니다.


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Created by Sv3nla 5-Jan-2021
strategy(title="Sv3nla RSI EMA SMA Strat", shorttitle="Sv3nla RSI EMA SMA Strat", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === BACKTEST RANGE ===
FromMonth = input(defval = 5, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2015, title = "From Year", minval = 2015)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2022) 
// syminfo.mintick = 0.01$ for BTCUSDT

testPeriod() => true

//INPUTS
rsilen = input(defval = 16, minval=1, title="RSILength")
RSIemaLen = input(defval = 12, minval=1, title="RSI EMA Length")
RSIsmaLen2 = input(defval = 29, minval=1, title="RSI SMA Length2")
length = input(defval = 8, minval=1, title="EMA price Length")

// RSI
RSIsrc = close
RSIup = rma(max(change(RSIsrc), 0), rsilen)
RSIdown = rma(-min(change(RSIsrc), 0), rsilen)
rsi = RSIdown == 0 ? 100 : RSIup == 0 ? 0 : 100 - 100 / (1 + RSIup / RSIdown)
emavalue=ema(rsi,RSIemaLen)
smavalue=sma(rsi,RSIsmaLen2)

//EMA
ema=ema(close,length)

//PLOT
plot(ema(rsi, RSIemaLen), color=color.yellow, linewidth=2, title="EMA", transp=0)
plot(sma(rsi, RSIsmaLen2), color=color.aqua, linewidth=2, title="SMA", transp=0)

//ORDERS
if (testPeriod())
    strategy.entry("long",strategy.long, comment="RSIEMA", when=(emavalue > smavalue and close>ema))
    strategy.close(id="long", when=(emavalue < smavalue))

// Colour background when in a trade and 50 horizontal line
backgroundColour = (strategy.position_size > 0) ? color.green : na    
bgcolor(color=backgroundColour, transp=85)
hline(50, color=color.yellow)

더 많은