Handelssystem mit doppeltem gleitendem Durchschnitt und zusammengesetzter RSI/ATR-Filterung basierend auf dynamischer Volatilitätsanpassung

MA RSI ATR RR SL TP SMA
Erstellungsdatum: 2025-02-21 11:58:43 zuletzt geändert: 2025-02-21 11:58:43
Kopie: 1 Klicks: 390
2
konzentrieren Sie sich auf
319
Anhänger

Handelssystem mit doppeltem gleitendem Durchschnitt und zusammengesetzter RSI/ATR-Filterung basierend auf dynamischer Volatilitätsanpassung Handelssystem mit doppeltem gleitendem Durchschnitt und zusammengesetzter RSI/ATR-Filterung basierend auf dynamischer Volatilitätsanpassung

Strategieübersicht

Die Strategie ist ein komplexes Handelssystem, das eine Kombination aus Binär-Gleichgewichtskreuzung, RSI-Überkauf und Überverkauf und ATR-Flotterung enthält. Das System erzeugt Handelssignale mit kurz- und langfristigen Moving Averages, filtert Marktzustände über den RSI-Indikator, beurteilt die Volatilität mit dem ATR-Indikator und führt Positionsmanagement und Risikokontrolle in Kombination mit einem Prozentsatz von Stop-Loss- und Risiko-Gewinn-Verhältnis. Die Strategie ist stark anpassungsfähig und kann die Parameter flexibel an die Marktumgebung anpassen.

Strategieprinzip

Die Kernlogik der Strategie basiert auf folgenden Aspekten:

  1. Signalgenerierung: Die Kreuzung des 9. und 21. einfachen gleitenden Durchschnitts wird genutzt, um Trendänderungen zu erfassen. Bei einem Überschreiten des kurzfristigen Durchschnitts wird ein Mehrwertsignal erzeugt, bei einem Überschreiten des langfristigen Durchschnitts ein Leerwertsignal.
  2. Konditions-Filter: Überkauf-Überverkauf-Filter mit dem RSI-Indikator, um den Eintritt in extreme Marktbedingungen zu vermeiden. Der ATR-Indikator wird verwendet, um sicherzustellen, dass die Marktvolatilität die Handelsbedingungen erfüllt.
  3. Risikomanagement: Prozentsatz des Stop-Losses basierend auf dem Nettowert des Kontos, um die Stop-Loss-Position zu bestimmen, indem ein Risiko-Gewinn-Verhältnis festgelegt wird, um eine angemessene Gewinne zu erzielen, während das Risiko abgesichert wird.

Strategische Vorteile

  1. Die Anpassungsfähigkeit des Systems: Die Strategie kann flexibel an die verschiedenen Marktbedingungen angepasst werden, indem die RSI- und ATR-Filter aktiviert/deaktiviert werden.
  2. Risikokontrolle: Durch die Verwendung von Stop-Loss-Prozentsätzen und dynamischer Positionsverwaltung wird die Risikolockage für jeden Handel effektiv kontrolliert.
  3. Hohe Signalzuverlässigkeit: Durch mehrere Filtermechanismen wird der Einfluss von falschen Signalen verringert und die Erfolgsrate der Transaktionen erhöht.
  4. Die Parameter sind flexibel: Die Parameter lassen sich an die spezifischen Merkmale des Marktes anpassen.

Strategisches Risiko

  1. Schwankungsrisiko: In schwankenden Märkten kann das Kreuzen der Mittellinien häufig zu falschen Signalen führen.
  2. Rückstandsrisiko: Der Moving Average hat eine gewisse Rückstandsfähigkeit und kann die beste Einstiegsmomente verpassen.
  3. Risiken der Parameteroptimierung: Überoptimierte Parameter können zu einer Überpassung der Strategie führen und die Leistung der Festplatte beeinträchtigen.
  4. Marktumfeldabhängigkeit: Die Strategie funktioniert besser in einem Markt, in dem eine Tendenz sichtbar ist, während sie in anderen Marktumgebungen weniger effektiv sein kann.

