Diese Strategie kombiniert Bollinger Bands und den Relative Strength Index (RSI) Indikator, um die Preisvolatilität vorherzusagen und optimale Einstiegspunkte zu bestimmen. Die Logik ist einfach - wir beobachten die Schlusskosten, die das Bollinger-Unterband berühren, woraufhin es zwei mögliche Szenarien gibt: Entweder springt der Preis vom unteren Bollinger-Band zurück oder er fällt weiter. Um die Kursbewegung zu bestätigen, verwenden wir einen zweiten Indikator, den RSI, um den Trend weiter zu untersuchen. Zum Beispiel, wenn der Preis das unteren Bollinger-Band erreicht, aber der RSI-Wert nicht im Überverkaufszone liegt, können wir schließen, dass der Preis weiter sinken wird. Wenn der RSI-Wert überverkauft ist, können wir diesen Bereich als Einstiegspunkt verwenden.
Ein Stop-Loss ist notwendig, um zu vermeiden, zu viel Kapital zu verlieren, wenn der RSI zu lange im Überverkaufszone verweilt.
Der beste Take-Profit-Bereich ist, wenn der Preis wieder über das mittlere Bollinger-Band/obere Bollinger-Band zurückspringt oder wenn der RSI überkauft ist, je nachdem, was zuerst eintritt.
Langer Eintrag:
RSI < 30 und Schlusskurs < Bollinger-Unterband
Weite Ausfahrt:
RSI > 70
Die Strategie berechnet zuerst den RSI-Indikator und setzt obere/untere Grenzen, um überkaufte/überverkaufte Niveaus zu bestimmen. Sie berechnet dann die Bollinger-Mitte, obere und untere Bands. Wenn der Schlusskurs das untere Band berührt und der RSI unter 30 liegt, gehen Sie lang. Wenn der RSI über 70 liegt, schließen Sie die Position.
Bei Eintritt in die Long-Runde setzen Sie Stop-Loss- und Take-Profit-Punkte ein. Der Take-Profit wird zum Einstiegspreis * (1 + fester Prozentsatz), der Stop-Loss zum Einstiegspreis * (1 - fester Prozentsatz) festgelegt.
Dies ermöglicht es uns, beim niedrigen RSI am unteren Bollinger-Band zu kaufen und beim hohen RSI zu verkaufen, um von der Umkehrung zu profitieren.
Die Risiken können gemildert werden, indem die Bollinger-Parameter angepasst, andere Indikatoren verwendet und der Stop-Loss angemessen vergrößert wird.
Das Gesamtrisiko/Rendite-Profil dieser Strategie ist ausgewogen und die Backtest-Ergebnisse sind gut. Weitere Verbesserungen können durch Parameteroptimierung und Indikatorverbesserungen erzielt werden. Das auf Bollinger Bands basierende Umkehrhandelskonzept ist einfach und zuverlässig und erfordert weitere Forschung und Verfeinerung.
[/trans]
/*backtest start: 2023-09-10 00:00:00 end: 2023-09-17 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //strategy(title="Bollinger Band with RSI", shorttitle="BB&RSI", format=format.price, precision=2, pyramiding=50, initial_capital=10000, calc_on_order_fills=false, calc_on_every_tick=true, default_qty_type=strategy.cash, default_qty_value=1000, currency="USD") len = input(14, minval=1, title="Length") src = input(close, "Source", type = input.source) 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(rsi, "RSI", color=#8E1599) band1 = hline(70, "Upper Band", color=#C0C0C0) band0 = hline(30, "Lower Band", color=#C0C0C0) fill(band1, band0, color=#9915FF, transp=90, title="Background") length_bb = input(20,title="BB Length", minval=1) mult = input(2.0, minval=0.001, maxval=50, title="BB StdDev") basis = sma(src, length_bb) dev = mult * stdev(src, length_bb) upper = basis + dev lower = basis - dev offset = input(0, "BB Offset", type = input.integer, minval = -500, maxval = 500) Plot_PnL = input(title="Plot Cummulative PnL", type=input.bool, defval=false) Plot_Pos = input(title="Plot Current Position Size", type=input.bool, defval=false) long_tp_inp = input(10, title='Long Take Profit %', step=0.1)/100 long_sl_inp = input(25, title='Long Stop Loss %', step=0.1)/100 // Take profit/stop loss long_take_level = strategy.position_avg_price * (1 + long_tp_inp) long_stop_level = strategy.position_avg_price * (1 - long_sl_inp) entry_long = rsi < 30 and src < lower exit_long = rsi > 70 plotshape(entry_long, style=shape.labelup, color=color.green, location=location.bottom, text="L", textcolor=color.white, title="LONG_ORDER") plotshape(exit_long, style=shape.labeldown, color=color.red, location=location.top, text="S", textcolor=color.white, title="SHORT_ORDER") strategy.entry("Long",true,when=entry_long) strategy.exit("TP/SL","Long", limit=long_take_level, stop=long_stop_level) strategy.close("Long", when=exit_long, comment="Exit") plot(Plot_PnL ? strategy.equity-strategy.initial_capital : na, title="PnL", color=color.red) plot(Plot_Pos ? strategy.position_size : na, title="open_position", color=color.fuchsia)