Trendfolgendes Handelssystem mit ATR dynamischem Trailing Stop Loss

ATR EMA ROI TSL
Erstellungsdatum: 2025-02-20 13:22:24 zuletzt geändert: 2025-02-20 14:53:21
Kopie: 2 Klicks: 445
2
konzentrieren Sie sich auf
319
Anhänger

Trendfolgendes Handelssystem mit ATR dynamischem Trailing Stop Loss Trendfolgendes Handelssystem mit ATR dynamischem Trailing Stop Loss

Überblick

Die Strategie ist ein Trend-Tracking-System, das auf dem ATR (Average True Range) basiert. Es kombiniert die EMA-Equivalen als Trendfilter und kontrolliert die Signalgenerierung durch Anpassung der Sensitivitätsparameter und der ATR-Periode. Das System unterstützt nicht nur OTC- und Short-Trade, sondern auch Leerverkäufe und verfügt über eine ausgefeilte Gewinnverwaltung.

Strategieprinzip

  1. Berechnen Sie die Preisschwankungen mit dem ATR-Indikator und bestimmen Sie die Stop-Loss-Distanz anhand des eingestellten Sensitivitätskoeffizienten (Key Value)
  2. Durch die EMA-Gewinnlinie wird die Richtung der Marktentwicklung beurteilt und nur dann mehrere Aufträge eröffnet, wenn der Preis über der Mittellinie liegt, und nur dann leere Aufträge, wenn der Preis unter der Mittellinie liegt
  3. Ein Handelssignal wird ausgelöst, wenn der Preis die Stop-Loss-Linie überschreitet und der Trendrichtung entspricht
  4. Das System verwaltet die Positionen auf Basis von Segmenten:
    • Bei Gewinn von 20% bis 50% wird der Stop-Loss auf Kosten-Preis-Sicherheit erhöht.
    • Bei einem Gewinn von 50% bis 80% wird ein Teil des Gewinns geschlossen und die Stop-Loss-Position verschärft
    • Bei einem Gewinn von 80% bis 100% wird der Stop-Loss-Schutz weiter verschärft
    • Wenn der Gewinn über 100% liegt, ist der Gewinn vollständig ausgeglichen.

Strategische Vorteile

  1. Dynamische Stop-Loss-Verfolgung ermöglicht eine effiziente Trendverfolgung und schützt den Gewinn ohne vorzeitige Ausstieg
  2. Die EMA-Trendfilter reduzieren das Risiko von Falschbrüchen
  3. Das Segment-Profit-Mechanismus garantiert sowohl die Ertragsgewinnung als auch die Entwicklung des Trends
  4. Es ist wichtig, mehr Devisenhandel zu unterstützen, um die Marktchancen zu nutzen.
  5. Die Parameter sind flexibel und passen sich den unterschiedlichen Marktbedingungen an.

Strategisches Risiko

  1. Häufiger Handel kann zu Verlusten führen
  2. Eine frühe Trendwende könnte zu einem größeren Rückzug führen
  3. Falsche Parametereinstellungen können die Leistung der Strategie beeinträchtigen Vorschläge zur Risikokontrolle:
  • Empfohlen für Märkte mit deutlichen Trends
  • Vorsicht bei der Auswahl der Parameter, optimiert durch Rückmessung
  • Setzen Sie eine maximale Rücknahme-Grenze
  • Erwägen Sie zusätzliche Filterbedingungen für die Marktumgebung

Richtung der Strategieoptimierung

  1. Erhöhung der Identifikationsmechanismen für die Marktumgebung und Verwendung verschiedener Parameter für verschiedene Marktbedingungen
  2. Die Einführung von Hilfsindikatoren wie Verkehrsmenge erhöht die Signalsicherheit
  3. Optimierung der Gewinnmanagementmechanismen und Anpassung der Gewinnziele an die Dynamik der Volatilität
  4. Mehr Zeitfilterung, um zu schlechten Zeiten zu handeln
  5. Erwägen Sie die Einführung eines Volatilitätsfilters, um die Häufigkeit von Transaktionen bei übermäßiger Volatilität zu verringern

Zusammenfassen

Es ist ein strukturiertes, logisch klares Trend-Tracking-System. Durch die Kombination von ATR-Dynamik-Tracking und EMA-Trend-Filterung wird das Risiko besser kontrolliert, während die Trends erfasst werden. Die Gestaltung des Segment-Gewinn-Mechanismus spiegelt auch das ausgereifte Trading-Denken wider. Die Strategie hat eine starke Praktikabilität und Skalierbarkeit, die durch kontinuierliche Optimierung und Verbesserung zu besseren Handelsergebnissen führt.

