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 지표에는 지연 문제가 있으며, 부적절한 매개 변수 설정도 전략 성능에 영향을 미칩니다. 트렌드 다음 능력은 추가 최적화로 완전히 실현 될 수 있습니다.
/*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)