Dynamische Schluss-Stop-Loss-Gleitende-Durchschnitt-Strategie


Erstellungsdatum: 2024-01-29 15:52:43 zuletzt geändert: 2024-01-29 15:52:43
Kopie: 0 Klicks: 621
1
konzentrieren Sie sich auf
1617
Anhänger

Dynamische Schluss-Stop-Loss-Gleitende-Durchschnitt-Strategie

Überblick

Die Strategie verwendet die Denkweise des dynamischen Trailing Stops, um die Stop-Line für eine lange und kurze Position auf der Grundlage der ATR und des Preis-Höchstwerts zu berechnen. In Verbindung mit der Idee von Chandelier Exit wird die Richtung der Stop-Line für eine lange und kurze Position beurteilt. Wenn die Stop-Line nach oben bricht, wird sie als pessimistisch beurteilt, und wenn die Stop-Line nach unten bricht, wird sie als pessimistisch beurteilt, und sie wird leer sein.

Die Strategie hat die doppelte Funktion, sowohl die Stop- als auch die Einstiegssignale zu beurteilen.

Strategieprinzip

Die Strategie besteht aus folgenden Teilen:

  1. Auf Basis der ATR berechnete Stop-Loss-Linie

Berechnung der ATR in Echtzeit basierend auf der von den Benutzern festgelegten ATR-Zykluslänge und -mult. Die Stop-Line für die langen und kurzen Positionen wird dann basierend auf der ATR und den Preis-Höchstwerten berechnet:

    longStop = 最高价 - ATR
    shortStop = 最低价 + ATR
  1. Nutzen Sie den Durchbruch, um zu entscheiden, wohin Sie gehen

Vergleichen Sie die Stop-Line der vorherigen K-Linie mit der Stop-Line der aktuellen K-Linie. Wenn die Stop-Line der aktuellen K-Linie durchbrochen wird, wird ein Handelssignal ausgegeben:

    长仓止损线上方突破,做多
    短仓止损线下方突破,做空
  1. Stop-Loss- und Stop-Stopp-Einstellungen basierend auf dem Risiko-Rendite-Verhältnis

Die Stop-Loss-Distanz und die Stop-Stop-Distanz werden aus dem ATR berechnet, basierend auf dem vom Benutzer festgelegten RiskRewardRatio. Es gibt auch eine Stop-Loss- und eine Stop-Out-Anweisung, wenn Sie eine Position eröffnen.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Dynamische Verlustverfolgung und zeitnahe Verlustverfolgung

Die Strategie nutzt eine dynamische Verfolgung der Stop-Line, um die Verluste rechtzeitig zu stoppen und das Absenkungsrisiko zu kontrollieren.

  1. Zudem verfügt es über eine Stop-Loss- und Eintrittsentscheidungsfunktion.

Die Strategie vereinfacht die Strategielogik, indem sie die Stop-Loss-Linie gleichzeitig als Einstiegsvoraussetzung verwendet.

  1. Einstellbarer RRR

Das Risiko-Rendite-Verhältnis ist der richtige Weg, um höhere Gewinne zu erzielen.

  1. Einfach zu verstehen und zu erweitern

Die Strategie ist einfach strukturiert, leicht zu verstehen und zu optimieren.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Zweiseitige Risiken

Die Strategie ist eine bilaterale Handelsstrategie, bei der die Risiken von Über- und Unterhandel eingehen.

  1. ATR-Abhängigkeit

Die Einstellung der ATR-Parameter wirkt sich direkt auf die Stop-Loss-Linie und die Handelsfrequenz aus. Eine falsche Einstellung kann dazu führen, dass der Stop-Loss zu locker oder die Handelsfrequenz zu hoch ist.

  1. Trendmarktadaptivität

Diese Strategie ist besser geeignet für einen Durchbruch nach der Berechnung der Mittellinie und nicht für Szenarien, in denen die Tendenz zu stark ist.

Für die oben genannten Risiken können Optimierungen in folgenden Bereichen vorgenommen werden:

  1. Kombination mit Trendindikatoren

