
Strategi ini menggunakan indikator G-Channel untuk menentukan arah tren pasar saat ini, dan digabungkan dengan penembusan indikator EMA untuk menghasilkan sinyal jual beli. Gagasan utama dari strategi ini adalah untuk membeli ketika harga berbalik ke dekat EMA dalam tren naik, dan menjual ketika harga berbalik ke dekat EMA dalam tren turun, sehingga menangkap tren harga utama.
Inti dari strategi ini adalah indikator G-Channel, yang pertama kali dikemukakan oleh Andrew Guppy, yang bertujuan untuk menilai arah tren pergerakan harga saat ini. Indikator G-Channel terdiri dari satu tren naik, satu tren turun, dan satu garis rata-rata.
Ketika harga penutupan naik ke atas, berarti mulai membentuk tren naik; ketika harga penutupan turun ke bawah, berarti mulai membentuk tren turun. Strategi ini digunakan.barssince()Fungsi untuk menghitung berapa kali K-garis terakhir terjadi di atas dan di bawah, dan arah yang paling dekat adalah arah tren saat ini.
EMA adalah indikator pelacakan tren, yang memiliki distribusi berat yang lebih cenderung pada harga terkini dibandingkan dengan rata-rata bergerak sederhana, sehingga lebih sensitif terhadap perubahan harga. Dalam tren naik, EMA cenderung berada di bawah harga dan berperan sebagai dukungan; dalam tren turun, EMA cenderung berada di atas harga dan berperan sebagai tekanan.
Logika perdagangan dari strategi ini adalah sebagai berikut:
Strategi ini menggunakan G-Channel untuk menentukan arah tren pasar saat ini dengan akurat, dan menggunakan tren untuk menangkap peluang jual beli saat harga melintasi EMA. Keunggulan strategi ini adalah kemampuan untuk melacak tren yang kuat dan adaptif, tetapi juga harus waspada terhadap pergeseran tren, pengaturan parameter yang tidak tepat dan risiko yang ditimbulkan oleh peristiwa black swan. Strategi ini dapat ditingkatkan lebih lanjut dengan memperkenalkan lebih banyak indikator tambahan, pengoptimalan manajemen posisi, kombinasi dengan indikator sentimen pasar, dan lain-lain.
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jonathan_422
//@version=4
strategy("G-Channel and EMA Strategy", shorttitle="G-EMA Strategy", overlay=true)
// G-Channel settings
length = input(100)
src = input(close)
// Calculating G-Channel
a = 0.0
b = 0.0
a := max(src, nz(a[1])) - nz(a[1] - b[1]) / length
b := min(src, nz(b[1])) + nz(a[1] - b[1]) / length
avg = avg(a, b)
// EMA settings
emaLength = input(9, title="EMA Length")
ema = ema(close, emaLength)
// G-Channel buy/sell signals
crossup = b[1] < close[1] and b > close
crossdn = a[1] < close[1] and a > close
bullish = barssince(crossdn) <= barssince(crossup)
// Strategy logic
buySignal = bullish and close < ema
sellSignal = not bullish and close > ema
// Plotting
plot(ema, "EMA", color=color.orange)
plot(avg, "Average", color=color.blue)
// Plot buy/sell signals
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy execution
strategy.entry("Buy", strategy.long, when=buySignal)
strategy.close("Buy", when=sellSignal)