Diese Strategie verwendet die Idee des dynamischen Trailing Stop basierend auf ATR und Preisextremen, um lange und kurze Stop-Loss-Linien zu berechnen. Kombiniert mit der Chandelier Exit-Idee beurteilt sie die lange/kurze Richtung basierend auf dem Stop-Loss-Line-Breakout. Wenn die Stop-Loss-Linie nach oben bricht, wird sie als bullisch und lang eingegeben. Wenn die Stop-Loss-Linie nach unten bricht, wird sie als bärisch und kurz eingegeben.
Die Strategie verfügt sowohl über Stop-Loss-Management- als auch über Einstiegssignalbeurteilungsfunktionen.
Die Strategie besteht aus folgenden Hauptteilen:
Berechnung der langen/kurzen Stop-Loss-Linien auf der Grundlage von ATR
Auf der Grundlage der vom Benutzer definierten ATR-Periodenlänge und Multiplikatormultipliziert wird der Echtzeit-ATR berechnet.
longStop = Highest - ATR
shortStop = Lowest + ATR
Beurteilen Sie die Handelsrichtung anhand des Ausbruchs
Vergleichen Sie die Stop-Loss-Linien zwischen der vorherigen und der aktuellen Bar. Wenn die Stop-Loss-Line der aktuellen Bar ausbricht, werden Handelssignale ausgelöst:
Long stop-loss line breakout upwards, long entry
Short stop-loss line breakout downwards, short entry
Einrichtung von Stop-Loss und Take-Profit auf der Grundlage der Risiko-Rendite-Ratio
Auf der Grundlage des vom Benutzer definierten Risikoverhältnisses (RiskRewardRatio) werden Stop-Loss-Distanz und Take-Profit-Distanz aus dem ATR berechnet. Stop-Loss- und Take-Profit-Order werden bei der Eröffnung von Positionen gesetzt.
Zu den Vorteilen dieser Strategie gehören:
Dynamischer Stop-Loss
Die Einführung dynamischer Trailing-Stop-Loss-Linien hilft, den Stop-Loss rechtzeitig zu stoppen und das Abwärtsrisiko zu kontrollieren.
Doppelfunktionen
Die Stop-Loss-Linie dient sowohl als Stopp-Loss-Management-Tool als auch als Einstiegszustandsrichter und reduziert die Komplexität der Strategie.
Anpassungsfähige Risiko-Rendite-Ratio
Höhere Gewinne mit einem vordefinierten Risiko-Rendite-Verhältnis.
Einfach zu verstehen und zu erweitern
Einfache Struktur, leicht zu verstehen und für die Erweiterung zu optimieren.
Für diese Strategie können einige Risiken bestehen:
Zweiwege Risiken
Da es sich um eine zweiseitige Handelsstrategie handelt, geht es sowohl um langfristige als auch um kurzfristige Risiken.
Abhängigkeit von ATR-Parametern
Die ATR-Parameter beeinflussen unmittelbar die Stop-Loss-Linien und die Handelsfrequenz.
Anpassungsfähigkeit an die Trends
Die Strategie eignet sich besser für Range-gebundene Szenarien mit plötzlichen Ausbrüchen.
Die Optimierungen zur Bewältigung der oben genannten Risiken sind:
Einbeziehung von Trendindikatoren
Verwenden Sie MA und andere Trendindikatoren, um die Marktentwicklung zu bestimmen, und vermeiden Sie den Handel gegen Trends.
Optimierung der Parameter
Optimieren der Kombination von ATR-Parametern und Risiko-Rendite-Verhältnis für einen vernünftigeren Stop-Loss und Take-Profit.
Zusätzliche Filter
Hinzufügen von Handelsvolumen- oder Volatilitätsfiltern zur Gewährleistung der Handelsqualität.
Es gibt noch Raum für eine weitere Optimierung der Strategie:
Maschinelles Lernen einbeziehen
Einführung von Modellen für maschinelles Lernen zur Vorhersage von Preistrends für eine höhere Eingangsgenauigkeit.
Aufbau eines risikofreien Portfolios mit Optionen
Verwenden Sie Optionen, um die Kursschwankungen der zugrunde liegenden Vermögenswerte abzusichern und risikofreie Arbitrageportfolios zu erstellen.
Marktübergreifende Multi-Asset-Arbitrage
Durchführung einer statistischen Arbitrage zwischen verschiedenen Märkten und Anlageklassen, um ein stabiles Alpha zu erhalten.
Algorithmenhandel
Nutzen Sie Algorithmus-Trading-Engines, um Strategien und Handel effizient zu testen.
Dieser Artikel analysiert gründlich eine quantitative Handelsstrategie, die auf dynamischem Trailing Stop Loss basiert. Die Strategie verfügt gleichzeitig über Stop-Loss-Management-Funktionalität und Handelssignalbestimmung, die Risiken effektiv kontrolliert. Wir haben auch die Vorteile, potenziellen Risiken und zukünftigen Optimierungen der Strategie diskutiert. Es ist eine sehr praktische Handelsstrategie, die weitere Forschung und Anwendung wert ist.
/*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!")