
Bei der Strategie handelt es sich um ein trendfolgendes Handelssystem, das den Coral-Trend-Indikator mit dem Donchian Channel kombiniert. Durch die genaue Erfassung der Marktdynamik und mehrfache Bestätigung von Trenddurchbrüchen werden falsche Signale im volatilen Markt effektiv herausgefiltert, was die Handelsgenauigkeit verbessert. Die Strategie nutzt eine adaptive gleitende Durchschnittstechnologie, die die Parameter dynamisch an die Marktbedingungen anpassen kann, sodass in unterschiedlichen Marktumgebungen eine stabile Leistung aufrechterhalten werden kann.
Die Kernlogik der Strategie basiert auf der Synergie zweier Hauptindikatoren:
Wenn beide Indikatoren einen Aufwärtstrend bestätigen (coralTrendVal == 1 und donchianTrendVal == 1), generiert das System ein Long-Signal; wenn beide Indikatoren einen Abwärtstrend bestätigen (coralTrendVal == -1 und donchianTrendVal == -1), generiert das System ein kurzes Signal. Die Strategie verwendet eine Zustandsmaschine (trendState), um den aktuellen Trendzustand zu verfolgen und doppelte Signale zu vermeiden.
Diese Strategie implementiert ein robustes Trendverfolgungssystem durch mehrere Trendbestätigungsmechanismen und flexible Parametereinstellungen. Aufgrund seiner Anpassungsfähigkeit und klaren Signallogik eignet es sich für verschiedene Handelszyklen und Marktumgebungen. Durch die empfohlenen Optimierungsrichtungen kann die Performance der Strategie weiter verbessert werden. Bei der Anwendung im realen Handel empfiehlt es sich, Risikomanagementmaßnahmen zu kombinieren und die Parameter entsprechend den Eigenschaften bestimmter Handelsprodukte 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)