RSI 범위를 깨는 전략

저자:차오장, 날짜: 2023-10-11 15:54:11
태그:

전반적인 설명

RSI 범위 브레이크아웃 전략은 트렌드를 따르는 전형적인 전략이다. 그것은 트렌드를 따르는 목표를 가지고 RSI가 과소매 또는 과소매 수준에 있을 때 브레이크아웃 기회를 찾는 주요 기술 지표로 상대적 강도 지수 (RSI) 를 사용합니다.

전략 논리

이 전략은 주로 RSI 지표에 의존하여 시장에서 과소매와 과소매 수준을 결정합니다. RSI 계산 공식은: RSI = (평균 상승 가치 / (평균 상승 가치 + 평균 하락 가치)) x 100. 평균 상승 가치는 지난 N 일 동안 클로즈업 진폭의 간단한 이동 평균입니다. 평균 하락 가치는 지난 N 일 동안 클로즈업 진폭의 간단한 이동 평균입니다.

RSI가 과소매 라인 (디폴트 80) 보다 높을 때 시장이 과소매 상태에 있음을 나타냅니다. RSI가 과소매 영역 (디폴트 35) 보다 낮을 때 시장이 과소매 상태에 있음을 나타냅니다. 전략은 RSI가 과소매 영역을 깨뜨릴 때 짧은 기회를 찾고, RSI가 과소매 영역을 깨뜨릴 때 긴 기회를 찾습니다.

특히, 전략은 두 개의 SMA 라인을 사용하여 RSI 지표의 트렌드를 결정합니다. 더 빠른 SMA 라인이 더 느린 SMA 라인을 깨고 RSI가 과판 구역을 뚫고 갈 때, 장거리 가십시오. 더 빠른 SMA 라인이 더 느린 SMA 라인을 깨고 RSI가 과반 라인을 뚫고 갈 때, 짧게 가십시오. 전략은 또한 위험을 제어하기 위해 손해를 멈추고 수익 라인을 설정합니다.

장점

  • 특정 트렌드 판단 능력과 함께 과반 구매 및 과반 판매 수준을 결정하기 위해 RSI 지표를 사용합니다.
  • RSI 오스칠레이션으로 인한 거짓 브레이크를 피하기 위해 이중 SMA 라인과 결합
  • 단일 손실을 제어하기 위해 손해를 멈추고 이익을 취하십시오.
  • 침입, 빈번하게 열고 닫지 않는

위험 과 해결책

  • 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)


더 많은