Trendfolgende gleitende Durchschnitts-RSI-Strategie


Erstellungsdatum: 2023-11-23 17:13:06 zuletzt geändert: 2023-11-23 17:13:06
Kopie: 0 Klicks: 626
1
konzentrieren Sie sich auf
1617
Anhänger

Trendfolgende gleitende Durchschnitts-RSI-Strategie

Überblick

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.

Strategieprinzip

Die Strategie besteht aus drei Teilen:

  1. 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.

  2. Ü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.

  3. 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.

Analyse der Stärken

Die Strategie hat folgende Vorteile:

  1. In Kombination mit Trendbeurteilungen und Überkauf-Überverkauf-Indikatoren filtert das Geräusch und erkennt Wendepunkte.
  2. Es ist auch besser, die Richtung der Trends in den beiden langen und kurzen Zeiträumen zu berücksichtigen.
  3. Die Verwendung eines Moving Averages als Stop-Loss-Methode ermöglicht die Einstellung eines Stop-Loss-Punktes, der auf die Schwankungen des Marktes basiert.
  4. Die Eintrittsbedingungen sind streng, was eine falsche Einbruchsanzeige verhindern kann.

Risiken und Lösungen

Die Strategie birgt auch einige Risiken:

  1. Wenn es zu einer langfristigen Erschütterung kommt, wird eine große Anzahl von ungültigen Geschäften eröffnet. Die Lösung besteht darin, mehr Filterbedingungen hinzuzufügen, um unnötige Geschäfte zu vermeiden.
  2. Es besteht die Gefahr, dass ein gewisses Zeitverzögerungsrisiko besteht. Die Lösung besteht darin, die Periodenparameter des Moving Averages angemessen zu verkürzen.
  3. Die Wirkung des RSI-Signals wird von den Aktien und den Märkten beeinflusst. Die Lösung besteht darin, die Wirkung durch weitere Faktoren zu beurteilen, z. B. die K-Linienform.

Optimierungsrichtung

Die Strategie kann auch in folgenden Bereichen optimiert werden:

  1. Zusätzliche Störungsbedingungen, wie z. B. Störungsmenge, K-Linienform, erhöhen die Wirksamkeit des Signals weiter.
  2. Optimierung der Perioden der Moving Averages und RSI-Parameter, um sie besser an die Eigenschaften verschiedener Aktien anzupassen.
  3. Einrichtung von dynamischen Moving Averages, die die Parameter automatisch an die Marktvolatilität und die Risikopräferenzen anpassen.
  4. Die Nutzung von fortschrittlicheren Technologien wie maschinellem Lernen, um Trends zu beurteilen, erhöht die Genauigkeit der Beurteilung.

Zusammenfassen

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.

Strategiequellcode
/*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)