RSI und Bollinger Bands Dual-Strategie


Erstellungsdatum: 2023-12-12 11:53:49 zuletzt geändert: 2023-12-12 11:53:49
Kopie: 0 Klicks: 685
1
konzentrieren Sie sich auf
1621
Anhänger

RSI und Bollinger Bands Dual-Strategie

Überblick

Die Kernidee der Strategie ist die Kombination der relativ starken Indikatoren ((RSI) und der beiden technischen Indikatoren von Brin und Brin, um doppelte Handelssignale zu filtern, um die Störung durch falsche Signale zu minimieren und die Signalqualität zu verbessern.

Der RSI-Indikator erzeugt eine Handelsmöglichkeit, wenn ein Überkauf- oder Überverkaufsignal angezeigt wird, während der Preis einen Durchbruch oder eine Umkehrung der Bollinger-Band auf die Unterbahn macht. Er kombiniert die Vorteile zweier verschiedener Indikatoren und berücksichtigt sowohl die statistischen Merkmale der Marktfluktuation als auch die hohe Frequenz der Marktteilnehmer, um eine umfassende Grundlage für die Beurteilung zu bilden.

Strategieprinzip

Im RSI-Bereich betrachten wir gleichzeitig zwei RSI-Indikatoren mit unterschiedlichen Perioden, einen mit kürzeren Perioden, um Überkauf-Überverkaufsignale zu erfassen, und einen mit längeren Perioden, um eine Trendwende zu bestätigen. Wenn der kurze RSI überkaufen und überkaufen zeigt und der lange RSI eine Umkehr zeigt, wird eine Handelsmöglichkeit geschaffen.

Im Brin-Band-Bereich konzentrieren wir uns darauf, ob der Preis einen Auf-/Abbruch erlebt. Ein Aufbruch des Brin-Bandes ist ein Verkaufspunkt, ein Abbruch des Brin-Bandes ist ein Kaufpunkt. Gleichzeitig konzentrieren wir uns darauf, ob der Preis den Brin-Band zurückschaltet, um eine Umkehrmöglichkeit rechtzeitig zu erfassen.

Wenn die RSI-Signal und Brin-Band-Signal zeitgleich angezeigt werden, nehmen wir an, dass sich eine Handelsgelegenheit gebildet hat, und geben einen Handelsbefehl.

Analyse der Stärken

  • Doppelindikator-Filterung, hohe Zuverlässigkeit und Vermeidung von überflüssigen Geschäften
  • Trends und Umschwünge berücksichtigen und Chancen in verschiedenen Marktphasen nutzen
  • Parameter sind konfigurierbar und können je nach Bedarf angepasst werden
  • Zeit- und Finanzmanagement im Haus

Risikoanalyse

  • Die falsche Einstellung der Brin-Band-Parameter kann zu einem Falschsignal führen
  • Es ist nicht möglich, mit extremen Marktschwankungen umzugehen.
  • Der RSI-Indikator kann bei Abweichungen fehlerhaft sein
  • Die Parameter müssen für verschiedene Sorten und Zyklen optimiert werden

Risiken können durch Parameteroptimierung, angemessene Verringerung der Lagerstätte und manuelle Interventionen vermieden und kontrolliert werden.

Optimierungsrichtung

  • Anpassung der RSI-Parameter zur Optimierung der Überkauf- und Überverkaufsschätzungen
  • Anpassung der Brin-Bandbreite und Optimierung der Brin-Band-Breakthrough-Strategie
  • Erhöhung der Positionsverwaltung
  • Erhöhung der Stop-Loss-Strategie
  • Mehrfache Modelle mit mehr Indikatoren

Zusammenfassen

Die Doppelstrategie von RSI und Bollinger Bands nutzt die Vorteile beider Indikatoren, um ein hochwertiges Signal zu erzeugen, das einen stabilen Return on Investment ermöglicht, vorausgesetzt, dass die Parameter optimiert und das Risiko verwaltet werden. Die Kombination von mehr Signalen und Modellen ist eine mögliche Richtung für die Zukunft.

Strategiequellcode
/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Ezieh Str.v2", shorttitle="Ezieh Str.v2", overlay=true, pyramiding=10, currency=currency.USD, slippage=3, commission_type=strategy.commission.cash_per_order, commission_value=0.04, initial_capital=1000)



UseDateFilter  = input(title="Enable Date Filter"         ,type=input.bool    ,defval=false                               ,group="Date & Time" ,tooltip="Turns on/off date filter")
StartDate      = input(title="Start Date Filter"          ,type=input.time    ,defval=timestamp("1 Jan 2000 00:00 +0000") ,group="Date & Time" ,tooltip="Date & time to start excluding trades")
EndDate        = input(title="End Date Filter"            ,type=input.time    ,defval=timestamp("1 Jan 2100 00:00 +0000") ,group="Date & Time" ,tooltip="Date & time to stop excluding trades")
UseTimeFilter  = input(title="Enable Time Session Filter" ,type=input.bool    ,defval=false                               ,group="Date & Time" ,tooltip="Turns on/off time session filter")
TradingSession = input(title="Trading Session"            ,type=input.session ,defval="1000-2200:1234567"                 ,group="Date & Time" ,tooltip="No trades will be taken outside of this range")

In(t)      => na(time(timeframe.period, t)) == false
TimeFilter = (UseTimeFilter and not In(TradingSession)) or not UseTimeFilter
DateFilter = time >= StartDate and time <= EndDate

DateTime = (UseDateFilter ? not DateFilter : true) and (UseTimeFilter ? In(TradingSession) : true) 

///////////// RSI
L_RSI_Length     = input(7  , title="L_Length")
L_RSI_OverSold   = input(45 , title="L_OverSold")
S_RSI_Length     = input(14 , title="S_Length")
S_RSI_OverBought = input(65 , title="S_OverBought")

price = close
Lvrsi = rsi(price, L_RSI_Length)
Svrsi = rsi(price, S_RSI_Length)

///////////// Bollinger Bands
BBlength = input(title="Bollinger Period Length", type=input.integer, defval=100, minval=2)
BBmult = 2.1 // 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
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?")



///////////// Condition
LongCondition  = crossover(Lvrsi, L_RSI_OverSold)    and crossover(close  ,BBlower)
ShortCondition = crossunder(Svrsi, S_RSI_OverBought) and crossunder(close,BBupper)
Longexcon      = crossunder(low, BBupper)
Shortexcon     = crossover(low, BBlower)

qt = round(strategy.equity/price, 3)

///////////// RSI + Bollinger Bands Strategy
if (not na(Lvrsi))

    if LongCondition and DateTime
        strategy.entry("RSI_BB_L", strategy.long, qty=qt,  comment="Long")
    else
        strategy.cancel(id="RSI_BB_L")
        
    if Longexcon
        strategy.close("RSI_BB_L", qty_percent = 100, comment = "L_exit")
    
    if ShortCondition and DateTime
        strategy.entry("RSI_BB_S", strategy.short, qty=qt,  comment="Short")
    else
        strategy.cancel(id="RSI_BB_S")
        
    if Shortexcon
        strategy.close("RSI_BB_S", qty_percent = 100, comment = "S_exit")
    
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)