
Strategi ini adalah sistem perdagangan pelacakan tren berdasarkan saluran G yang disesuaikan dan indeks moving average (EMA). Saluran G terdiri dari jalur atas (a), bawah (b) dan tengah (avg) untuk menentukan batas saluran dengan menghitung harga saat ini dan sejarah secara dinamis. Strategi ini menggabungkan EMA sebagai filter tren untuk menghasilkan sinyal perdagangan secara efektif dan menangkap titik balik tren pasar melalui persimpangan harga dengan jalur saluran dan hubungan posisi dengan EMA.
Logika inti dari strategi ini terdiri dari dua komponen utama: saluran G dan filter EMA. Perhitungan saluran G didasarkan pada harga saat ini dan data historis, dengan menyesuaikan lebar saluran secara dinamis melalui algoritma adaptif. Jalur atas (a) mengambil nilai yang lebih besar dari harga saat ini dan melakukan penyesuaian dinamis berdasarkan parameter lebar dan panjang saluran; Jalur bawah (b) menggunakan metode yang sama untuk menghitung nilai minimum; Jalur tengah adalah rata-rata aritmatika dari jalur atas ke bawah.
G-channel dan EMA trend filter trading system adalah strategi trading yang lengkap yang menggabungkan terobosan channel dan trend tracking. Dengan fitur dinamis dari G-channel dan fitur konfirmasi tren EMA, strategi ini mampu secara efektif menangkap titik-titik pivot pasar dan mengendalikan risiko perdagangan. Meskipun ada beberapa keterbatasan, namun dengan arah optimasi yang diusulkan, kinerja keseluruhan strategi diharapkan dapat ditingkatkan lebih lanjut.
/*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")