Strategi ini adalah sistem perdagangan kuantitatif yang menggabungkan G-Channel dan Exponential Moving Average (EMA). Konsep terasnya adalah untuk menangkap arah trend pasaran melalui G-Channel sambil menggunakan EMA untuk pengesahan isyarat dan kawalan risiko, bertujuan untuk menjana keuntungan dari turun naik pasaran. Strategi ini beroperasi dalam mod automatik sepenuhnya tanpa campur tangan manual.
Strategi ini beroperasi berdasarkan dua penunjuk teras: G-Channel dan EMA. G-Channel mengenal pasti trend harga dengan secara dinamik mengira jalur atas dan bawah, menjana isyarat perdagangan apabila harga menembusi saluran. Khususnya, strategi ini menggunakan pengiraan G-Channel 100 tempoh, terus mengemas kini sempadan saluran melalui formula matematik. Di samping itu, EMA 50 tempoh diperkenalkan sebagai pengesahan sekunder, menjalankan dagangan hanya apabila kedudukan relatif harga terhadap EMA memenuhi jangkaan. Syarat beli diaktifkan apabila isyarat G-Channel panjang dan harga penutupan di bawah EMA, sementara keadaan jual berlaku apabila isyarat G-Channel pendek dan harga penutupan di atas EMA.
Strategi ini membina sistem perdagangan kuantitatif yang kukuh dengan menggabungkan penunjuk teknikal G-Channel dan EMA. Logik strategi jelas, pelaksanaan mudah, dan ia menawarkan skalabiliti yang baik. Melalui pengoptimuman parameter yang betul dan langkah kawalan risiko, strategi menunjukkan potensi untuk menjana pulangan yang stabil dalam perdagangan langsung.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-18 08:00:00 period: 1d basePeriod: 1d 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/ // © stanleygao01 //@version=5 strategy('G-Channel with EMA Strategy', overlay=true) // G-Channel parameters length = input(100, title='G-Channel Length') src = input(close, title='Source') a = 0.0 b = 0.0 a := math.max(src, nz(a[1])) - nz(a[1] - b[1]) / length b := math.min(src, nz(b[1])) + nz(a[1] - b[1]) / length avg = math.avg(a, b) crossup = b[1] < close[1] and b > close crossdn = a[1] < close[1] and a > close bullish = ta.barssince(crossdn) <= ta.barssince(crossup) // EMA parameters emaLength = input(50, title='EMA Length') ema = ta.ema(close, emaLength) // Buy and Sell Conditions buyCondition = bullish and close < ema sellCondition = not bullish and close > ema // Plot G-Channel c = bullish ? color.lime : color.red p1 = plot(avg, title='Average', color=c, linewidth=1, transp=90) p2 = plot(close, title='Close Price', color=c, linewidth=1, transp=100) fill(p1, p2, color=c, transp=90) // Plot EMA plot(ema, title='EMA', color=color.new(color.blue, 0), linewidth=2) // Strategy Entries and Exits if buyCondition strategy.entry('Buy', strategy.long) if sellCondition strategy.close('Buy') // Plot Buy/Sell Labels plotshape(buyCondition, title='Buy Signal', location=location.belowbar, color=color.new(color.lime, 0), style=shape.labelup, text='Buy') plotshape(sellCondition, title='Sell Signal', location=location.abovebar, color=color.new(color.red, 0), style=shape.labeldown, text='Sell')