Diese Strategie ist ein Trend-Folgende Handelssystem, das auf dem benutzerdefinierten G-Channel und dem exponentiellen gleitenden Durchschnitt (EMA) basiert. Der G-Channel besteht aus oberen (a), unteren (b) und mittleren (avg) Linien, die die Kanalgrenzen durch dynamische Berechnung aktueller und historischer Preise bestimmen. Die Strategie kombiniert EMA als Trendfilter und erzeugt Handelssignale durch Preiskreuzungen mit Kanallinien und Position im Verhältnis zu EMA und erfasst so effektiv Markttrendumkehrpunkte.
Die Kernlogik besteht aus zwei Hauptkomponenten: G-Channel und EMA-Filter. Die G-Channel-Berechnungen basieren auf aktuellen Preisen und historischen Daten und passen die Kanalbreite dynamisch durch einen anpassungsfähigen Algorithmus an. Die obere Linie (a) nimmt das Maximum des aktuellen Preises und der vorherigen oberen Linie, angepasst durch Kanalbreite und -länge Parameter; die untere Linie (b) verwendet eine ähnliche Methode für Mindestwerte; die mittlere Linie ist der arithmetische Mittelwert. Handelssignale werden ausgelöst, indem Preis-Kreuzungen mit Kanallinien und Position im Verhältnis zur EMA kombiniert werden: Kaufsignale treten auf, wenn der Preis über die untere Linie bricht, während er unterhalb der EMA ist; Verkaufssignale treten auf, wenn der Preis die obere Linie bricht, während er über der EMA liegt.
Das G-Channel und EMA Trend Filter Trading System ist eine vollständige Handelsstrategie, die Kanal-Breakouts und Trendfollowing kombiniert. Durch die dynamischen Eigenschaften des G-Channels und die Trendbestätigungsfunktion des EMA erfasst die Strategie Marktwendepunkte effektiv und kontrolliert gleichzeitig die Handelsrisiken. Obwohl bestimmte Einschränkungen bestehen, kann die Gesamtleistung der Strategie durch die vorgeschlagenen Optimierungsrichtungen weiter verbessert werden. Diese Strategie eignet sich für Trendmärkte und kann als Grundrahmen für den Aufbau komplexerer Handelssysteme dienen.
/*backtest start: 2024-11-04 00:00:00 end: 2024-12-04 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("G-Channel with EMA Strategy", overlay=true) // G-Channel Indicator length = input.int(100, title="G-Channel Length") src = input(close, title="Source") var float a = na var float b = na 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 avg = (a + b) / 2 // G-Channel buy/sell signals crossup = ta.crossover(close, b) crossdn = ta.crossunder(close, a) bullish = ta.barssince(crossdn) <= ta.barssince(crossup) // EMA Indicator emaLength = input.int(200, title="EMA Length") ema = ta.ema(close, emaLength) // Buy Condition: G-Channel gives a buy signal and price is below EMA buySignal = bullish and close < ema // Sell Condition: G-Channel gives a sell signal and price is above EMA sellSignal = not bullish and close > ema // Plotting the G-Channel and EMA plot(a, title="Upper", color=color.blue, linewidth=2, transp=100) plot(b, title="Lower", color=color.blue, linewidth=2, transp=100) plot(avg, title="Average", color=bullish ? color.lime : color.red, linewidth=1, transp=90) plot(ema, title="EMA", color=color.orange, linewidth=2) // Strategy Execution if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.entry("Sell", strategy.short) // Plot Buy/Sell Signals plotshape(buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")