Die Bollinger Bands RSI Swing Trading Strategie kombiniert die Bollinger Bands und den Relative Strength Index (RSI) Indikatoren für den kurzfristigen Bereichsschwinghandel.
Zunächst analysiert der Bollinger Bands-Indikator Preisschwankungen.
Zweitens bestimmt der RSI-Indikator die Überkauf-/Überverkaufsstärke.
Wenn der Preis das untere Band erreicht und der RSI überverkauft zeigt, gehen Sie lang.
Bollinger-Bänder lokalisieren die Preisschwankungsniveaus genau.
RSI vermeidet blinde Long/Short-Einträge.
Hohe Gewinnrate, die auf die mittlere Umkehrung abzielt.
Häufiger Handel ermöglicht eine nachhaltige Rentabilität.
Anwendbar auf verschiedene Produkte und Zeitrahmen.
Falsche BB-Parameter können keine Schlüsselwerte erkennen.
Schlechte RSI-Parameter erzeugen falsche Signale.
Eine unzureichende Rückführung löst einen Stop-Loss aus.
Eine hohe Handelsfrequenz führt zu höheren Verschiebungskosten.
Es ist schwer, Trends in volatilen Märkten zu überstehen.
Optimieren Sie die Parameter, damit die BBs der tatsächlichen Volatilität entsprechen.
Anpassen der RSI-Periode, um Lärm zu filtern.
Verwenden Sie Trailing Stops, um die Gewinnrückzahlungen zu reduzieren.
Wählen Sie flüssige Produkte aus, um den Einfluss von Rutschen zu minimieren.
Hinzufügen anderer Indikatoren zur Bestimmung der Trendrichtung.
Die BB RSI Swing-Handelsstrategie erfasst effektiv Zwei-Wege-Preisschwankungen innerhalb von Bandbreiten. Mit einer ordnungsgemäßen Parameter-Tuning und Risikomanagement bietet sie stetige Gewinne.
/*backtest start: 2023-08-16 00:00:00 end: 2023-09-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Swing trading strategy FOREX ", shorttitle="BB+RSI", overlay=true) //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date Inputs fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2020, title = "From Year", minval = 1970) // To Date Inputs toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2022, title = "To Year", minval = 1970) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true // // ///////////// RSI RSIlength = input(6,title="RSI Period Length") RSIoverSold = input(defval = 65, title = "RSIoverSold", minval = 1, maxval = 100) RSIoverBought = input(defval = 35, title = "RSIoverBought", minval = 1, maxval = 100) price = close vrsi = rsi(price, RSIlength) ///////////// Bollinger Bands BBlength = input(200, minval=1,title="Bollinger Period Length") BBmult = 2 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation") BBbasis = sma(price, BBlength) BBdev = BBmult * stdev(price, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev source = close buyEntry = crossover(source, BBlower) sellEntry = crossunder(source, BBupper) plot(BBbasis, color=color.aqua,title="Bollinger Bands SMA Basis Line") p1 = plot(BBupper, color=color.silver,title="Bollinger Bands Upper Line") p2 = plot(BBlower, color=color.silver,title="Bollinger Bands Lower Line") fill(p1, p2) ///////////// Colors switch1=input(true, title="Enable Bar Color?") switch2=input(true, title="Enable Background Color?") TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? color.red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? color.green : na barcolor(switch1?TrendColor:na) bgcolor(switch2?TrendColor:na,transp=50) ///////////// RSI + Bollinger Bands Strategy //for buy cond1=crossover(vrsi, RSIoverSold) cond2=crossover(source, BBlower) //for sell cond3=crossunder(vrsi, RSIoverBought) cond4=crossunder(source, BBupper) if (not na(vrsi)) if (cond1 and cond2 and time_cond) strategy.entry("RSI_BB_LONG", strategy.long, stop=BBlower, comment="LONG",alert_message = "long") else strategy.cancel(id="RSI_BB_LONG") if (cond3 and cond4 and time_cond) strategy.entry("RSI_BB_SHORT", strategy.short, stop=BBupper, comment="SHORT",alert_message = "short") //strategy.close("RSI_BB_LONG") else strategy.cancel(id="RSI_BB_SHORT") //strategy.exit("closelong", "RSI_BB_LONG" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closelong") //strategy.exit("closeshort", "RSI_BB_SHORT" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closeshort") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)