Strategi ini adalah sistem perdagangan yang mengikuti tren berdasarkan G-Channel dan Exponential Moving Average (EMA) khusus. G-Channel terdiri dari garis atas (a), bawah (b), dan tengah (avg), menentukan batas saluran melalui perhitungan dinamis harga saat ini dan historis. Strategi ini menggabungkan EMA sebagai filter tren, menghasilkan sinyal perdagangan melalui penyeberangan harga dengan garis saluran dan posisi relatif terhadap EMA, secara efektif menangkap titik pembalikan tren pasar.
Logika inti terdiri dari dua komponen utama: G-Channel dan filter EMA. Perhitungan G-Channel didasarkan pada harga saat ini dan data historis, secara dinamis menyesuaikan lebar saluran melalui algoritma adaptif. Garis atas (a) mengambil maksimum harga saat ini dan garis atas sebelumnya, disesuaikan dengan parameter lebar dan panjang saluran; Garis bawah (b) menggunakan metode serupa untuk nilai minimum; Garis tengah adalah rata-rata aritmatika. Sinyal perdagangan dipicu dengan menggabungkan penyeberangan harga dengan garis saluran dan posisi relatif terhadap EMA: sinyal beli terjadi ketika harga melanggar garis bawah sementara di bawah EMA; sinyal jual terjadi ketika harga melanggar garis atas sementara di atas EMA.
G-Channel dan EMA Trend Filter Trading System adalah strategi trading lengkap yang menggabungkan channel breakout dan trend following. Melalui karakteristik dinamis G-Channel dan fungsi konfirmasi tren EMA, strategi secara efektif menangkap titik balik pasar sambil mengendalikan risiko perdagangan. Meskipun ada batasan tertentu, kinerja keseluruhan strategi dapat ditingkatkan lebih lanjut melalui arah optimasi yang diusulkan. Strategi ini cocok untuk pasar tren dan dapat berfungsi sebagai kerangka dasar untuk membangun sistem trading 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")