Noro verlagert die Strategie für den gleitenden Durchschnittlichen Stop Loss

Schriftsteller:ChaoZhang, Datum: 2024-01-30 15:49:34
Tags:

img

Übersicht

Die Noro Shifted Moving Average Stop Loss Strategie ist eine Trendfolgestrategie. Sie berechnet die 3-tägige einfache gleitende Durchschnittslinie und setzt eine lange Linie darüber und eine Stop-Loss-Linie darunter zu gegebenen Prozentsätzen.

Strategie Logik

Der Kern dieser Strategie ist die Berechnung der 3-tägigen einfachen gleitenden Durchschnittslinie ma. Dann wird ein Prozentsatz lo über ma hinzugefügt, um die lange Linie für Einträge zu erhalten. Wenn der Preis über lange kreuzt, werden lange Positionen geöffnet. Unter ma wird ein Prozentsatz sl subtrahiert, um die Stop-Loss-Linie zu erhalten. Wenn der Preis unter den Stop fällt, werden Positionen gestoppt. Es gibt auch Take-Profit-Linien, die zu einem Prozentsatz über dem aktuellen durchschnittlichen Haltepreis gesetzt werden. tp

Die spezifischen Regeln sind:

  1. Berechnen Sie den 3-tägigen einfachen gleitenden Durchschnitt ma
  2. Lange Linie = ma + ma * lo%
  3. Gewinnausfall = laufender durchschnittlicher Bestandspreis + laufender durchschnittlicher Bestandspreis * tp%
  4. Die Risikopositionen sind in der Tabelle zu ermitteln.

Dies erzeugt eine Trendfolgestrategie, die auf der Grundlage der ma-Benchmark und konfigurierbarer Prozentsätze Eintritts-, Gewinn- und Stop-Loss-Linien festlegt.

Analyse der Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass sie Trends automatisch verfolgen kann. Indem sie ohne Mustererkennung lange für Aufwärtstrends und kurze für Abwärtstrends geht, fängt sie Trends auf. Durch die Hinzufügung von Take Profit und Stop Loss kann sie automatisch stoppen, wenn Trends enden, um Drawdowns zu begrenzen.

Ein weiterer Vorteil ist die flexible Anpassung der Parameter. Durch die Änderung der Prozentsätze für Long, Take Profit und Stop Loss kann die Positionsgröße und der Stop Loss-Ausstand leicht gesteuert werden.

Risikoanalyse

Das größte Risiko dieser Strategie ist der Rutsch. Da eine Stop-Order für einen Stop-Loss verwendet wird, können bei einem schnell fallenden Marktpreis weit unter dem Stop-Loss liegen, bevor die Aufträge ausgeführt werden. Dies kann zu katastrophalen Verlusten führen.

Ein weiteres Risiko besteht in schlecht festgelegten Parametern, die zu häufige Ein- und Ausgänge verursachen und die Provisionskosten erhöhen.

Optimierungsrichtlinien

Die Strategie kann wie folgt optimiert werden:

  1. Verwenden Sie Limit-Orders anstelle von Stop-Orders für Stop-Losses, um Rissrisiken zu vermeiden

  2. Hinzufügen von Positionsgrößen-Einstellungen, um reibungslos ein- und auszuschalten und die Handelsfrequenz zu reduzieren

  3. Hinzufügen von Trenddetektionsfiltern, um falsche Signale in nicht-trendigen Märkten zu vermeiden

  4. Optimieren Sie die Parameter-Einstellungen, um optimale Kombinationen zu finden

Schlussfolgerung

Die Noro Shifted Moving Average Stop Loss Strategie ist eine einfache und praktische Trend-Folge-Strategie. Sie kann automatisch Trends mit Gewinn- und Stop-Loss-Kontrollrisiken verfolgen. Die größten Risiken stammen aus potenziellem Rutsch und übermäßig häufigem Handel durch schlechte Parameteroptimierung. Durch die Verbesserung der Stop-Loss-Technik und die Optimierung der Parameter kann die Strategie robuster gemacht werden.


/*backtest
start: 2023-12-30 00:00:00
end: 2024-01-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//2019
//Noro

//@version=4
strategy("Stop-loss", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
lo = input(-5.0, title = "Long-line, %")
tp = input(5.0, title = "Take-profit")
sl = input(2.0, title = "Stop-loss")

//SMA
ma = sma(ohlc4, 3)
long = ma + ((ma / 100) * lo)

//Orders
avg = strategy.position_avg_price
if ma > 0
    strategy.entry("Long", strategy.long, limit = long)
    strategy.entry("Take", strategy.short, 0, limit = avg + ((avg / 100) * tp))
    strategy.entry("Stop", strategy.short, 0, stop = avg - ((avg / 100) * sl))
    
//Cancel order
if strategy.position_size == 0
    strategy.cancel("Take")
    strategy.cancel("Stop")

//Lines
plot(long, offset = 1, color = color.black, transp = 0)
take = avg != 0 ? avg + ((avg / 100) * tp) : long + ((long / 100) * tp)
stop = avg != 0 ? avg - ((avg / 100) * sl) : long - ((long / 100) * sl)
takelinecolor = avg == avg[1] and avg != 0 ? color.lime : na
stoplinecolor = avg == avg[1] and avg != 0 ? color.red : na
plot(take, offset = 1, color = takelinecolor, linewidth = 3, transp = 0)
plot(stop, offset = 1, color = stoplinecolor, linewidth = 3, transp = 0)

Mehr