Strategi ini adalah sistem perdagangan trend yang menggabungkan penunjuk Coral Trend dengan Saluran Donchian. Dengan tepat menangkap momentum pasaran dan memberikan pelbagai pengesahan penembusan trend, ia berkesan menapis isyarat palsu di pasaran berayun dan meningkatkan ketepatan perdagangan. Strategi ini menggunakan teknik purata bergerak adaptif yang dapat menyesuaikan parameter secara dinamik untuk mengekalkan prestasi yang stabil di pelbagai keadaan pasaran.
Logik teras dibina di atas kesan sinergi dua penunjuk utama: 1. Coral Trend Indicator: Mengira nilai rata (tinggi + rendah + dekat) / 3 dan membandingkannya dengan harga penutupan semasa untuk menentukan arah trend. Saluran Donchian: Menentukan sama ada harga memecahkan tahap utama dengan mengira harga tertinggi dan terendah dalam tempoh yang ditakrifkan oleh pengguna.
Sistem ini menghasilkan isyarat panjang apabila kedua-dua penunjuk mengesahkan trend menaik (coralTrendVal == 1 dan donchianTrendVal == 1), dan isyarat pendek apabila kedua-dua mengesahkan trend menurun (coralTrendVal == -1 dan donchianTrendVal == -1). Strategi ini menggunakan mesin keadaan (trendState) untuk mengesan keadaan trend semasa dan mengelakkan isyarat berulang.
Strategi ini mencapai sistem trend berikut yang kukuh melalui pelbagai mekanisme pengesahan trend dan tetapan parameter yang fleksibel. Ciri-ciri adaptif dan logik isyarat yang jelas menjadikannya sesuai untuk pelbagai jangka masa perdagangan dan persekitaran pasaran. Melalui arah pengoptimuman yang dicadangkan, terdapat ruang untuk penambahbaikan lebih lanjut dalam prestasi strategi. Apabila digunakan untuk perdagangan langsung, disyorkan untuk menggabungkan langkah pengurusan risiko dan mengoptimumkan parameter mengikut ciri-ciri instrumen perdagangan tertentu.
/*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)