Bollinger-Bänder + RSI + EMA-Doppelhandelsstrategie

Schriftsteller:ChaoZhang, Datum: 29.12.2023 14:46:57
Tags:

img

Übersicht

Diese Strategie integriert Bollinger Bands, Relative Strength Index (RSI) und Exponential Moving Average (EMA) drei Indikatoren, um eine automatische Handelsstrategie mit langen Halteperioden für Aktien zu implementieren. Sie erzeugt Kaufsignale, wenn der RSI unter der Überverkaufslinie liegt und der Preis nahe der Bollinger Bands-Unterbahn liegt oder diese berührt, und erzeugt Verkaufssignale, wenn der Preis steigt, um die Bollinger Bands-Oberbahn zu berühren, wobei Bollinger Bands zur Bestimmung von Markttrends und Überkauf/Überverkaufsstatus für eine doppelte Bestätigung verwendet werden.

Strategieprinzip

Diese Strategie beurteilt hauptsächlich auf der Grundlage von Bollinger Bands, RSI und EMA drei Indikatoren. Die mittlere Schiene in Bollinger Bands ist der einfache gleitende Durchschnitt des Preises, und die oberen und unteren Schienen sind zwei Standardabweichungsbereiche des Preises. Bollinger Bands können den Überkauf/Überverkauft-Status des Marktes beurteilen. Wenn der Preis in der Nähe der unteren Schiene ist, zeigt er den Überkaufstatus an, und wenn der Preis in der Nähe der oberen Schiene ist, zeigt er den Überkaufstatus an. Der RSI ist einer der wichtigen Indikatoren, um zu beurteilen, ob eine Aktie überkauft oder überverkauft ist. RSI unter 30 zeigt den Überkaufstatus an und RSI über 70 zeigt den Überkaufstatus an.

Das Kaufsignal für diese Strategie wird erzeugt, wenn der RSI unterhalb der Überverkaufslinie von 30 liegt und gleichzeitig der Preis sich dem Bollinger Bands-Untergleis in Überverkaufsstatus nähert oder berührt hat.

Das Verkaufssignal wird erzeugt, wenn der Preis während eines Aufwärtstrends den oberen Bollinger-Band-Rail berührt. Dies nutzt Bollinger-Bands, um den Überkaufstatus zu bestimmen und zum Gewinn zu verkaufen.

Vorteile der Strategie

  1. Integriert Bollinger-Bänder und RSI, um den Überkauf/Überverkauf zu bestätigen und falsche Signale zu vermeiden.
  2. Nutzt die EMA, um die Kursentwicklung zu bestimmen und den gegen den Trend gerichteten Handel zu vermeiden.
  3. Die Parameter sowohl für den RSI als auch für die Bollinger Bands können für verschiedene Aktien angepasst werden.
  4. Einfache und klare Strategie-Logik, leicht zu verstehen und umzusetzen.

Risiken der Strategie

  1. Sowohl Bollinger Bands als auch RSI können falsche Signale erzeugen, was zu falschen Einträgen führt.
  2. Die Stop-Loss-Position muss weiter optimiert werden, wobei die Rückzugsrisiken höher sind.
  3. Die EMA kann bei verpassten Trendumkehrpunkten den Trend möglicherweise nicht perfekt bestimmen.
  4. Unangemessene Parameter-Einstellungen können zu einem Überhandel oder zu fehlenden Handelsmöglichkeiten führen.

Lösungen:

  1. Bollinger-Band-Perioden verkürzen, RSI-Parameter optimieren.
  2. Dynamische Verzögerung.
  3. Integration anderer Indikatoren zur Tendenzbestimmung.
  4. Versuche verschiedene Parameter-Einstellungen, um die optimale Kombination zu finden.

Richtungen für die Optimierung der Strategie

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Hinzufügen von weiteren Indikatoren zur Beurteilung, z. B. KD für Überkauf/Überverkauf.
  2. Fügen Sie Stop-Loss-Mechanismen wie bewegliche Stop-Loss, Zone Stop-Loss hinzu, um Risiken zu managen.
  3. Hinzufügen von Ausstiegsregeln auf der Grundlage der EMA-Trendbestimmung bei Verkaufsbedingungen.
  4. Optimierung der Parameter-Einstellungen zur Erweiterung der Gewinnspanne, z. B. Anpassung der Breite der Bollinger-Bänder.
  5. Hinzufügen von Eingangsregeln, um falsche Ausbrüche zu vermeiden, z. B. Volumenfilter.

Schlussfolgerung

Die Strategie integriert Bollinger Bands, RSI und EMA für eine automatische Long-Holding-Handelsstrategie mit doppelten Bestätigungsfiltern. Die doppelte Bestätigung für den Überkauf/Überverkauf-Status vermeidet effektiv falsche Signale und die Verwendung von EMA zur Trendbestimmung verhindert den Handel gegen den Trend. In der Zwischenzeit machen flexible Parameter-Einstellungen es anpassungsfähig an verschiedene Aktien. Eine weitere Verbesserung der Aspekte von Stop-Loss- und Exit-Mechanismen kann die Effizienz und das Risikomanagement der Strategie verbessern. Die Strategie bietet einen wertvollen Bezugsrahmen für Anfänger und hat praktische Bedeutung.


/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by ChartArt) v1.3", shorttitle="rsi 30 min ADJ Buy", overlay=true)

///////////// RSI
RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length
RSIoverSold = input(30, title="RSI Oversold Level")  // Adjustable RSI oversold level
RSIoverBought = input(80, title="RSI Overbought Level")  // Adjustable RSI overbought level
price = close
vrsi = rsi(price, RSIlength)

///////////// Bollinger Bands
BBlength = input(231, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length
BBmult = 2
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev

///////////// EMA
useEMA = input(true, title="Use EMA?")
emaLength = input(20, title="EMA Period Length")
ema = useEMA ? ema(close, emaLength) : na

source = close
buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band
sellEntry = crossunder(source, BBupper)

///////////// Plotting
plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line")
plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line")
plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line")
plot(ema, color=color.orange, title="EMA")  // Plot EMA

///////////// RSI + Bollinger Bands Strategy
long = crossover(vrsi, RSIoverSold) and buyEntry
close_long = close >= BBupper

if (not na(vrsi))
    if long
        strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy")
    else
        strategy.cancel(id="Buy")
        
    if close_long
        strategy.close("Buy")


Mehr