RSI 범위 돌파 전략


생성 날짜: 2023-10-11 15:54:11 마지막으로 수정됨: 2023-10-11 15:54:11
복사: 0 클릭수: 713
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

RSI 간격 돌파 전략은 전형적인 트렌드 추적 전략이다. 그것은 상대적으로 강한 지수 ((RSI) 를 주요 기술 지표로 사용하여, RSI가 과매매 또는 과매매 상태에 있을 때, 범위에 돌파하는 기회를 찾고 포지션을 구축하여 트렌드 추적의 목적을 달성한다.

전략 원칙

이 전략은 주로 RSI 지표에 의존하여 시장의 과매매 상태를 판단한다. RSI 지표의 계산 공식은 다음과 같다: RSI = ((상승 평균값/상승 평균값 +상승 평균값) × 100 ᅳ. 그 중, 상승 평균값은 지난 N 일 동안의 매출 상승률의 간단한 이동 평균이며, 하락 평균값은 지난 N 일 동안의 매출 하락률의 간단한 이동 평균이다.

RSI가 설정된 오버 바이 라인 (기본 80) 보다 크면, 시장이 오버 바이 상태임을 나타냅니다. RSI가 설정된 오버 바이 라인 (기본 35) 보다 작으면, 시장이 오버 바이 영역에 있음을 나타냅니다. 전략은 RSI가 상향으로 오버 바이 라인을 돌파 할 때 단축 기회를 찾고, RSI가 상향으로 오버 바이 라인을 돌파 할 때 더 많은 기회를 찾습니다.

구체적으로, 전략은 두 개의 SMA 평균선을 통해 RSI 지표의 추세를 판단한다. 빠른 라인이 아래에서 위로 느린 라인을 돌파하고 RSI가 초과 범위를 돌파 할 때, 더 많이; 빠른 라인이 위에서 아래로 느린 라인을 돌파하고 RSI가 초과 라인을 돌파 할 때, 더 많이. 전략은 또한 위험을 제어하기 위해 중지 라인과 중지 라인을 설정한다.

전략적 이점

  • RSI 지표를 사용하여 시장의 과매매 상태를 판단하고, 특정 추세를 판단하는 능력을 가지고 있습니다.
  • 두 개의 SMA 평균선과 결합하여 RSI 지수 흔들림으로 인한 가짜 돌파구를 피할 수 있습니다.
  • 단기 손실을 제어할 수 있는 스톱 스톱을 설정
  • 은 진입, 빈번한 포지션 하반기

위험과 해결책

  • RSI 지표는 추세 전환점을 놓칠 수 있습니다.
    • RSI의 매개 변수를 적절하게 조정하여 지표의 민감성을 최적화하십시오.
  • 오버 바이 오버 세일 간격이 잘못 설정되어 수익을 창출하는 것이 더 어려워졌습니다.
    • 다른 시장에 대한 변수를 조정하고, 변수 설정이 합리적인지 확인합니다.
  • 정지점이 너무 가깝고, 밤마다 일어나는 진동에 의해 정지될 수 있다.
    • 제주도, 경상도, 경상도, 경상도, 경상도
  • 트렌드 실행을 충분히 포착할 수 없는 작은 스톱 설정
    • 시장의 변동에 따라 유연하게 조정할 수 있습니다.

최적화 방향

  • KDJ, MACD 등의 다른 지표와 함께 진입 시기를 결정하여 RSI 지표의 지연 문제를 피하십시오.
  • 큰 규모의 추세에 대한 판단을 높여 역동적인 행동을 피하십시오.
  • 가격 추적 스톱, 이동 스톱 등으로 스톱 스톱 전략을 최적화합니다.
  • 다양한 품종의 파라미터 설정을 구분하고 시장 특성에 따라 합리적인 파라미터를 결정합니다.
  • 포지션 관리 전략을 늘리고, 포지션을 조정하기 위해 포지션을 늘립니다.

요약하다

RSI 간격 돌파 전략은 전체적으로 전형적인 트렌드 추적 전략이다. 그것은 RSI 지표를 통해 매도 시점을 판단하고, 쌍 SMA 평균 필터 신호를 설정하고, 손해 중지 을 설정하여 위험을 제어한다. 그러나 RSI 지표에는 지연성 문제가 있으며, 이외에도 파라미터를 적절하게 설정하지 않으면 전략의 성능에도 영향을 미칩니다. 추가적인 최적화를 통해 이 전략의 트렌드 추적 능력을 충분히 발휘할 수 있다.

전략 소스 코드
/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

//strategy("Strategy RSI | Fadior", shorttitle="Strategy RSI", pyramiding=10, calc_on_order_fills=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100, overlay=false)
 
len = input(3, minval=1, title="RSI Length") 
threshLow = input(title="Treshold Low", defval=35)
threshHigh = input(title="Treshold High", defval=80)
rsiLength1 = input(title="RSI Smoothing 1", defval=3)
rsiLength2 = input(title="RSI Smoothing 2", defval=5)
SL = input(title="Stop loss %", type=float, defval=.026, step=.001)
TP = input( defval=300)

// 3 40 70 2
// 14 40 70 2 16 0.05 50

src = close
  
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

plot(sma(rsi,rsiLength2), color=orange)
plot(sma(rsi,rsiLength1), color=green)

band1 = hline(threshHigh)
band0 = hline(threshLow)
fill(band1, band0, color=purple, transp=90)

strategy = input(type=bool, title="Long only ?", defval=true)
strategy.risk.allow_entry_in(strategy ? strategy.direction.long : strategy.direction.all)

longCondition = sma(rsi,rsiLength1) < threshLow and sma(rsi,rsiLength2) > sma(rsi,rsiLength2)[1] 

if (longCondition)
    strategy.entry("Long", strategy.long) //, qty=10)
    strategy.exit("Close Long", "Long", stop=src-close*SL, profit=TP)
    
shortCondition = sma(rsi,rsiLength1) > threshHigh and sma(rsi,rsiLength2) < sma(rsi,rsiLength2)[1]
if (shortCondition)
    strategy.entry("Short", strategy.short) //, qty=10)
    strategy.exit("Close Short", "Short") //, stop=src-close*SL, profit=TP)