
Die Trend-Tracking Moving Average RSI-Strategie ist eine Aktien-Automatik-Trading-Strategie, die sowohl die Trendanalyse als auch den Überkauf-Überverkauf-Indikator verwendet. Die Strategie verwendet einen einfachen Moving Average, um die Richtung des Markttrends zu bestimmen, und kombiniert mit einem relativ starken Index (RSI), um Handelssignale zu senden, um die Trends zu bestimmen und zu verfolgen.
Die Strategie besteht aus drei Teilen:
Trendbeurteilung: Berechnung eines 200-Tage-Simplemoving-Averages für die langfristige Tendenz, Berechnung eines 30- und 50-Tage-Simplemoving-Averages für die kurzfristige Tendenz. Beim Überschreiten des langfristigen Moving-Averages auf dem kurzfristigen Moving-Average wird ein bullish Signal und ein downward Signal verwendet, um die kurzfristige Tendenz des Marktes zu beurteilen.
Überkauf-Überverkauf-Urteil: Berechnung des 14-Tage-RSI, der über 80 als Überkaufzone und unter 20 als Überverkaufzone gilt. Wenn der RSI aus der Überkaufzone fällt oder aus der Überverkaufzone steigt, wird ein Handelssignal ausgesendet.
Eintritt und Ausstieg: Wenn ein Überkauf-Überverkauf-Signal beurteilt wird, wird der Eintritt über/ohne ausgeführt, wenn die Signalrichtung mit der Trendbeurteilung übereinstimmt. Wenn ein Goldkreuz zwischen dem kurzfristigen und dem langfristigen Moving Average stattfindet, wird der Trend umgekehrt und die Position verlassen.
Mit dieser Strategie kann der Aktienpreis bei einer Umkehrung rechtzeitig eingegeben werden, während der Trend in Kombination mit dem Urteil einen Teil des Noise-Handels abfiltert und relativ gut in der Rückzugskontrolle ist.
Die Strategie hat folgende Vorteile:
Die Strategie birgt auch einige Risiken:
Die Strategie kann auch in folgenden Bereichen optimiert werden:
Die Trend-Tracking-Strategie für den Moving Average RSI ist insgesamt eine sehr praktische Strategie, die in Kombination mit Trendanalyse und Überkauf-Überverkauf-Indikatoren zum Teil den Marktrauschen filtert, um die Handelssignale genauer und effektiver zu machen. Durch die ständige Optimierung der Mittel und Parameter kann die Strategie zu einem stabilen und rentablen langfristigen Handelssystem werden.
/*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)