Adaptive Trendfolge-Stop-Loss-Strategie


Erstellungsdatum: 2023-10-17 14:04:28 zuletzt geändert: 2023-10-17 14:04:28
Kopie: 0 Klicks: 878
1
konzentrieren Sie sich auf
1617
Anhänger

Adaptive Trendfolge-Stop-Loss-Strategie

Überblick

Die Strategie verwendet die Wilder Volatility Trailing Stop Methode, die in Kombination mit ATR-Indikatoren und verschiedenen Arten von Moving Averages eine sehr anpassungsfähige Trend-Trailing-Stop-Strategie ermöglicht.

Strategieprinzip

Der Kern dieser Strategie ist der Algorithmus des Wilder Volatility Trailing Stops. Er berechnet zunächst die ATR-Anzeige, berechnet die Länge und die Multiplikation der ATR-Anzeige nach den eingegebenen Parametern und erhält eine dynamische Stop-Line.

Der Code umfasst zunächst die Funktion f_ma, um verschiedene Moving Averages wie RMA, EMA, SMA und Hull MA zu realisieren. Die ATR-Anzeige wird dann mit dem vom Benutzer festgelegten Multiplikator multipliziert, um eine Stop-Line zu erhalten, die auf der Volatilität basiert. Die Funktion “highest” und “lowest” verfolgen die Höchst- und Tiefpunkte der Stop-Line und handeln, wenn der Preis die Stop-Line durchbricht.

Die Strategie nutzt ATR-Indikatoren, verschiedene Arten von Mittellinien und Parameter-Einstellungen, um eine sehr anpassungsfähige Trend-Stopp-Strategie zu realisieren. Sie kann Trends effektiv verfolgen und bei größeren Marktrückgängen den Kurs abbrechen.

Analyse der Stärken

  • Die Strategie setzt zunächst auf den Wilder Volatility Trailing Stop-Algorithmus, eine bewährte und zuverlässige Methode zur Trendverfolgung.

  • Die Strategie verwendet die ATR-Anzeige, um die Stop-Line dynamisch zu berechnen, um zu verhindern, dass die Stop-Line zu steif ist. Die ATR-Anzeige kann die Volatilität und das Risiko des Marktes effektiv widerspiegeln.

  • Der Code ermöglicht die Auswahl von RMA, EMA, SMA und Hull MA, was die Anpassungsfähigkeit der Strategie erhöht.

  • Durch die Anpassung der ATR-Länge und der Multiplikationsparameter können die optimalen Parameter für verschiedene Märkte gefunden und die Effektivität der Strategie optimiert werden.

  • Die Strategie nutzt verschiedene Preisoptionen wie Höchst-, Tief- und Schlusskurs, um die Stop-Loss-Linie zu berechnen, die für verschiedene Sorten optimiert werden kann.

  • Insgesamt ist die Strategie eine zuverlässige, anpassungsfähige und leicht optimierbare Trend-Tracking-Stopp-Strategie.

Risikoanalyse

  • Die Strategie beruht hauptsächlich auf Parameteroptimierung, die in verschiedenen Märkten und Sorten getestet werden muss, um die richtige Kombination von ATR und Multiplikatorparameter zu finden, ansonsten kann die Stop-Loss-Effektivität schwach sein.

  • In einem wackligen Umfeld kann es vorkommen, dass die ATR-Stopp-Linie häufig einen Stopp auslöst. Die Optimierung muss in Kombination mit einem Trend-Kennzeichen durchgeführt werden, um einen wackligen Trend zu vermeiden.

  • Eine zu lockere Stop-Line verpasst die Möglichkeit, einen Rückzug zu verhindern; eine zu enge Stopp-Line erhöht die Handelsfrequenz und die Kosten für die Gleitpunkte. Es muss sorgfältig getestet werden, um einen Ausgleichspunkt zu finden.

  • Die Auswahl von mehreren Durchschnittslinien kann zu einer Abweichung der Wirksamkeit der Strategie führen. Für die jeweilige Sorte sollte eine Hauptmittellinie ausgewählt werden, die anderen Mittellinien dienen nur als Hilfsreferenzen.

  • Die Strategie konzentriert sich auf Trendverfolgung und kann nicht direkt profitiert werden. Die Verwendung in Kombination mit anderen Markteintritts- und Ausstiegsstrategien oder Stop-Off-Strategien sollte in Betracht gezogen werden.

  • Wenn die Parameter nicht aktuell sind, kann die Strategie zu häufig gehandelt oder zu lange gehalten werden. Dies muss durch Optimierung behoben werden.

