Diese Strategie ist ein Trend-Nachhandelssystem, das den Coral Trend-Indikator mit dem Donchian Channel kombiniert. Durch die präzise Erfassung der Marktdynamik und die Bereitstellung mehrerer Bestätigungen von Trendbruchern filtert sie effektiv falsche Signale in oszillierenden Märkten aus und verbessert die Handelsgenauigkeit. Die Strategie verwendet adaptive gleitende Durchschnittstechniken, die die Parameter dynamisch anpassen können, um eine stabile Performance unter verschiedenen Marktbedingungen zu erhalten.
Die Kernlogik beruht auf der Synergiewirkung zweier Hauptindikatoren: 1. Coral Trend Indicator: Berechnet einen glatten Wert von (Hoch + Tief + Schließen) / 3 und vergleicht ihn mit dem aktuellen Schlusskurs, um die Trendrichtung zu bestimmen. 2. Donchian Channel: Bestimmt, ob der Preis die Schlüsselniveaus durchbricht, indem er die höchsten und niedrigsten Preise innerhalb eines vom Benutzer definierten Zeitraums berechnet.
Das System erzeugt lange Signale, wenn beide Indikatoren einen Aufwärtstrend bestätigen (coralTrendVal == 1 und donchianTrendVal == 1), und kurze Signale, wenn beide einen Abwärtstrend bestätigen (coralTrendVal == -1 und donchianTrendVal == -1).
Diese Strategie erzielt durch mehrere Trendbestätigungsmechanismen und flexible Parameter-Einstellungen ein robustes Trendfolgensystem. Ihre anpassungsfähigen Funktionen und klare Signallogik machen sie für verschiedene Handelszeitrahmen und Marktumgebungen geeignet. Durch die vorgeschlagenen Optimierungsrichtungen besteht Raum für eine weitere Verbesserung der Strategieleistung. Bei der Anwendung auf Live-Handel wird empfohlen, Risikomanagementmaßnahmen aufzunehmen und Parameter entsprechend den Eigenschaften bestimmter Handelsinstrumente zu optimieren.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-16 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Coral Tides Strategy", shorttitle="CoralTidesStrat", overlay=true) // === Inputs === dlen = input.int(defval=20, title="Donchian Channel Period", minval=10) coralPeriod = input.int(defval=14, title="Coral Trend Period") // === Functions === // Coral Trend Calculation coralTrend(period) => smooth = (high + low + close) / 3 coral = ta.ema(smooth, period) trend = 0 trend := close > coral ? 1 : close < coral ? -1 : trend[1] [trend, coral] // Donchian Trend Calculation donchianTrend(len) => hh = ta.highest(high, len) ll = ta.lowest(low, len) trend = 0 trend := close > hh[1] ? 1 : close < ll[1] ? -1 : trend[1] trend // === Trend Calculation === [coralTrendVal, coralLine] = coralTrend(coralPeriod) donchianTrendVal = donchianTrend(dlen) // === Signal Logic === var int trendState = 0 buySignal = false sellSignal = false if (coralTrendVal == 1 and donchianTrendVal == 1 and trendState != 1) buySignal := true sellSignal := false trendState := 1 else if (coralTrendVal == -1 and donchianTrendVal == -1 and trendState != -1) sellSignal := true buySignal := false trendState := -1 else buySignal := false sellSignal := false // === Strategy Execution === // Entry Signals if (buySignal) strategy.entry("Long", strategy.long) if (sellSignal) strategy.entry("Short", strategy.short) // === Plots === // Coral Trend Line plot(coralLine, color=color.green, linewidth=2, title="Coral Trend Line") // Buy/Sell Signal Labels if buySignal label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, style=label.style_label_down, size=size.normal) if sellSignal label.new(bar_index, high, "SELL", color=color.red, textcolor=color.white, style=label.style_label_up, size=size.normal)