Richtung der Strategieoptimierung

  1. Dynamische Parameter-Anpassung: Durchschnittszyklus und RSI-Trench können automatisch an die Marktfluktuation angepasst werden.
  2. Erhöhung der Trendstärke-Filter: Einführung von Indikatoren wie DMI oder ADX zur Beurteilung der Trendstärke.
  3. Optimierung der Stop-Loss-Methode: Ein Tracking-Stop oder ein dynamischer Stop-Loss auf ATR-Basis können in Betracht gezogen werden.
  4. Positionsmanagement verbessert: Einführung eines dynamischen Positionsmanagementsystems, das auf Volatilität basiert.

Zusammenfassen

Durch die Kombination mehrerer technischer Indikatoren baut die Strategie ein relativ vollständiges Handelssystem auf. Die Strategie zeichnet sich in Trendmärkten aus und verfügt über eine gute Risikokontrolle. Durch die vernünftige Einstellung der Parameter und das Hinzufügen der notwendigen Filterbedingungen kann die Strategie an unterschiedliche Marktumgebungen angepasst werden.

Strategiequellcode
/*backtest
start: 2025-01-21 00:00:00
end: 2025-02-20 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("Simplified MA Crossover Strategy with Disable Options", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Inputs
shortLength = input.int(9, title="Short MA Length", minval=1)
longLength = input.int(21, title="Long MA Length", minval=1)

// RSI Filter
enableRSI = input.bool(true, title="Enable RSI Filter")
rsiLength = input.int(14, title="RSI Length", minval=1)
rsiOverbought = input.int(70, title="RSI Overbought Level", minval=50, maxval=100)
rsiOversold = input.int(30, title="RSI Oversold Level", minval=0, maxval=50)

// ATR Filter
enableATR = input.bool(true, title="Enable ATR Filter")
atrLength = input.int(14, title="ATR Length", minval=1)
minATR = input.float(0.005, title="Minimum ATR Threshold", minval=0)

// Risk Management
stopLossPerc = input.float(0.5, title="Stop Loss (%)", minval=0.1) / 100
riskRewardRatio = input.float(2, title="Risk-Reward Ratio", minval=1)
riskPercentage = input.float(2, title="Risk Percentage", minval=0.1) / 100

// Indicators
shortMA = ta.sma(close, shortLength)
longMA = ta.sma(close, longLength)
rsi = ta.rsi(close, rsiLength)
atr = ta.atr(atrLength)

// Conditions
longCondition = ta.crossover(shortMA, longMA)
shortCondition = ta.crossunder(shortMA, longMA)

// Apply RSI Filter (if enabled)
if (enableRSI)
    longCondition := longCondition and rsi < rsiOverbought
    shortCondition := shortCondition and rsi > rsiOversold

// Apply ATR Filter (if enabled)
if (enableATR)
    longCondition := longCondition and atr > minATR
    shortCondition := shortCondition and atr > minATR

// Risk Management
positionSize = strategy.equity * riskPercentage / (stopLossPerc * close)
takeProfitLevel = strategy.position_avg_price * (1 + stopLossPerc * riskRewardRatio)
stopLossLevel = strategy.position_avg_price * (1 - stopLossPerc)

// Execute Trades
if (longCondition)
    strategy.entry("Long", strategy.long, qty=positionSize)
    strategy.exit("Take Profit/Stop Loss", "Long", limit=takeProfitLevel, stop=stopLossLevel)

if (shortCondition)
    strategy.entry("Short", strategy.short, qty=positionSize)
    strategy.exit("Take Profit/Stop Loss", "Short", limit=strategy.position_avg_price * (1 - stopLossPerc * riskRewardRatio), stop=strategy.position_avg_price * (1 + stopLossPerc))

// Plotting
plot(shortMA, color=color.blue, title="Short MA")
plot(longMA, color=color.red, title="Long MA")
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(atr, color=color.orange, title="ATR")
plotshape(series=longCondition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")