Dynamische Stop-Loss-Tracking-Strategie basierend auf ATR und SMA


Erstellungsdatum: 2024-03-11 11:55:21 zuletzt geändert: 2024-03-11 11:55:21
Kopie: 0 Klicks: 705
1
konzentrieren Sie sich auf
1617
Anhänger

Dynamische Stop-Loss-Tracking-Strategie basierend auf ATR und SMA

Überblick

Die Strategie kombiniert die ATR (Average True Range) und die SMA (Simple Moving Average) Indikatoren, um ein Handelssystem zu realisieren, in dem ein dynamischer Stop-Loss verfolgt wird. Wenn der Preis über dem SMA liegt und gleichzeitig ein ATR-basierter dynamischer Stop-Loss eingerichtet wird, steigt der Stop-Loss-Preis mit dem Preis.

Strategieprinzip

  1. Der 50-Tage-SMA wird berechnet, wenn der Schlusskurs größer als der 50-Tage-SMA ist.
  2. Berechnen Sie den ATR-Indikator mit einer ATR-Periode von 10 und multiplizieren Sie mit einem Schlüsselwert ([Default 3]) um die Stop-Loss-Marge nLoss zu erhalten.
  3. Berechnung des dynamischen Stop-Preises xATRTrailingStop mit einem Startwert von 0。
    • Wenn der Schlusskurs und der vorherige Schlusskurs größer sind als der vorherige Stop-Loss-Preis, ist der neue Stop-Loss-Preis der größere Wert zwischen dem vorherigen Stop-Loss-Preis und [Schlusskurs - nLoss].
    • Wenn sowohl der Schlusskurs als auch der vorherige Schlusskurs kleiner als der vorherige Stop-Loss-Preis sind, ist der neue Stop-Loss-Preis der kleinere der vorherigen Stop-Loss-Preise und des Schlusskurses plus nLoss.
    • In anderen Fällen wird der neue Stop-Loss-Preis als: ((Endpreis - nLoss) oder ((Endpreis + nLoss)) festgelegt.
  4. Der Schlusskurs wird nach dem Fall des dynamischen Stop-Loss-Preises platziert.
  5. Die Stop-Loss-Punkte sind in verschiedenen Farben markiert, die Mehrkopf-Stop-Loss ist grün, die Leerkopf-Stop-Loss-Loss ist rot, und in anderen Fällen ist sie blau.

Analyse der Stärken

  1. Dynamische Stop-Mechanismen schützen die Gewinne und verringern das Rücknahmerisiko bei Trendbewegungen. Im Vergleich zu festen Stop-Mechanismen sind Dynamische Stop-Mechanismen flexibler und können sich an unterschiedliche Marktbedingungen anpassen.
  2. Die Stop-Loss-Spanne basiert auf der Berechnung des ATR-Indikators, der die Größe der Marktfluktuation sehr gut widerspiegelt. Die Stop-Loss-Distanz wird daher automatisch an die Fluktuation der jüngsten Entwicklung angepasst, wodurch die Stop-Loss-Spanne bei steigender Schwankung vergrößert und bei geringerer Schwankung verkleinert wird.
  3. Die Verwendung des SMA als Grundlage für die Trendbeurteilung ermöglicht die Erfassung eines relativ eindeutigen Trendgeschehens. Wenn Sie mehr als einen SMA auflegen, können Sie zu Beginn des Trends eingreifen und einen größeren Gewinn erzielen.
  4. Es ermöglicht den Benutzern, ATR-Zyklen und Schlüsselwerte zu konfigurieren, und die Strategieparameter können flexibel an die Eigenschaften der verschiedenen Sorten und Zyklen angepasst werden.

Risikoanalyse

  1. In unsicheren oder wackligen Trends kann diese Strategie häufige Off-Positions verursachen, was zu erhöhten Handelskosten und geringeren Gewinnen führt.
  2. Die Strategie ist nur mehr Logik, kann in einem Abwärtstrend nicht profitieren und ist gefährdet, einseitige Märkte zu haben. Es kann in Betracht gezogen werden, die Logik des Depositionierens zu erweitern, um einen beidseitigen Handel zu ermöglichen.
  3. Der Stop-Loss-Punkt basiert auf der ATR-Berechnung. Bei starken Marktschwankungen kann der Stop-Loss-Raum zu groß sein, was zu einem erhöhten Risiko führt. Es kann in Erwägung gezogen werden, einen maximalen Stop-Loss-Wert festzulegen, um den maximalen Verlust für einen einzelnen Handel zu kontrollieren.
  4. Eine falsche Auswahl der Parameter kann dazu führen, dass die Strategie fehlschlägt. Eine zu kleine Auswahl des ATR-Zyklus kann dazu führen, dass der Stop-Loss zu empfindlich und häufig ausgelöst wird. Eine zu große Auswahl kann dazu führen, dass der Stop-Loss nicht rechtzeitig ausgelöst wird und die Verluste erhöht werden.

Optimierungsrichtung

  1. Mit dem Einsatz von Positionslogik kann man auch bei Abwärtstrends profitieren und die Anpassungsfähigkeit der Strategie verbessern. Man kann bei einem Preisbruch über den SMA einen leeren Auftrag eröffnen, ebenso wie mit der dynamischen Stop-Loss-Logik.
  2. Einführung von Multi-Leer-Positionsmanagement, bei dem die Positionsgröße je nach Trendstärke angepasst wird. Erhöhung der Positionen bei starken Trends zur Erhöhung der Erträge; Verringerung der Positionen bei schwachen Trends zur Risikokontrolle.
  3. Optimieren Sie die Stop-Loss-Logik, indem Sie eine maximale Stop-Loss-Marge festlegen, um zu verhindern, dass unter extremen Umständen zu große Verluste auftreten. Sie können auch eine Stop-Loss-Marge festlegen, um nach Erreichen der erwarteten Gewinne aktiv auszugleichen, anstatt sie bis zum Stop-Loss zu halten.
  4. Optimierung der Parameter durch Durchlaufen verschiedener Parameterkombinationen auf der Suche nach der optimalen Parameter-Einstellung. Intelligente Optimierungsmethoden wie genetische Algorithmen können die Optimierungseffizienz erhöhen.
  5. Erwägen Sie, weitere Filterbedingungen wie Handelsvolumen, Volatilität und andere Indikatoren hinzuzufügen, um Trends und Risiken besser zu beurteilen und die Signalsicherheit zu verbessern.

Zusammenfassen

Die Strategie basiert auf den ATR- und SMA-Indikatoren, um ein dynamisches Stop-Loss-Tracking-Handelssystem zu implementieren, das die Stop-Loss-Position automatisch anpasst, um Gewinne zu schützen und Risiken zu kontrollieren. Die Strategie ist klar und hat klare Vorteile, aber es gibt auch Grenzen und Risiken. Durch vernünftige Optimierungen und Verbesserungen, wie z. B. das Hinzufügen von Leerlauflogik, Optimierung der Positionsverwaltung, Setzen von Stop-Loss-Maximierung usw., kann die Stabilität und Profitabilität der Strategie weiter verbessert werden. In der praktischen Anwendung müssen die Strategieparameter flexibel an die verschiedenen Handelsarten und -zyklen angepasst und die Risiken streng kontrolliert werden.

Strategiequellcode
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Trailingstop", overlay=true)

if close > sma(close, 50)
    strategy.entry("long", strategy.long)

// Trailing stop loss for long positions
Trailperc = 0.20
price_stop_long = 0.0

if (strategy.position_size > 0)
    stopValue = close * (1 - Trailperc)
    price_stop_long := max(stopValue, price_stop_long[1])
else
    price_stop_long := 0

if (strategy.position_size > 0)
    strategy.exit(id="stoploss_long", stop=price_stop_long)

// Trailing stop loss for short positions
Trailperc_short = 0.20
price_stop_short = 0.0

if (strategy.position_size < 0)
    stopValue_short = close * (1 + Trailperc_short)
    price_stop_short := min(stopValue_short, price_stop_short[1])
else
    price_stop_short := 0

if (strategy.position_size < 0)
    strategy.exit(id="stoploss_short", stop=price_stop_short)

// ATR Trailing Stop for visualization
keyvalue = input(3, title="Key Value. 'This changes the sensitivity'", step=0.5)
atrperiod = input(10, title="ATR Period")
xATR = atr(atrperiod)
nLoss = keyvalue * xATR

xATRTrailingStop = 0.0
xATRTrailingStop := iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
   iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss),
   iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))

pos = 0  
pos :=   iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
   iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))

xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue

plot(xATRTrailingStop, color = xcolor, title = "Trailing Stop")