Die G-Channel Trend Detection Strategy ist eine quantitative Handelsstrategie, die auf dem G-Channel-Indikator basiert. Die Strategie berechnet die oberen und unteren Enden des G-Channels und bestimmt den aktuellen Markttrend auf der Grundlage des Crossovers des Preises und des gleitenden Durchschnitts des G-Channels und erzeugt entsprechend Kauf- und Verkaufssignale. Darüber hinaus nehmen die Strategiesätze Gewinn- und Stop-Loss-Bedingungen zur Risikokontrolle.
Die G-Channel Trend Detection Strategie ist eine einfache quantitative Handelsstrategie, die auf dem G-Channel-Indikator basiert und Kauf- und Verkaufssignale erzeugt, indem sie Markttrends erfasst und Gewinn- und Stop-Loss-Bedingungen zur Risikokontrolle festlegt. Die Strategielogik ist klar und einfach zu implementieren, so dass sie für Anfänger im quantitativen Handel geeignet ist. Die Strategie kann jedoch in schwankenden Märkten mehr falsche Signale erzeugen, und die Gewinn- und Stop-Loss-Prozentsätze müssen entsprechend den Merkmalen des Marktes angepasst werden. Außerdem berücksichtigt sie nicht die Besonderheiten des gehandelten Vermögenswerts. In Zukunft kann die Strategie durch die Einführung anderer technischer Indikatoren, die dynamische Anpassung der Gewinn- und Stop-Loss-Prozentsätze und das Hinzufügen von Risikokontrollmodulen basierend auf den Eigenschaften des gehandelten Vermögenswerts optimiert werden, um die Stabilität und Rentabilität
//@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))