Duales Zeitzyklus-Supertrend- und RSI-Strategie-Optimierungssystem

RSI ATR
Erstellungsdatum: 2024-11-25 17:27:21 zuletzt geändert: 2024-11-25 17:27:21
Kopie: 0 Klicks: 464
1
konzentrieren Sie sich auf
1617
Anhänger

Duales Zeitzyklus-Supertrend- und RSI-Strategie-Optimierungssystem

Überblick

Die Strategie ist ein Doppelzeit-Zyklus-Trading-System, das auf dem SuperTrend-Indikator und dem RSI-Indikator basiert. Es kombiniert zwei Zeitperioden mit 120- und 15-minütigen technischen Analyse-Indikatoren, um die mittelfristige Trendrichtung mit dem SuperTrend-Indikator zu erfassen und gleichzeitig mit dem RSI-Indikator zu profitieren.

Strategieprinzip

Die Kernlogik der Strategie basiert auf folgenden Schlüsselelementen:

  1. Der SuperTrend-Indikator mit 120-Minuten-Perioden als Haupttrend-Ermittler, der auf einem ATR-Period von 14 basiert und mit einem Faktor von 3,42 eingestellt ist
  2. Der Preis wird durch die Kreuzung der SuperTrend-Linie bestimmt, wobei ein Aufwärts-Kreuzung ein Mehrwertsignal erzeugt und ein Abwärts-Kreuzung ein Leerwertsignal erzeugt
  3. Der RSI-Indikator mit 15-Minuten-Zyklen als Hilfsmittel, der RSI-Zyklus auf 5 festgelegt ist, wird verwendet, um zu beurteilen, ob der Markt überhitzt oder überkalt ist
  4. Wenn der RSI die Überkaufzone ((95) erreicht, schließt er die Mehrpositionen aus, wenn er die Überverkaufzone ((5) erreicht, schließt er die Leerpositionen aus
  5. Setzen Sie einen Prozentsatz des Stop-Points von 30%, der auf den durchschnittlichen Kurs der Position bezogen wird

Strategische Vorteile

  1. Die Kombination von mehreren Zeitzyklen erhöht die Zuverlässigkeit des Signals und reduziert die Auswirkungen von Falschsignalen.
  2. Die Parameteroptimierung des SuperTrend-Indikators ist moderat, um eine hohe Tendenzempfindlichkeit zu gewährleisten und den häufigen Handel zu vermeiden, der durch eine Überempfindlichkeit verursacht wird.
  3. Der RSI hat sehr strenge Grenzwerte ((5 und 95)), um sicherzustellen, dass nur extreme Situationen ausgelöst werden, um einen vorzeitigen Ausstieg zu vermeiden.
  4. Die Vermögensverwaltung verwendet einen festen Anteil des Nettovermögens der Konten (<35%), um das Risiko effektiv zu kontrollieren und gleichzeitig den Gewinnraum zu sichern
  5. Die automatische Ausgleichung der Rückwärtspositionen vor der Eröffnung neuer Positionen vermeidet die Gefahr, gleichzeitig mehrere leere Positionen zu halten

Strategisches Risiko

  1. Doppelzeit-Zyklus-Strategien können einen Lagrange-Effekt in einem turbulenten Markt haben und müssen mit einem kontrollierten Rückzug befasst werden.
  2. Der RSI ist zu streng eingestellt, was dazu führen kann, dass einige profitable Chancen verpasst werden
  3. 30% der Stop-Points sind eher aggressiv eingestellt, was zu einem vorzeitigen Ende der Gewinne in einem stark bewegten Markt führen kann
  4. Die Strategie hat keine Stop-Loss-Bedingungen und kann bei einer plötzlichen Trendwende große Verluste erleiden
  5. 35% der Positionen sind relativ aggressiv und risikoreich bei starken Marktschwankungen

Richtung der Strategieoptimierung

  1. Die Erweiterung der dynamischen Stop-Loss-Mechanismen wird empfohlen, wobei eine ATR-basierte Tracking-Stop-Loss-Methode in Betracht gezogen werden kann.
  2. Der RSI-Überkauf-Überverkauf-Schwellenwert kann angemessen gelockert werden und wird empfohlen, auf 10 und 90 zu korrigieren, um die Anpassungsfähigkeit der Strategie zu verbessern
  3. Umsatzindikatoren können als zusätzliche Bestätigung hinzugefügt werden, um die Zuverlässigkeit des Signals zu verbessern
  4. Berücksichtigung der Möglichkeit, Positionsanteile dynamisch an Marktschwankungen anzupassen, mit ATR oder Volatilitätsindikatoren
  5. Empfehlung, Trendstärkenfilter wie DMI oder ADX-Indikatoren zu verwenden, um schwache Trends zu filtern

Zusammenfassen

Es ist eine strukturierte, logisch klare Trendverfolgungsstrategie. Durch die Kombination von technischen Indikatoren für verschiedene Zeiträume, wobei auch auf die Risikokontrolle geachtet wird. Obwohl es noch einige Optimierungsmöglichkeiten gibt, entspricht die Gesamtkonzeption den grundlegenden Prinzipien des quantifizierten Handels.

Strategiequellcode
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © felipemiransan

//@version=5
strategy("Supertrend Strategy", overlay=true)

// Function for Supertrend
supertrend(_factor, _atrPeriod) =>
    [out, _] = ta.supertrend(_factor, _atrPeriod)
    out

// Supertrend Settings
factor = input.float(3.42, title="Supertrend Factor")
atrPeriod = input.int(14, title="ATR Period")
tf2 = input.timeframe("120", title="Supertrend Timeframe")

// RSI Settings
rsi_tf = input.timeframe("15", title="RSI Timeframe")
rsiLength = input.int(5, title="RSI Length")
rsiUpper = input.int(95, title="RSI Upper Limit")  
rsiLower = input.int(5, title="RSI Lower Limit")   

// RSI Timeframe
rsi_tf_value = request.security(syminfo.tickerid, rsi_tf, ta.rsi(close, rsiLength), lookahead=barmerge.lookahead_off, gaps=barmerge.gaps_off)

// Supertrend Timeframe
supertrend_tf2 = request.security(syminfo.tickerid, tf2, supertrend(factor, atrPeriod), lookahead=barmerge.lookahead_off, gaps=barmerge.gaps_off)

// Take Profit Settings (Percentage in relation to the average price)
takeProfitPercent = input.float(30, title="Take Profit", step=0.1) / 100

// Entry conditions based on price crossover with Supertrend Timeframe
longCondition = ta.crossover(close, supertrend_tf2) and barstate.isconfirmed
shortCondition = ta.crossunder(close, supertrend_tf2) and barstate.isconfirmed

// Execution of reversal orders with closing of previous position
if (longCondition)
    // Close a short position before opening a long position
    if (strategy.position_size < 0)
        strategy.close("Short", comment="Close Short for Long Entry")
    strategy.entry("Long", strategy.long)

if (shortCondition)
    // Close long position before opening short position
    if (strategy.position_size > 0)
        strategy.close("Long", comment="Close Long for Short Entry")
    strategy.entry("Short", strategy.short)

// Calculate take profit levels relative to the average entry price
if (strategy.position_size > 0)
    takeProfitLong = strategy.position_avg_price * (1 + takeProfitPercent)
    strategy.exit("Take Profit Long", "Long", limit=takeProfitLong)

if (strategy.position_size > 0 and (rsi_tf_value >= rsiUpper))
    strategy.close("Long", comment="RSI Take Profit Long")

if (strategy.position_size < 0)
    takeProfitShort = strategy.position_avg_price * (1 - takeProfitPercent)
    strategy.exit("Take Profit Short", "Short", limit=takeProfitShort)

if (strategy.position_size < 0 and (rsi_tf_value <= rsiLower))
    strategy.close("Short", comment="RSI Take Profit Short")

// Plot Supertrend timeframe with commit check to avoid repainting
plot(barstate.isconfirmed ? supertrend_tf2 : na, color=color.blue, title="Supertrend Timeframe (120 min)", linewidth=1)

// Plot RSI for visualization
plot(rsi_tf_value, "RSI", color=color.purple)
hline(rsiUpper, "RSI Upper", color=color.red)
hline(rsiLower, "RSI Lower", color=color.green)