Strategiequellcode
/*backtest
start: 2024-10-15 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Enhanced UT Bot with Long & Short Trades", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Input Parameters
keyvalue = input.float(1.1, title="Key Value (Sensitivity)", step=0.1)
atrperiod = input.int(200, title="ATR Period")
emaPeriod = input.int(50, title="EMA Period")
roi_close = input.float(100, title="Close Trade at ROI (%)", step=1)

// ATR Calculation
src = close
xATR = ta.atr(atrperiod)
nLoss = keyvalue * xATR

// EMA for Trend Filtering
ema = ta.ema(src, emaPeriod)

// Trailing Stop Logic
var float xATRTrailingStop = na
if na(xATRTrailingStop)
    xATRTrailingStop := src - nLoss

if src > nz(xATRTrailingStop[1]) and src[1] > nz(xATRTrailingStop[1])
    xATRTrailingStop := math.max(nz(xATRTrailingStop[1]), src - nLoss)
else if src < nz(xATRTrailingStop[1]) and src[1] < nz(xATRTrailingStop[1])
    xATRTrailingStop := math.min(nz(xATRTrailingStop[1]), src + nLoss)
else
    xATRTrailingStop := src > nz(xATRTrailingStop[1]) ? src - nLoss : src + nLoss

// Buy/Sell Signal with Trend Filter
buySignal = ta.crossover(src, xATRTrailingStop) and src > ema
sellSignal = ta.crossunder(src, xATRTrailingStop) and src < ema

// Strategy Logic: Long Trades
if buySignal and strategy.position_size <= 0
    strategy.entry("Buy", strategy.long)

if sellSignal and strategy.position_size > 0
    strategy.close("Buy")

// Strategy Logic: Short Trades
if sellSignal and strategy.position_size >= 0
    strategy.entry("Sell", strategy.short)

if buySignal and strategy.position_size < 0
    strategy.close("Sell")

// ROI Calculation for Both Long and Short Trades
var float entryPrice = na
var bool isLong = na
if strategy.position_size > 0
    entryPrice := strategy.opentrades.entry_price(0)
    isLong := true
if strategy.position_size < 0
    entryPrice := strategy.opentrades.entry_price(0)
    isLong := false

// Calculate current profit
currentProfit = isLong ? (close - entryPrice) / entryPrice * 100 : (entryPrice - close) / entryPrice * 100

// Enhanced ROI Management
if strategy.position_size > 0 // Long Position
    if currentProfit >= 20 and currentProfit < 50
        stopLevel = entryPrice // Breakeven
        strategy.exit("TSL Breakeven", from_entry="Buy", stop=stopLevel)
    if currentProfit >= 50 and currentProfit < 80
        stopLevel = entryPrice * 1.30 // 30% ROI
        strategy.exit("TSL 30%", from_entry="Buy", stop=stopLevel)
        strategy.close("Partial Profit", qty_percent=50) // Take 50% profit
    if currentProfit >= 80 and currentProfit < roi_close
        stopLevel = entryPrice * 1.60 // 60% ROI
        strategy.exit("TSL 60%", from_entry="Buy", stop=stopLevel)
    if currentProfit >= roi_close
        strategy.close("Full Exit at 100% ROI")

if strategy.position_size < 0 // Short Position
    if currentProfit >= 20 and currentProfit < 50
        stopLevel = entryPrice // Breakeven
        strategy.exit("TSL Breakeven", from_entry="Sell", stop=stopLevel)
    if currentProfit >= 50 and currentProfit < 80
        stopLevel = entryPrice * 0.70 // 30% ROI (Short stop)
        strategy.exit("TSL 30%", from_entry="Sell", stop=stopLevel)
        strategy.close("Partial Profit", qty_percent=50) // Take 50% profit
    if currentProfit >= 80 and currentProfit < roi_close
        stopLevel = entryPrice * 0.40 // 60% ROI (Short stop)
        strategy.exit("TSL 60%", from_entry="Sell", stop=stopLevel)
    if currentProfit >= roi_close
        strategy.close("Full Exit at 100% ROI")

// Plotting
plot(xATRTrailingStop, color=buySignal ? color.green : sellSignal ? color.red : color.gray, title="Trailing Stop")
plot(ema, color=color.blue, title="EMA Trend Filter")
plotshape(buySignal, title="Buy Signal", style=shape.labelup, location=location.belowbar, color=color.green, text="Buy")
plotshape(sellSignal, title="Sell Signal", style=shape.labeldown, location=location.abovebar, color=color.red, text="Sell")