Auf Basis von Bollinger-Bändern und RSI

Schriftsteller:ChaoZhang, Datum: 2024-03-11 11:51:22
Tags:

img

Übersicht

Diese Strategie nutzt zwei technische Indikatoren, Bollinger Bands und Relative Strength Index (RSI), für den bullischen Swing-Handel in Aufwärtstrends. Die Strategie-Logik ist einfach, aber effektiv: Öffnen Sie eine Long-Position, wenn der Preis unter die untere Bollinger Band bricht und der RSI unter 35 liegt, und schließen Sie die Position, wenn der RSI über 69 überschreitet.

Strategieprinzipien

  1. Berechnen Sie den RSI: Verwenden Sie den relativen gleitenden Durchschnitt (RMA), um die durchschnittliche Größe der Preissteigerungen und -verluste separat zu berechnen, und dividieren Sie dann die Größe der Erhöhungen durch die Gesamtgröße, um den RSI zu erhalten.

  2. Berechnen Sie Bollinger-Bänder: Verwenden Sie den einfachen gleitenden Durchschnitt (SMA) zur Berechnung der Preismitte, addieren und subtrahieren Sie dann die Standardabweichungen, um die oberen und unteren Banden zu erhalten.

  3. Open Long: Wenn der Preis unter den unteren Bollinger-Band bricht und der RSI unter 35 liegt, wird er als überverkauft betrachtet und eine Long-Position wird eröffnet.

  4. Schließen von Long: Wenn der RSI über 69 liegt, gilt er als überkauft und die Long-Position wird geschlossen, um Gewinne zu erzielen.

  5. Take Profit und Stop Loss: Nach der Eröffnung einer Position werden die Take Profit- und Stop Loss-Preise anhand von vom Benutzer definierten Prozentsätzen berechnet. Die Position wird geschlossen, wenn entweder der Take Profit- oder Stop Loss-Preis erreicht wird. Dies hilft, das Risiko und die Rendite jedes Handels zu kontrollieren.

Analyse der Vorteile

  1. Bollinger-Bänder können den Bereich der Kursbewegungen objektiv widerspiegeln und sich synchron mit den Kursentwicklungen anpassen, ohne durch feste Schwellenwerte eingeschränkt zu sein.

  2. Der RSI kann intuitiv das Gleichgewicht zwischen bullischen und bärischen Kräften widerspiegeln und ist auch relativ objektiv.

  3. Durch die Erfassung von Kursrückschlägen mit dem unteren Bollinger Band und niedrigem RSI und rechtzeitige Schließung von Positionen mit hohem RSI kann es kurzfristige Marktbewegungen effektiv erfassen.

  4. Die Einstellung von Take Profit und Stop Loss macht die Risiken der Strategie kontrollierbar.

  5. Die Strategie-Logik und der Code sind relativ einfach, leicht zu verstehen und umzusetzen, und die Backtest-Ergebnisse sind relativ stabil.

Risikoanalyse

  1. In unruhigen Märkten können Bollinger Bands und RSI zu viele Handelssignale erzeugen, was zu einer hohen Handelsfrequenz und erhöhten Transaktionskosten führt.

  2. Ein einzelner Indikator wie der RSI wird leicht von kurzfristigen Kursschwankungen beeinflusst und kann irreführende Signale erzeugen.

  3. Die Auswahl der Bollinger-Band- und RSI-Parameter hat erhebliche Auswirkungen auf die Strategieleistung, und verschiedene Märkte und Instrumente können unterschiedliche Parameter erfordern.

  4. Bei unerwarteten Ereignissen oder abnormalen Marktbedingungen können Bollinger-Bänder und RSI wirkungslos werden.

Optimierungsrichtlinien

  1. Es ist zu berücksichtigen, andere technische Indikatoren wie gleitende Durchschnitte für die Filterung einzuführen, z. B. nur Positionen zu eröffnen, wenn die gleitenden Durchschnitte in einer bullischen Ausrichtung sind, um die Zuverlässigkeit der Signale zu verbessern.

  2. Optimieren Sie die oberen und unteren Schwellenwerte des RSI, die Parameter der Bollinger-Bänder usw., um für jedes Instrument und jeden Zeitrahmen die am besten funktionierenden Parameterkombinationen zu finden.

  3. Auf der Grundlage von Backtesting werden Forward-Tests und ordnungsgemäßes simuliertes Trading durchgeführt, um die Wirksamkeit und Stabilität der Strategie vor dem Live-Handel vollständig zu validieren.

  4. Weitere Strategie zur Steuerung von Zinsrückgängen und Verbesserung der risikobereinigten Renditen durch Positionsgrößen, dynamische Gewinn- und Stop-Loss-Methoden und andere Methoden.

  5. Die Strategie in ein Anlageportfolio einbeziehen und in Verbindung mit anderen Strategien zur Absicherung verwenden, anstatt sie isoliert zu verwenden, um die Portfoliostabilität zu verbessern.

Zusammenfassung

Dieser Artikel stellt eine auf zwei technischen Indikatoren, Bollinger Bands und RSI, basierende bullische Swing-Handelsstrategie vor. Die Strategie eignet sich für die Erfassung kurzfristiger Marktbewegungen in Aufwärtstrends, und ihre Logik und Umsetzung sind relativ einfach. Sie eröffnet Long-Positionen, wenn der Preis unter die unteren Bollinger Band und RSI fällt, schließt Positionen, wenn der RSI hoch ist, und setzt Profit- und Stop-Loss-Level ein. Die Vorteile der Strategie sind, dass sie die Reichweite der Preisschwankungen und das Gleichgewicht der bullischen und bärischen Kräfte objektiv widerspiegeln kann, und ihre Risiken sind relativ kontrollierbar. Bei der Anwendung in der Praxis muss man jedoch auf die Kontrolle der Handelsfrequenz achten, mehr Indikatoren kombinieren, um Parameter zu filtern, Optimierung von Portfolioindikatoren und Positionen zu verwalten. Darüber hinaus kann die Strategie unter außergewöhnlichen Marktbedingungen und anderen Risikomanagementmaßnahmen eingesetzt werden.


/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Bollinger Band with RSI", shorttitle="BB&RSI")
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(69, "Upper Band", color=#C0C0C0)
band0 = hline(31, "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 < 35.58 and src < lower
exit_long = rsi > 69
 
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)


Mehr