In Kombination mit Trendindikatoren wie MA, um die Markttrends zu beurteilen und einen negativen Handel zu vermeiden.

  1. Optimierungsparameterkombinationen

Optimierung der ATR-Parameter und des RRR-Parameters, um die Stop-Loss- und Stop-Out-Parameter zu optimieren.

  1. Filterbedingungen hinzugefügt

Erhöhen Sie die Filterbedingungen für die Handelsmengen oder Volatilitätsindikatoren, um die Qualität der Transaktionen zu gewährleisten.

Optimierungsrichtung

Die Strategie kann noch weiter optimiert werden:

  1. Mit Hilfe von Machine Learning

Mit Hilfe von maschinellen Lernmodellen werden Preistrends vorhergesagt und die Einstiegsgenauigkeit verbessert.

  1. Mit Options ein risikofreies Portfolio aufbauen

Die Preisschwankungen von Options-Hedge-Varianten werden genutzt, um ein risikofreies Portfolio zu erstellen.

  1. Mehrfache Arbitrage zwischen Märkten

Statistische Arbitrage zwischen verschiedenen Märkten und verschiedenen Sorten, um eine stabile Alpha zu erhalten.

  1. Algorithmischer Handel

Effiziente Strategie-Retesting und Real-Time-Trading durch eine algorithmische Trading-Engine

Zusammenfassen

In diesem Artikel wird eine quantitative Handelsstrategie, die auf einem dynamischen Verfolgungsstillstand basiert, eingehend analysiert. Die Strategie verfügt über eine Stop-Loss-Management- und Handelssignal-Ermittlungsfunktion, die das Risiko effektiv kontrollieren kann. Wir analysieren auch die Vorteile der Strategie, die möglichen Risiken und nachfolgende Optimierungsideen.

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

//@version=5
strategy("Chandelier Exit with 1-to-1 Risk-Reward", shorttitle='CE', overlay=true)

// Chandelier Exit Logic
length = input.int(title='ATR Period', defval=22)
mult = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
useClose = input.bool(title='Use Close Price for Extremums', defval=true)

atr = mult * ta.atr(length)

longStop = (useClose ? ta.highest(close, length) : ta.highest(length)) - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop

shortStop = (useClose ? ta.lowest(close, length) : ta.lowest(length)) + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop

var int dir = 1
dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir

// Risk-Reward Ratio
riskRewardRatio = input.int(1, title="Risk-Reward Ratio", minval=1, maxval=10, step=1)

// Calculate Take Profit and Stop Loss Levels
takeProfitLevel = atr * riskRewardRatio
stopLossLevel = atr

// Entry Conditions
longCondition = dir == 1 and dir[1] == -1
shortCondition = dir == -1 and dir[1] == 1

// Entry Signals
if (longCondition)
    strategy.entry("Long", strategy.long, stop=close - stopLossLevel, limit=close + takeProfitLevel)
if (shortCondition)
    strategy.entry("Short", strategy.short, stop=close + stopLossLevel, limit=close - takeProfitLevel)

longStopPlot = plot(dir == 1 ? longStop : na, title='Long Stop', style=plot.style_linebr, linewidth=2, color=color.green)
shortStopPlot = plot(dir == 1 ? na : shortStop, title='Short Stop', style=plot.style_linebr, linewidth=2, color=color.red)

midPricePlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0, display=display.none, editable=false)

fill(midPricePlot, longStopPlot, color=color.new(color.green, 90), title='Long State Filling')
fill(midPricePlot, shortStopPlot, color=color.new(color.red, 90), title='Short State Filling')

// Alerts
if (dir != dir[1])
    strategy.entry("Direction Change", strategy.long, comment="Chandelier Exit has changed direction!")
if (longCondition)
    strategy.entry("Buy Signal", strategy.long, comment="Chandelier Exit Buy!")
if (shortCondition)
    strategy.entry("Sell Signal", strategy.short, comment="Chandelier Exit Sell!")