Dynamische Strategie für den Verluststop-Trail

Schriftsteller:ChaoZhang, Datum: 2023-11-21 15:22:44
Tags:

img

Übersicht

Die dynamische Stop-Loss-Trail-Strategie berechnet den durchschnittlichen wahren Bereich (ATR) von Aktien als Benchmark, kombiniert mit ATR-Koeffizienten, die von Benutzern festgelegt werden, um die Stop-Loss-Linien und Trail-Linien dynamisch festzulegen, um den Zweck des Stop-Loss-Trails zu erreichen.

Strategieprinzip

Die Strategie verwendet hauptsächlich den technischen Indikator ATR zur Berechnung des durchschnittlichen wahren Aktienpreisbereichs und kombiniert ATR-Koeffizienten, die von Nutzern als Benchmarks für Aktien-Breakout-Käufe und Stop-Loss-Verkäufe eingegeben wurden. Insbesondere berechnet die Strategie zuerst den ATR-Wert der Aktie in den letzten 120 Tagen, multipliziert ihn dann mit dem vom Nutzer festgelegten Verkaufs-ATR-Koeffizienten, um den Verkaufs-Stop-Loss-Referenzpreis, d.h. die Stop-Loss-Linie, zu erhalten; multipliziert ihn mit dem Kauf-ATR-Koeffizienten, um den Kauf-Referenzpreis, d.h. die Trail-Linie, zu erhalten.

Die Strategie zeichnet auch Stop-Loss-Linien und Trail-Linien. Die Positionen dieser beiden Linien ändern sich je nach Schwankungen der Aktienkurse, mit einigen dynamischen Tracking-Fähigkeiten. Der ATR-Indikator kann den durchschnittlichen wahren Schwankungsbereich einer Aktie besser widerspiegeln.

Analyse der Vorteile

  • Verwenden Sie ATR-Indikatoren zur Berechnung des Kursschwankungsbereichs der Aktie, wenn die Stop-Loss-Trail-Line-Position angemessen ist;
  • Stop-Loss-Linien und Trail-Linien ändern sich dynamisch und bieten eine gewisse Trendverfolgungsmöglichkeit.
  • Gehen Sie lang und kurz zur gleichen Zeit, Handel in zwei Richtungen, mehr Gewinnraum;
  • Die ATR-Indikatoren eignen sich für hochvolatile Aktien und tragen zur Risikokontrolle bei.

Risikoanalyse

  • Die ATR-Indikatoren reagieren unzureichend auf Notfälle und können Risiken nicht vollständig vermeiden.
  • Die Verkäufe von Trailing-Buy-Ins und Stop-Loss-Verkäufen basieren ausschließlich auf dem Brechen von ATR-Linien, es gibt einen gewissen blinden Gehorsam, es kann zu einem Überhandel kommen;
  • Die Rationalität der vom Benutzer eingegebenen ATR-Koeffizienten beeinflusst unmittelbar die Wirksamkeit der Strategie; unsachgemäße Einstellungen können Verluste verursachen.
  • Wenn die Aktienfluktuation abnimmt, können häufige Stop-Loss-Trails die Handelskosten erhöhen.

Optimierung

  • Kombination anderer Indikatoren zur Bestimmung der Handelszeit, Vermeidung von Blind Tracking;
  • Festlegung von Positionsgrößen- und Pyramidenregeln zur Risikokontrolle;
  • Hinzufügen von Handelsvolumen- oder Volatilitätsfiltern, um übermäßigen Handel zu vermeiden;
  • Dynamische Anpassung der ATR-Parameter zur Optimierung des Stop-Loss-Trail-Effekts.

Zusammenfassung

Zusammenfassend ist dies eine typische Stop-Loss-Trail-Strategie. Die Kernidee besteht darin, Stop-Loss-Linien und Trail-Linien basierend auf ATR-Indikatoren für die Trendverfolgung festzulegen. Die Vorteile dieser Strategie sind, dass der Zwei-Wege-Handel aktiviert und die Positionen flexibel sind; ATR-Indikatoren helfen, Risiken zu kontrollieren, was sie für hochvolatile Aktien geeignet macht. Es gibt jedoch einige Blind-Tracking-Risiken aufgrund eher einfacher Handelsregeln; unsachgemäße Parameter-Einstellungen beeinflussen auch die Effektivität der Strategie. Zukünftige Optimierungen können sich auf die Verbesserung der Handelszeit, die Kontrolle der Positionsgrößen, die Verringerung von Überschusshandel usw. konzentrieren, um die Strategieleistung robuster zu machen.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © phobo3s

//@version=4
strategy("ATR Stop Buy Strategy",shorttitle="ATR-ST",initial_capital=1000, overlay = true, default_qty_type = strategy.percent_of_equity, pyramiding = 5, default_qty_value = 20, commission_type = strategy.commission.cash_per_order, commission_value = 1, calc_on_every_tick = true)

daysBack = input(defval=120, title="Days Back", type=input.integer)
sellCoeff = input(defval=1.5, title="Selling Coefficent For ATR", type=input.float, minval= 0.01, step=0.1)
buyCoeff = input(defval=1.2, title = "Buying Coefficent For ATR", type=input.float, minval= 0.01, step=0.1)

fromDate = timenow - (daysBack*24*60*60*1000)
toDate = timenow 

ATR = atr(14)
stopLossPoint = ATR * sellCoeff
buyPoint = ATR * buyCoeff

StoplossLine =  close[1] - stopLossPoint[1]
BuyLine = close[1] + buyPoint[1]

if (high > BuyLine and time >= fromDate and time <= toDate )
    strategy.entry("GG", strategy.long, comment="Gir")
if (low < StoplossLine and strategy.position_avg_price < close and time >= fromDate and time <= toDate )
    strategy.entry("GG", strategy.short, comment="Çık")

//longFlags = close < StoplossLine
//shortFlags = close > BuyLine
//plotshape(shortFlags, style=shape.triangledown, location=location.abovebar, color=color.red)
//plotshape(longFlags, style=shape.triangleup, location=location.belowbar, color=color.blue)
plot(StoplossLine)
plot(BuyLine)

Mehr