Die RSI-Range-Breakout-Strategie ist eine typische Trendfolgestrategie. Sie verwendet den Relative Strength Index (RSI) als den wichtigsten technischen Indikator, um nach Breakout-Möglichkeiten zu suchen, wenn sich der RSI in überkauften oder überverkauften Niveaus befindet, mit dem Ziel, dem Trend zu folgen.
Die Strategie stützt sich hauptsächlich auf den RSI-Indikator, um die Überkauf- und Überverkaufswerte auf dem Markt zu bestimmen. Die RSI-Rechnungsformel lautet: RSI = (Durchschnittlicher Up-Value / (Durchschnittlicher Up-Value + Durchschnittlicher Down-Value)) x 100. Der Durchschnittliche Up-Value ist der einfache gleitende Durchschnitt der Close-Up-Amplituden in den letzten N Tagen. Der Durchschnittliche Down-Value ist der einfache gleitende Durchschnitt der Close-Down-Amplituden in den letzten N Tagen.
Wenn der RSI höher als die überkaufte Linie ist (Standard 80), zeigt er an, dass der Markt in einem Überkaufszustand ist. Wenn der RSI niedriger als die Überverkaufszone ist (Standard 35), zeigt er an, dass der Markt in einem Überverkaufszustand ist. Die Strategie sucht nach kurzen Chancen, wenn der RSI die Überkauflinie bricht, und nach langen Chancen, wenn der RSI die Überverkaufszone bricht.
Speziell verwendet die Strategie zwei SMA-Linien, um den Trend des RSI-Indikators zu bestimmen. Wenn die schnellere SMA-Linie die langsamere SMA-Linie bricht, während der RSI die Überverkaufszone durchbricht, gehen Sie lang. Wenn die schnellere SMA-Linie die langsamere SMA-Linie bricht, während der RSI die überkaufte Linie bricht, gehen Sie kurz. Die Strategie setzt auch Stop-Loss und Take-Profit-Linien, um Risiken zu kontrollieren.
Die RSI-Range-Breakout-Strategie ist eine typische Trendfolgestrategie insgesamt. Sie bestimmt Handelssignale durch den RSI-Indikator, filtert Signale mit doppelten SMA-Linien und setzt Stop-Loss und Take-Profit, um Risiken zu kontrollieren.
/*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)