Supertrend-Strategie basierend auf ATR und Trailing Stop
Überblick
Diese Strategie basiert auf dem Indikator der durchschnittlichen realen Schwankungsbreite (ATR) und entwirft eine bewegliche Stop-Loss- und Umkehrlinie. Sie verfolgt den Trailing-Stop-Loss, d. h. die Anpassung der Stop-Loss-Linie, entsprechend der Preisänderung. Insbesondere bewegt sich die Stop-Loss-Linie im festen Verhältnis in Richtung Gewinn, wenn der Preis um mehr als 1% wechselt.
Strategieprinzip
Die Strategie berechnet die Stop-Line mit dem ATR-Indikator. Die spezifische Formel lautet:
pine
atr = multplierFactor * atr(barsBack)
longStop = hl2 - atr
shortStop = hl2 + atr
Der MultiplierFactor ist der ATR-Vergrößerungsfaktor, der Bar-Back ist die Anzahl der ATR-Zyklen. Je größer der ATR, desto größer ist die Marktfluktuation.
Die LongStop- und ShortStop-Stop-Linien werden anhand der ATR-Werte berechnet. Wenn der Preis diese beiden Linien überschreitet, wird ein Handelssignal ausgegeben.
Darüber hinaus führt die Strategie eine "Direction" -Variable ein, um die Richtung des Trends zu bestimmen:
mylang
direction = 1
direction := nz(direction[1], direction)
direction := direction == -1 and close > shortStopPrev ? 1 : direction == 1 and close < longStopPrev ? -1 : direction
Wenn die Richtung 1 ist, ist es in einem mehrköpfigen Trend, wenn die Richtung -1 ist, ist es in einem ungebundenen Trend.
Die Stop-Line wird in verschiedenen Farben angezeigt, je nachdem, wie die Richtung variiert:
mylang
if (direction == 1)
valueToPlot := longStop
colorToPlot := color.green
else
valueToPlot := shortStop
colorToPlot := color.red
Auf diese Weise kann man die Richtung des aktuellen Trends und die Position der Stop-Line deutlich sehen.
Verfolgung von Stop-Loss-Mechanismen
Der Schlüssel zur Strategie besteht in der Einführung eines Stop-Tracking-Mechanismus, der die Stop-Line in Echtzeit an die Preisentwicklung anpasst.
Die Logik lautet wie folgt:
mylang
strategyPercentege = (close - updatedEntryPrice) / updatedEntryPrice * 100.00
rideUpStopLoss = hasOpenTrade() and strategyPercentege > 1
if (rideUpStopLoss)
stopLossPercent := stopLossPercent + strategyPercentege - 1.0
newStopLossPrice = updatedEntryPrice + (updatedEntryPrice * stopLossPercent) / 100
stopLossPrice := max(stopLossPrice, newStopLossPrice)
updatedEntryPrice := stopLossPrice
Wenn der Preis im Vergleich zum Einstiegspreis um mehr als 1% gestiegen ist, wird die Stop-Loss-Linie nach oben verfolgt. Die Bereinigung der Breite beträgt mehr als 1%.
Das bedeutet, dass mehr Gewinne gesichert werden können, während gleichzeitig weniger Verluste entstehen.
Analyse der Stärken
Der größte Vorteil dieser Strategie gegenüber herkömmlichen mobilen Stop-Loss-Strategien besteht darin, dass die Stop-Lines dynamisch an die Marktbedingungen angepasst werden können. Die spezifischen Vorteile sind wie folgt:
-
Das Unternehmen ist in der Lage, die Gewinne im Trend zu lockern.
Der Tracking-Stop-Mechanismus lässt die Stop-Line kontinuierlich in Richtung Gewinn bewegen, um höhere Gewinne zu sichern, wenn die Marktentwicklung weiter wächst.
-
Das ist eine sehr wichtige Entscheidung, um die Verluste zu reduzieren.
Die Strategie basiert auf der Berechnung der Marktvolatilität und kann die Preisänderungen vernünftigerweise verfolgen, um zu vermeiden, dass die Stop-Losses bei der Bilanzierung übersprungen werden.
-
Einfach zu bedienen und leicht zu automatisieren
Die Strategie basiert ausschließlich auf Indikatoren und ist ohne komplizierte Trend-Beurteilung-Logik.
-
Anpassbare Parameter für verschiedene Sorten
Die ATR-Periode, der Vergrößerungsprozess und die Stop-Loss-Marge können individuell angepasst werden, um die Strategie für verschiedene Sorten zu optimieren.
Risikoanalyse
Obwohl diese Strategie viele Vorteile hat, gibt es folgende Risiken:
-
Es ist unmöglich, einen Trendwendepunkt zu bestimmen, es besteht die Gefahr, dass es nach oben oder unten geht.
Die Strategie beurteilt nicht die Logik des Endes eines Trends.
-
Fehlgelegte Parameter können den Verlust vergrößern
Wenn die ATR-Zyklusparameter zu kurz eingestellt sind, ist die Stop-Line zu empfindlich und kann durch häufige Erschütterungen ausgelöst werden.
-
Es besteht die Gefahr, dass die Kopie von Reboots zerstört wird.
Die Strategie berücksichtigt nicht die Diversifizierungspunkte als Stop-Loss-Unterstützungspunkte. Daher kann die Kurzlinie bei einer Rebound-Rebellion aus dem Markt geworfen werden.
Für die oben genannten Risiken können Optimierungen in folgenden Bereichen vorgenommen werden:
-
In Kombination mit Trendwellen-Indikatoren kann eine Trendwende vorweggenommen werden.
-
Parameteroptimierungstests zur Auswahl der optimalen Parameterkombination
-
Weiterer Stop-Loss-Bereich in der Nähe von bestimmten Unterstützungswerten
Optimierungsrichtung
Die Strategie kann noch weiter optimiert werden:
-
K-Linien-Form-Beschluss
Die Wahrscheinlichkeit einer Trendwende kann durch die Identifizierung einiger typischer K-Linie-Formen, wie Rücken, Sternschnuppen usw. beurteilt werden. Dies vermeidet die Gefahr, nach den Höhen und Tiefen zu jagen.
-
Optimierung der Parameter für dynamische Tracking
Die ATR-Zyklus, die Vergrößerung des Koeffizienten und andere Parameter können dynamisch verändert werden, um einen längeren ATR-Zyklus und eine breitere Stop-Loss-Spanne in stark volatilen Märkten zu verwenden.
-
Mit Hilfe eines Modells für maschinelles Lernen
Mit Hilfe von Deep-Learning-Modellen wie lstm, rnn, etc. wird die mögliche Preisspanne im Aftermarket vorhergesagt und die Stop-Loss-Distanz dynamisch angepasst.
Zusammenfassen
Die Strategie überall nutzt die ATR-Indikatoren, um eine mobile Stop-Line zu entwerfen und einen Stop-Tracking-Mechanismus einzuführen, der die Stop-Loss-Verlagerung in Echtzeit an die Marktentwicklung anpasst. Dies ermöglicht eine höhere Gewinnsperre und verringert gleichzeitig das Risiko. Durch weitere Optimierungen kann die Strategie besser an verschiedene Marktbedingungen angepasst werden und zu einer universell anpassungsfähigen Handelsstrategie werden.
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// ------------------------------------------------------------------------------ 1

