Diese Strategie ist ein fortgeschrittenes Trend-Folge-Handelssystem, das G-Channel-, RSI- und MACD-Indikatoren integriert. Es identifiziert hochwahrscheinliche Handelsmöglichkeiten, indem es dynamisch Unterstützungs- und Widerstandszonen berechnet und gleichzeitig Momentum-Indikatoren kombiniert. Der Kern besteht darin, einen benutzerdefinierten G-Channel-Indikator zu verwenden, um Markttrends zu bestimmen, während RSI und MACD verwendet werden, um Momentumveränderungen für eine genauere Signalgenerierung zu bestätigen.
Die Strategie verwendet einen Dreifachfiltermechanismus, um die Signalzuverlässigkeit zu gewährleisten. Erstens baut der G-Channel dynamisch Unterstützungs- und Widerstandszonen auf, indem er maximale und minimale Preise über einen bestimmten Zeitraum berechnet. Wenn die Preise durch den Kanal durchbrechen, identifiziert das System potenzielle Trendumkehrpunkte. Zweitens bestätigt der RSI-Indikator, ob sich der Markt in Überkauf- oder Überverkaufszuständen befindet und hilft, wertvollere Handelsmöglichkeiten auszufiltern. Schließlich bestätigt der MACD-Indikator die Dynamikrichtung und Stärke durch Histogrammwerte. Handelssignale werden nur generiert, wenn alle drei Bedingungen erfüllt sind.
Diese Strategie baut ein vollständiges Handelssystem durch umfassende Verwendung mehrerer technischer Indikatoren auf. Ihre Hauptvorteile liegen im mehrdimensionalen Signalbestätigungsmechanismus und einem umfassenden Risikomanagementsystem. Durch kontinuierliche Optimierung und Verbesserung zeigt sich die Strategie vielversprechend, um eine stabile Performance in verschiedenen Marktumgebungen zu erhalten. Händlern wird geraten, verschiedene Parameterkombinationen gründlich zu testen und vor dem Live-Handel geeignete Anpassungen anhand spezifischer Marktmerkmale vorzunehmen.
/*backtest start: 2024-11-19 00:00:00 end: 2024-12-18 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("VinSpace Optimized Strategy", shorttitle="VinSpace Magic", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // Input Parameters length = input.int(100, title="Length") src = input(close, title="Source") stop_loss_pct = input.float(1, title="Stop Loss (%)") / 100 take_profit_pct = input.float(3, title="Take Profit (%)") / 100 rsi_length = input.int(14, title="RSI Length") rsi_overbought = input.int(70, title="RSI Overbought") rsi_oversold = input.int(30, title="RSI Oversold") macd_short = input.int(12, title="MACD Short Length") macd_long = input.int(26, title="MACD Long Length") macd_signal = input.int(9, title="MACD Signal Length") // ---- G-Channel Calculations ---- var float a = na var float b = na a := math.max(src, na(a[1]) ? src : a[1]) - (na(a[1]) ? 0 : (a[1] - b[1]) / length) b := math.min(src, na(b[1]) ? src : b[1]) + (na(a[1]) ? 0 : (a[1] - b[1]) / length) avg = (a + b) / 2 // ---- RSI Calculation ---- rsi = ta.rsi(src, rsi_length) // ---- MACD Calculation ---- [macdLine, signalLine, _] = ta.macd(src, macd_short, macd_long, macd_signal) macd_hist = macdLine - signalLine // ---- Trend Detection Logic ---- crossup = b[1] < close[1] and b > close crossdn = a[1] < close[1] and a > close bullish = ta.barssince(crossdn) <= ta.barssince(crossup) c = bullish ? color.new(color.green, 0) : color.new(color.red, 0) // Plotting the Average p1 = plot(avg, "Average", color=c, linewidth=2) p2 = plot(close, "Close price", color=c, linewidth=1) // Adjusted fill with transparency fill(p1, p2, color=color.new(c, 90)) // ---- Buy and Sell Signals ---- showcross = input(true, title="Show Buy/Sell Labels") plotshape(showcross and bullish and not bullish[1], location=location.belowbar, style=shape.labelup, color=color.green, size=size.small, text="Buy", textcolor=color.white, offset=-1) plotshape(showcross and not bullish and bullish[1], location=location.abovebar, style=shape.labeldown, color=color.red, size=size.small, text="Sell", textcolor=color.white, offset=-1) // ---- Entry and Exit Conditions ---- enterLong = bullish and rsi < rsi_oversold and macd_hist > 0 enterShort = not bullish and rsi > rsi_overbought and macd_hist < 0 // Exit Conditions exitLong = ta.crossunder(close, avg) or rsi > rsi_overbought exitShort = ta.crossover(close, avg) or rsi < rsi_oversold // Position Size (example: 10% of equity) posSize = 1 // Submit Entry Orders if enterLong strategy.entry("EL", strategy.long, qty=posSize) if enterShort strategy.entry("ES", strategy.short, qty=posSize) // Submit Exit Orders if exitLong strategy.close("EL") if exitShort strategy.close("ES") // Set Stop Loss and Take Profit for the trades strategy.exit("Take Profit/Stop Loss Long", from_entry="EL", loss=stop_loss_pct * close, profit=take_profit_pct * close) strategy.exit("Take Profit/Stop Loss Short", from_entry="ES", loss=stop_loss_pct * close, profit=take_profit_pct * close)