Gleitender Durchschnitt Golden Crossover RSI MACD Strategie


Erstellungsdatum: 2024-01-05 16:11:23 zuletzt geändert: 2024-01-05 16:11:23
Kopie: 0 Klicks: 649
1
konzentrieren Sie sich auf
1617
Anhänger

Gleitender Durchschnitt Golden Crossover RSI MACD Strategie

Überblick

Die Strategie ist eine Kombinationsstrategie, die RSI, MACD und Moving Averages verwendet. Sie kombiniert die Überkauf-Überverkauf-Signale des RSI, die Empfindlichkeit des MACD und die Indikatorwirkung des Moving Averages, um den Zeitpunkt des Markteintritts zu bestimmen.

Strategieprinzip

Die Strategie basiert auf folgenden vier Kriterien:

  1. Die MACD-Säule ist größer als der eingestellte Mehrkopf-Eintritt-Parameter;
  2. Der RSI ist größer als 50, was bedeutet, dass er überkauft ist.
  3. Kurzfristige EMAs werden über langfristige EMAs verteilt und bilden eine Goldkreuzung.
  4. Der Schlusskurs trägt die langfristige EMA und ist höher als die langfristige EMA plus die ATR-Stoppspanne.

Die Strategie platziert einen Stop-Loss, wenn zwei der folgenden Bedingungen erfüllt sind:

  1. Die MACD-Säule ist kleiner als der eingestellte Stop-Loss-Parameter;
  2. Die kurzfristige EMA unterbricht die langfristige EMA.

Auf diese Weise wird die Strategie bei einem Ertragsrückzug zeitnah eingestellt, um größere Verluste zu vermeiden.

Analyse der Stärken

Der größte Vorteil dieser Strategie liegt in der Kombination von Indikatoren, die die Vorteile der einzelnen Indikatoren ausüben, nämlich:

  1. Der Einsatz von RSI vermeidet den Verlust von Transaktionsgebühren, die durch die Wiederholung von Positionen in einem bewegten Umfeld entstehen.
  2. Die Sensitivität der MACD-Säulen sorgt dafür, dass die Wendepunkte rechtzeitig erfasst werden.
  3. Der Moving Average filtert die Kurzlinien-Marktgeräusche und wirkt als Indikator.

Risiken und Lösungen

Es gibt zwei große Risiken bei dieser Strategie:

  1. Das größte Risiko bei Trendstrategien wie beispielsweise Moving Averages besteht in einem größeren Rückzug, der durch eine Marktumkehr verursacht wird. Der Rückzug kann durch eine Verringerung der Positionsgröße und die Stop-Loss-Einstellungen aktiv kontrolliert werden.

  2. Die Parameteroptimierung ist sehr schwierig. Die Einstellung und Optimierung der Parameter einer Mehrindikator-Kombinationsstrategie ist sehr schwierig. Parameteroptimierungsmethoden wie Schritt-und-Schritt-Prozesse und genetische Algorithmen können verwendet werden, um die optimalen Parameter zu ermitteln.

Optimierung

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Hinzufügen von zusätzlichen Bedingungen zur weiteren Filterung falscher Signale, z. B. in Verbindung mit Handelsvolumen- und Volatilitätsindikatoren.

  2. Verschiedene Sorten mit unterschiedlichen Parameter-Einstellungen testen. Parameter für mehr Sorten anpassen.

  3. Optimieren Sie die Einstellung der Moving Average-Parameter. Testen Sie die Unterschiede zwischen den Parametern der verschiedenen Längen.

  4. Die Studie verwendet einen adaptiven Moving Average.

Zusammenfassen

Diese Strategie ist eine typische Optimierung der Moving Average- und Trend-Tracking-Strategie. Sie nutzt die Vorzüge mehrerer Mainstream-Indikatoren wie MACD, RSI und andere und ist einzigartig in der Bestimmung der Markteintrittszeit und des Stop-Losses. Als nächstes können Sie in verschiedenen Bereichen wie Parameteroptimierung und Risikokontrolle verbessern, um die Strategie-Parameter robuster und an mehr Sorten anzupassen, um eine höhere Stabilität zu erzielen.

Strategiequellcode
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Improved RSI MACD Strategy with Moving Averages", overlay=true)

// Inputs
src = input(close, title="RSI Source")

// RSI Settings
lengthRSI = input.int(14, minval=1)

// Stop Loss Settings
stopLossPct = input.float(0.09, title="Stop Loss Percentage")
takeProfitPct = input.float(0.15, title="Take Profit Percentage")

// MACD Settings
fastlen = input(12)
slowlen = input(26)
siglen = input(9)

// Strategy Settings
longEntry = input(0, title="Long Entry Level")
exitLevel = input(0, title="Exit Level")

// EMA Settings
emaShortLength = input(8, title="Short EMA Length")
emaLongLength = input(21, title="Long EMA Length")

atrMultiplier = input.float(2, title="atrMultiplier")
atrLength = input.int(20, title="atrLength")

// Indicators
rsi1 = ta.rsi(src, lengthRSI)
[macd, signal, hist] = ta.macd(src, fastlen, slowlen, siglen)

// Calculate EMAs
emaShort = ta.ema(src, emaShortLength)
emaLong = ta.ema(src, emaLongLength)

// Calculate ATR
atr = ta.atr(atrLength)

// Variables
var bool canEnterLong = na

// Strategy conditions
longCondition = hist > longEntry and rsi1 > 50 and emaShort > emaLong and close > emaLong + atrMultiplier * atr

// Entries and Exits
if hist < exitLevel and emaShort < emaLong
    canEnterLong := true
    strategy.close("Long")
    
// Store last entry price
var lastEntryPrice = float(na)
var lastEntryPrice2 = float(na)
if longCondition
    strategy.entry("Long", strategy.long)
    canEnterLong := false
    lastEntryPrice := close
if lastEntryPrice < close
    lastEntryPrice := close
// Calculate Stop Loss and Take Profit Levels based on last entry price
stopLossLevel = lastEntryPrice * (1 - stopLossPct)

// Check for stop loss and take profit levels and close position if triggered
if (strategy.position_size > 0)
    last_buy = strategy.opentrades[0]
    if (close < stopLossLevel)
        strategy.close("Long", comment="Stop Loss Triggered")
    if (close * (1 - takeProfitPct) > strategy.opentrades.entry_price(strategy.opentrades - 1) )
        strategy.close("Long", comment="Take Profit Triggered")