Adaptives Swing-Trading-System basierend auf dualen RSI-Indikatoren

RSI SL TP MM ATR RR
Erstellungsdatum: 2024-12-13 11:57:17 zuletzt geändert: 2024-12-13 11:57:17
Kopie: 4 Klicks: 448
1
konzentrieren Sie sich auf
1617
Anhänger

Adaptives Swing-Trading-System basierend auf dualen RSI-Indikatoren

Überblick

Die Strategie ist ein adaptiertes Handelssystem, das auf einem doppelten RSI (relativ starken Index) basiert. Es kombiniert RSI-Indikatoren für verschiedene Zeiträume, um Markttrends und Handelsmöglichkeiten zu identifizieren und die Handelsperformance durch eine Geldverwaltungs- und Risikokontrollmechanik zu optimieren. Die Kernstrategie besteht darin, die Profitabilität durch die synchronisierte Kombination von mehrperiodischen RSI zu erhöhen, während die Sicherheit des Handels gewährleistet wird.

Strategieprinzip

Die Strategie verwendet den 7-Zyklus-RSI-Indikator als Haupthandelssignal und kombiniert den Tages-RSI als Trendfilter. Wenn der kurzfristige RSI von unter 40 nach oben bricht und der Tages-RSI größer als 55 ist, gibt das System mehrere Signale aus. Wenn der Preis während der Positionshaltung unter dem Preis für die Erstplatzierung fällt, erhöht das System automatisch die Position, um die durchschnittlichen Kosten zu senken.

Strategische Vorteile

  1. Mehrzeit-RSI-Kombination erhöht die Signalsicherheit
  2. Mit einem adaptiven Anlagerungsmechanismus können Sie die Lagerhaltungskosten effektiv senken.
  3. Gute Geldverwaltung und automatische Anpassung der Positionen an die Risikopräferenzen
  4. Fixed Stop-Loss-Schutz und strikte Risikokontrolle für jeden Handel
  5. Die Transaktionskosten werden berücksichtigt und entsprechen dem realen Umfeld.

Strategisches Risiko

  1. Der RSI könnte falsche Signale in stark schwankenden Märkten erzeugen
  2. Die Gepäckplatte könnten bei anhaltenden Abwärtstrends zu größeren Verlusten führen
  3. Fixed-Percentage-Stop-Loss könnte zu konservativ sein in Zeiten hoher Volatilität
  4. Transaktionskosten können bei häufigen Transaktionen einen erheblichen Einfluss auf die Erträge haben
  5. Die Umsetzung einer Strategie zur Unterstützung ausreichender Liquidität

Richtung der Strategieoptimierung

  1. Einführung von Volatilitätsindikatoren (z. B. ATR) zur dynamischen Anpassung der Stop-Loss-Position
  2. Erhöhung der Trendstärkenfilter zur Verringerung der Falschsignale in schwankenden Märkten
  3. Optimierung der Verlagerungslogik und dynamische Anpassungen unter Berücksichtigung der Marktvolatilität
  4. Hinzufügen von RSI-Bestätigungssignalen für weitere Zeiträume
  5. Entwicklung eines anpassungsfähigen Lagerungssystems

Zusammenfassen

Es ist ein vollständiges Handelssystem, das technische Analyse und Risikomanagement kombiniert. Es liefert Handelssignale durch die synchronische Wirkung von mehrperiodischen RSI und kontrolliert das Risiko durch Kapitalmanagement und Stop-Loss-Mechanismen. Die Strategie ist geeignet, in trendigen Märkten zu arbeiten, aber die Parameter müssen entsprechend der tatsächlichen Marktsituation optimiert werden.

Strategiequellcode
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Dual RSI with Rebuy Logic + Capital, Commission, and Stop Loss", overlay=true)

// Parameter
rsi_length = input.int(7, title="RSI Length")
daily_rsi_length = input.int(7, title="Daily RSI Length")
capital = input.float(10000, title="Initial Capital", minval=0)  // Kapital
risk_per_trade = input.float(0.01, title="Risk per Trade (%)", minval=0.01, maxval=1.0)  // Risikogröße in Prozent
commission = input.float(0.1, title="Commission (%)", minval=0, maxval=100)  // Kommission in Prozent
stop_loss_pct = input.float(5, title="Stop Loss (%)", minval=0.1, maxval=100)  // Stop-Loss in Prozent

// Ordergröße berechnen
risk_amount = capital * risk_per_trade
order_size = risk_amount / close  // Größe der Order basierend auf Risikogröße und Preis

// Daily RSI
day_rsi = request.security(syminfo.tickerid, "D", ta.rsi(close, daily_rsi_length), lookahead=barmerge.lookahead_on)

// RSI auf aktuellem Timeframe
rsi = ta.rsi(close, rsi_length)

// Kauf- und Verkaufsbedingungen
buy_condition = rsi[1] < 40 and rsi > rsi[1] and day_rsi > 55
sell_condition = rsi[1] > 60 and rsi < rsi[1]

// Variablen, um den Preis des ersten Kaufs zu speichern
var float first_buy_price = na
var bool is_position_open = false

// Kauf-Logik
if buy_condition
    if not is_position_open
        // Initiales Kaufsignal
        strategy.entry("Buy", strategy.long, qty=1)
        first_buy_price := close
        is_position_open := true
    else if close < first_buy_price
        // Rebuy-Signal, nur wenn Preis niedriger als erster Kaufpreis
        strategy.entry("Rebuy", strategy.long, qty=1)

// Verkaufs-Logik
if sell_condition and is_position_open
    strategy.close("Buy")
    strategy.close("Rebuy")
    first_buy_price := na  // Zurücksetzen des Kaufpreises
    is_position_open := false

// Stop-Loss-Bedingung
if is_position_open
    // Stop-Loss-Preis berechnen (5% unter dem Einstiegspreis)
    stop_loss_price = first_buy_price * (1 - stop_loss_pct / 100)
    
    // Stop-Loss für "Buy" und "Rebuy" festlegen
    strategy.exit("Stop Loss Buy", from_entry="Buy", stop=stop_loss_price)
    strategy.exit("Stop Loss Rebuy", from_entry="Rebuy", stop=stop_loss_price)

// Performance-Metriken berechnen (mit Kommission)
gross_profit = strategy.netprofit / capital * 100
commission_cost = commission / 100 * strategy.closedtrades
net_profit = gross_profit - commission_cost

// Debug-Plots
plot(first_buy_price, title="First Buy Price", color=color.blue, linewidth=1)
plotchar(buy_condition, title="Buy Condition", char='B', location=location.abovebar, color=color.green)
plotchar(sell_condition, title="Sell Condition", char='S', location=location.belowbar, color=color.red)

// Debugging für Performance