Strategi ini adalah sistem perdagangan trend-mengikuti berdasarkan adat G-Channel dan Exponential Moving Average (EMA). G-Channel terdiri daripada garis atas (a), bawah (b), dan tengah (avg), menentukan sempadan saluran melalui pengiraan dinamik harga semasa dan sejarah. Strategi ini menggabungkan EMA sebagai penapis trend, menjana isyarat perdagangan melalui persilangan harga dengan saluran saluran dan kedudukan relatif kepada EMA, dengan berkesan menangkap titik pembalikan trend pasaran.
Logik teras terdiri daripada dua komponen utama: G-Channel dan penapis EMA. Pengiraan G-Channel berdasarkan harga semasa dan data sejarah, menyesuaikan lebar saluran secara dinamik melalui algoritma adaptif. Garis atas (a) mengambil maksimum harga semasa dan garis atas sebelumnya, disesuaikan dengan parameter lebar dan panjang saluran; Garis bawah (b) menggunakan kaedah yang sama untuk nilai minimum; Garis tengah adalah purata aritmetik. Isyarat perdagangan dipicu dengan menggabungkan persilangan harga dengan garis saluran dan kedudukan relatif kepada EMA: isyarat beli berlaku apabila harga melanggar garis bawah di bawah EMA; isyarat jual apabila harga melanggar garis atas di bawah EMA.
Sistem Perdagangan Penapis Trend G-Channel dan EMA adalah strategi perdagangan lengkap yang menggabungkan penembusan saluran dan trend berikut. Melalui ciri dinamik G-Channel dan fungsi pengesahan trend EMA, strategi ini berkesan menangkap titik perubahan pasaran sambil mengawal risiko perdagangan. Walaupun terdapat batasan tertentu, prestasi keseluruhan strategi dapat ditingkatkan lagi melalui arah pengoptimuman yang dicadangkan. Strategi ini sesuai untuk pasaran trend dan boleh berfungsi sebagai rangka kerja asas untuk membina sistem perdagangan yang lebih kompleks.
/*backtest start: 2024-11-04 00:00:00 end: 2024-12-04 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("G-Channel with EMA Strategy", overlay=true) // G-Channel Indicator length = input.int(100, title="G-Channel Length") src = input(close, title="Source") var float a = na var float b = na a := math.max(src, nz(a[1])) - (nz(a[1]) - nz(b[1])) / length b := math.min(src, nz(b[1])) + (nz(a[1]) - nz(b[1])) / length avg = (a + b) / 2 // G-Channel buy/sell signals crossup = ta.crossover(close, b) crossdn = ta.crossunder(close, a) bullish = ta.barssince(crossdn) <= ta.barssince(crossup) // EMA Indicator emaLength = input.int(200, title="EMA Length") ema = ta.ema(close, emaLength) // Buy Condition: G-Channel gives a buy signal and price is below EMA buySignal = bullish and close < ema // Sell Condition: G-Channel gives a sell signal and price is above EMA sellSignal = not bullish and close > ema // Plotting the G-Channel and EMA plot(a, title="Upper", color=color.blue, linewidth=2, transp=100) plot(b, title="Lower", color=color.blue, linewidth=2, transp=100) plot(avg, title="Average", color=bullish ? color.lime : color.red, linewidth=1, transp=90) plot(ema, title="EMA", color=color.orange, linewidth=2) // Strategy Execution if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.entry("Sell", strategy.short) // Plot Buy/Sell Signals plotshape(buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")