Die Trend Tracking Moving Average RSI Strategie ist eine automatisierte Aktienhandelsstrategie, die sowohl Trendanalyse als auch überkaufte Überverkaufsindizes verwendet.
Die Strategie besteht aus drei Hauptteilen:
Trendbeurteilung: Berechnet den langfristigen Trend mit 200-tägigem einfachen gleitendem Durchschnitt und den kurzfristigen Trend mit 30-tägigen und 50-tägigen einfachen gleitenden Durchschnitten.
Überkauft-Überverkauft-Analyse: Berechnet den 14-tägigen RSI-Indikator. RSI über 80 ist die Überkauftzone und unter 20 ist die Überverkauftzone. Handelssignale werden erzeugt, wenn der RSI-Indikator aus der Überkauftzone fällt oder aus der Überverkauftzone steigt.
Eintritt und Ausstieg: Wenn überkaufte oder überverkaufte Signale identifiziert werden, werden, wenn die Richtung mit der Trendanalyse übereinstimmt, Long/Short-Positionen eröffnet.
Mit dieser Strategie ist es möglich, rechtzeitig auf den Markt zu gelangen, wenn sich die Preise umkehren, während einige laute Trades durch die Einbeziehung einer Trendanalyse mit relativ ausgezeichneter Abzugskontrolle herausgefiltert werden.
Die Strategie weist folgende Vorteile auf:
Diese Strategie birgt auch einige Risiken:
Die Strategie kann in folgenden Bereichen weiter optimiert werden:
Im Allgemeinen ist die Trend Tracking Moving Average RSI Strategie eine sehr praktische Strategieidee, die Marktlärm bis zu einem gewissen Grad durch die Kombination von Trendanalyse und überkauft-überverkauft-Indikatoren herausfiltert und Handelssignale genauer und gültiger macht.
/*backtest start: 2022-11-16 00:00:00 end: 2023-11-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © mattehalen // INPUT per TIMEFRAME // 5min = Legnth = 9, Source = ohlc4,MaxLoss = 1000 TrendMA = 200, ShortMA = 4, LongMA = 10 // 30min = Legnth = 7, Source = ohlc4,MaxLoss = 1000 TrendMA = 200, ShortMA = 10, LongMA = 20 strategy("Mathias & Christer Timeframe RSI", shorttitle="M&C_RSI",overlay=true, process_orders_on_close = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) len = input(9, title="Length", type=input.integer) src = input(ohlc4, title="Source", type=input.source) //show4h = input(true, title="show 4h", type=input.bool) maxLoss = input(3000) rsiCurrent = rsi(src, len) //rsi4h = security(syminfo.ticker, "240", rsi(src, len)) rsi4h = rsi(src, len) //-------------------------------------------------- //MA trendMAInput = input(200, title="trendMA", type=input.integer) shortMAInput = input(30, title="shortMA", type=input.integer) longMAInput = input(50, title="longMA", type=input.integer) trendMA = ema(close,trendMAInput) shortMA = ema(close,shortMAInput) longMA = ema(close,longMAInput) plot(trendMA, color=color.black, linewidth=5) plot(shortMA, color=color.red, linewidth=2) plot(longMA, color=color.green, linewidth=2) bgcolor(crossunder(shortMA,longMA) ? color.black : na, transp=10) //-------------------------------------------------- //RSI BuySignalBarssince = barssince(rsi4h[1]<rsi4h[0] and rsi4h[1]<20) BuySignal = (rsi4h[1]<rsi4h[0] and rsi4h[1]<20 and BuySignalBarssince[1]>10) BuySignalOut = crossunder(longMA[1],shortMA[1]) bgcolor(BuySignal ? color.green : na, transp=70) bgcolor(BuySignalOut ? color.green : na, transp=10) SellSignalBarssince = barssince(rsi4h[1]>rsi4h[0] and rsi4h[1]>80) SellSignal = (rsi4h[1]>rsi4h[0] and rsi4h[1]>80 and SellSignalBarssince[1]>10) SellSignalOut = crossunder(shortMA[1],longMA[1]) bgcolor(SellSignal ? color.red : na, transp=70) bgcolor(SellSignalOut ? color.red : na, transp=10) if BuySignal strategy.close("short", comment = "Exit short") strategy.entry("long", true) strategy.exit("Max Loss", "long", loss = maxLoss) if BuySignalOut strategy.close("long", comment = "Exit Long") if SellSignal // Enter trade and issue exit order on max loss. strategy.close("long", comment = "Exit Long") strategy.entry("short", false) strategy.exit("Max Loss", "short", loss = maxLoss) if SellSignalOut // Force trade exit. strategy.close("short", comment = "Exit short") //-------------------------------------------------- //ATR MyAtr = atr(10) AtrFactor = 10 mySLBuy = close[BuySignalBarssince] mySLSell = close[SellSignalBarssince] plotchar(BuySignal, "BuySignal", "⬆", location.belowbar, color.lime,size =size.huge ) plotchar(BuySignalOut, "BuySignalOut", "█", location.belowbar, color.lime,size =size.small) plotchar(SellSignal, "SellSignal", "⬇", location.abovebar ,color.red,size =size.huge) plotchar(SellSignalOut, "SellSignalOut", "█", location.abovebar, color.red,size =size.small)