Strategi Deteksi Tren G-Channel adalah strategi perdagangan kuantitatif berdasarkan indikator G-Channel. Strategi ini menghitung ujung atas dan bawah G-Channel dan menentukan tren pasar saat ini berdasarkan perpindahan harga dan rata-rata bergerak G-Channel, menghasilkan sinyal beli dan jual sesuai. Selain itu, set strategi mengambil keuntungan dan kondisi stop loss untuk mengendalikan risiko.
Strategi Deteksi Tren G-Channel adalah strategi perdagangan kuantitatif sederhana berdasarkan indikator G-Channel yang menghasilkan sinyal beli dan jual dengan menangkap tren pasar dan mengatur kondisi mengambil keuntungan dan menghentikan kerugian untuk mengendalikan risiko. Logika strategi jelas dan mudah diterapkan, membuatnya cocok untuk pemula dalam perdagangan kuantitatif untuk dipelajari. Namun, strategi dapat menghasilkan lebih banyak sinyal palsu di pasar yang berfluktuasi, dan persentase mengambil keuntungan dan menghentikan kerugian perlu disesuaikan sesuai dengan karakteristik pasar. Selain itu, tidak mempertimbangkan spesifikasi aset yang diperdagangkan. Di masa depan, strategi dapat dioptimalkan dengan memperkenalkan indikator teknis lainnya, menyesuaikan persentase mengambil keuntungan dan menghentikan kerugian secara dinamis, dan menambahkan modul kontrol risiko berdasarkan karakteristik aset yang diperdagangkan untuk meningkatkan stabilitas dan profitabilitas strategi.
//@version=5 // Full credit to AlexGrover: https://www.tradingview.com/script/fIvlS64B-G-Channels-Efficient-Calculation-Of-Upper-Lower-Extremities/ strategy("G-Channel Trend Detection Strategy", shorttitle="G-Trend", overlay=true) // Input parameters length = input.int(100, title="Length") src = input(close, title="Source") take_profit_percent = input.float(5.0, title="Take Profit (%)") stop_loss_percent = input.float(2.0, title="Stop Loss (%)") showcross = input.bool(true, title="Show Cross") // Initialize variables var float a = na var float b = na // Calculate a and b 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 // Calculate average avg = (a + b) / 2 // Determine trend and color crossup = ta.crossunder(b, close) crossdn = ta.crossunder(a, close) bullish = ta.barssince(crossdn) <= ta.barssince(crossup) c = bullish ? color.lime : color.red // Plotting p1 = plot(avg, "Average", color=c, linewidth=1) p2 = plot(close, "Close price", color=c, linewidth=1) fill(p1, p2, c) // Generate buy and sell signals buy_signal = showcross and bullish and not bullish[1] sell_signal = showcross and not bullish and bullish[1] // Plot buy and sell signals on chart plotshape(buy_signal ? avg : na, location=location.belowbar, style=shape.labeldown, color=color.new(color.lime, 0), size=size.tiny, text="Buy", textcolor=color.white, offset=-1) plotshape(sell_signal ? avg : na, location=location.abovebar, style=shape.labelup, color=color.new(color.red, 0), size=size.tiny, text="Sell", textcolor=color.white, offset=-1) // Alerts alertcondition(buy_signal, title="Buy Signal", message="Buy Signal Detected") alertcondition(sell_signal, title="Sell Signal", message="Sell Signal Detected") // Calculate take profit and stop loss levels take_profit_level = close * (1 + take_profit_percent / 100) stop_loss_level = close * (1 - stop_loss_percent / 100) // Strategy Entry and Exit if (buy_signal) strategy.entry("Buy", strategy.long) if (sell_signal) strategy.entry("Sell", strategy.short) // Define the take profit and stop loss conditions for long positions strategy.exit("Take Profit/Stop Loss", "Buy", limit=take_profit_level, stop=stop_loss_level) // Define the take profit and stop loss conditions for short positions strategy.exit("Take Profit/Stop Loss", "Sell", limit=close * (1 - take_profit_percent / 100), stop=close * (1 + stop_loss_percent / 100))