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.
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.
Lösungen:
Die Strategie kann in folgenden Bereichen weiter optimiert werden:
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")