Strategi Pengesanan Trend G-Channel adalah strategi perdagangan kuantitatif berdasarkan penunjuk G-Channel. Strategi ini mengira hujung atas dan bawah G-Channel dan menentukan trend pasaran semasa berdasarkan persilangan harga dan purata bergerak G-Channel, menghasilkan isyarat beli dan jual dengan sewajarnya.
Strategi Pengesanan Trend G-Channel adalah strategi dagangan kuantitatif yang mudah berdasarkan penunjuk G-Channel yang menghasilkan isyarat beli dan jual dengan menangkap trend pasaran dan menetapkan keadaan mengambil keuntungan dan menghentikan kerugian untuk mengawal risiko. Logik strategi jelas dan mudah dilaksanakan, menjadikannya sesuai untuk pemula dalam perdagangan kuantitatif untuk dipelajari. Walau bagaimanapun, strategi ini mungkin menghasilkan lebih banyak isyarat palsu di pasaran yang berfluktuasi, dan peratusan mengambil keuntungan dan menghentikan kerugian perlu diselaraskan mengikut ciri pasaran. Selain itu, ia tidak mempertimbangkan ciri-ciri aset yang didagangkan. Pada masa akan datang, strategi dapat dioptimumkan dengan memperkenalkan penunjuk teknikal lain, menyesuaikan secara dinamik peratusan mengambil keuntungan dan menghentikan kerugian, dan menambah modul kawalan risiko berdasarkan ciri-ciri aset yang didagangkan untuk meningkatkan kestabilan dan keuntungan 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))