Optimierungsrichtung

  • Es kann in Erwägung gezogen werden, Trendindikatoren einzusetzen, um zu beurteilen, ob ein Trend besteht, und um zu vermeiden, dass man in einer Erschütterung verwickelt wird.

  • Es kann getestet werden, dass ein Umkehrungselement hinzugefügt wird, um die Stop-Loss-Position schneller in die Richtung zu wechseln, wenn sich der Wind- und der Mehrkopf-Trend abwechseln.

  • Es kann versucht werden, die ATR-Längenparameter mit den Merkmalen der Handelsarten zu verknüpfen, wobei verschiedene Arten unterschiedliche ATR-Längen einstellen.

  • Es kann versucht werden, einen Handelsvolumenindikator hinzuzufügen, um die Stop-Loss-Linie zu verschärfen, wenn der Handelsvolumen deutlich zurückgeht.

  • Es kann in Betracht gezogen werden, die Rücknahmequote zu erhöhen, aber nicht zu eng, um zu verhindern, dass die normale Rücknahme zu stark beeinträchtigt wird.

  • Es ist möglich, die Urteilsfähigkeit mit anderen Indikatoren zu kombinieren und die Parameter zu optimieren, um die Stop-Loss-Range bei unzureichender Leistung angemessen zu erleichtern.

Zusammenfassen

Die Strategie basiert auf der Idee des Wilder Volatility Trailing Stops und nutzt die ATR-Indikatoren, um eine sehr anpassungsfähige Trend-Tracking-Stopp-Strategie zu entwickeln. Sie kann durch Parameteroptimierung sehr gut an verschiedene Handelsarten angepasst werden und ist eine zuverlässige und praktische Stop-Strategie. Wir müssen jedoch auch auf das Risiko achten, indem wir Trendurteile und Handelsvolumen-Elemente hinzufügen, um sie weiter zu optimieren und zuverlässiger zu machen.

Strategiequellcode
/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

// Wilder's Volatility Trailing Stop Strategy with various MA's
// by SparkyFlary

//For Educational Purposes
//Results can differ on different markets and can fail at any time. Profit is not guaranteed.
strategy(title="Wilder's Volatility Trailing Stop Strategy with various MA's", shorttitle="Trailing Stop Strategy", overlay=true)

AtrMult = input(3.0, title="ATR multiplier")
ATRlength = input(7, title="ATR length")
ATRavgType = input("RMA", title="ATR moving average type", options=["RMA", "EMA", "SMA", "HULL"])
sicType = input("close", title="significant close type for trail calculation", options=["close", "high-low"])

//function for choosing moving averages
f_ma(type, src, len) =>
    float result = 0
    if type == "RMA" // Wilder's moving averaege or Running moving average
        result := rma(src, len)
    if type == "EMA" // Exponential moving average
        result := ema(src, len)
    if type == "SMA" // Simple moving average
        result := sma(src, len)
    if type == "HULL" // Hull moving average
        result := wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len)))
    result

ATR = f_ma(ATRavgType, tr, ATRlength)
upperTrail = lowest(sicType=="close"?close:low, ATRlength) + AtrMult * ATR
lowerTrail = highest(sicType=="close"?close:high, ATRlength) - AtrMult * ATR

float TS = 0
TS := close < TS[1] ? upperTrail[1] : close > TS[1] ? lowerTrail[1] : TS

//plot
plot(TS, title="trailing stop", color=close<TS?color.red:color.green)

//Strategy
buy = crossover(close, TS)
//sell = close < TS
short = crossunder(close, TS)
//cover = close > TS

strategy.entry(id="enter long", long=true, when=buy)
//strategy.close(id="enter long", comment="exit long", when=sell)
strategy.entry(id="enter short", long=false, when=short)
//strategy.close(id="enter short", comment="exit short", when=cover)