Dynamische Handelsstrategie basierend auf Z-Score und Supertrend: Long-Short-Switching-System

RSI ATR SMA
Erstellungsdatum: 2024-11-27 16:01:20 zuletzt geändert: 2024-11-27 16:01:20
Kopie: 0 Klicks: 528
1
konzentrieren Sie sich auf
1617
Anhänger

Dynamische Handelsstrategie basierend auf Z-Score und Supertrend: Long-Short-Switching-System

Überblick

Die Strategie ist ein quantitatives Handelssystem, das die Z-Score-Statistik, den relativ starken RSI-Indikator und den Supertrend-Indikator kombiniert. Die Strategie sucht nach hohen Wahrscheinlichkeitschancen in den Märkten, indem sie die statistische Abweichung der Preise überwacht, kombiniert mit Dynamik-Indikatoren und Trendbestätigung. Die Strategie kann nicht nur Überkauf-Überverkaufsmöglichkeiten im Markt erfassen, sondern auch falsche Signale durch Trendbestätigung filtern und mehrere binäre Handelswege realisieren.

Strategieprinzip

Die Kernlogik der Strategie basiert auf der Synergie von drei Haupttechnikindikatoren: Erstens, die Abweichung des aktuellen Preises vom historischen Mittelwert durch die Berechnung eines Z-Score des Preises, bei dem ein Moving Average und eine Standarddifferenz von 75 Zyklen verwendet werden. Wenn der Z-Score über 1.1 oder unter -1,1 liegt, zeigt dies eine signifikante statistische Abweichung des Preises an.

Strategische Vorteile

  1. Mehrfache Signalbestätigung: Die Verlässlichkeit von Handelssignalen wird durch die Kombination von Statistiken, Dynamik und Trend in drei Dimensionen erheblich erhöht.
  2. Anpassungsfähigkeit: Die Berechnungsmethode für den Z-Score ermöglicht es der Strategie, sich an unterschiedliche Marktumgebungen anzupassen, ohne von den absoluten Preisniveaus beeinflusst zu werden.
  3. Risikokontrolle: Der Supertrend-Indikator bietet eine automatische Trendverfolgung und Risikokontrolle.
  4. Zwei-Wege-Handel: Die Strategie ermöglicht es, Chancen in zwei Richtungen zu ergreifen, was die Effizienz der Kapitalnutzung erhöht.
  5. Die Strategie verwendet eindeutige mathematische Modelle und objektive Indikatoren, um subjektive Urteile zu vermeiden.

Strategisches Risiko

  1. Rückstandsrisiko: Die Strategie kann in einem schnell wechselnden Markt mit einem Signalrückstand konfrontiert werden, da sie über mehrere Perioden hinweg bewegliche Durchschnitte verwendet.
  2. Falsche Durchbruchgefahr: In den Quermärkten kann es zu häufigen falschen Durchbruchsignalen kommen.
  3. Parameter-Sensitivität: Die Effektivität der Strategie ist stark von der Wahl der Parameter abhängig, die in verschiedenen Marktumgebungen unterschiedlich eingestellt werden müssen.
  4. Marktbedingte Abhängigkeit: Die Strategie kann in einem Markt, in dem keine Trends sichtbar sind, nicht optimal funktionieren.

Richtung der Strategieoptimierung

  1. Dynamische Parameter-Anpassung: Ein Adaptionsparameter-Mechanismus kann eingeführt werden, der automatisch die Parameter für Z-Score-Trenchwerte und Supertrends an die Marktfluktuation anpasst.
  2. Zusätzliche Marktumfeld-Filterung: Hinzufügung eines Marktumfeld-Erkennungsmoduls, der verschiedene Kombinationen von Parametern unter verschiedenen Marktbedingungen verwendet.
  3. Verbesserte Stop-Loss-Mechanismen: Einführung von dynamischen Stop-Loss-Strategien, wie z. B. Stop-Loss auf Basis von ATR oder Tracking-Stop-Loss
  4. Optimierte Signalfilterung: Um Handelssignale weiter zu filtern, können Transaktionsbestätigungen oder andere technische Kennzahlen hinzugefügt werden.
  5. Einführung eines Zeitfilters: Erwägen Sie, die Handelszeitfenster zu begrenzen, um schwankende Zeiten zu vermeiden.

Zusammenfassen

Es handelt sich um eine quantitative Handelsstrategie, die statistische Methoden und technische Analysen kombiniert, um die Zuverlässigkeit des Handels durch Multiple-Signal-Bestätigung zu verbessern. Die Kernvorteile der Strategie liegen in ihren objektiven mathematischen Modellen und ausgefeilten Risikokontrollmechanismen, wobei jedoch auch auf die Optimierung der Parameter und die Frage der Marktanpassungsfähigkeit geachtet werden muss. Durch die empfohlene Optimierungsrichtung gibt es noch Raum für weitere Verbesserungen der Strategie, insbesondere in Bezug auf die dynamische Anpassung an die Marktumgebung und die Risikokontrolle.

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

//@version=5
strategy("Z-Score Long and Short Strategy with Supertrend", overlay=true)

// Inputs for Z-Score
len = input.int(75, "Z-Score Lookback Length")
z_long_threshold = 1.1  // Threshold for Z-Score to open long
z_short_threshold = -1.1  // Threshold for Z-Score to open short

// Z-Score Calculation
z = (close - ta.sma(close, len)) / ta.stdev(close, len)

// Calculate Driver RSI
driver_rsi_length = input.int(14, "Driver RSI Length")  // Input for RSI Length
driver_rsi = ta.rsi(close, driver_rsi_length)  // Calculate the RSI

// Supertrend Parameters
atrPeriod = input.int(11, "ATR Length", minval=1)
factor = input.float(2.0, "Factor", minval=0.01, step=0.01)

// Supertrend Calculation
[supertrend, direction] = ta.supertrend(factor, atrPeriod)

// Conditions for Long and Short based on Z-Score
z_exceeds_long = z >= z_long_threshold and driver_rsi > 60
z_exceeds_short = z <= z_short_threshold and driver_rsi < 40

// Entry Conditions
if (z_exceeds_long and direction < 0) // Enter Long if Z-Score exceeds threshold and Supertrend is down
    strategy.entry("Long", strategy.long)
    label.new(bar_index, low, text="Open Long", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)
    alert("Open Long", alert.freq_once_per_bar)  // Alert for Long entry

if (z_exceeds_short and direction > 0) // Enter Short if Z-Score exceeds threshold and Supertrend is up
    strategy.entry("Short", strategy.short)
    label.new(bar_index, high, text="Open Short", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
    alert("Open Short", alert.freq_once_per_bar)  // Alert for Short entry

// Plot Supertrend
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color=color.green, style=plot.style_linebr)
downTrend = plot(direction > 0 ? supertrend : na, "Down Trend", color=color.red, style=plot.style_linebr)
fill(upTrend, downTrend, color=color.new(color.green, 90), fillgaps=false)

// Alert conditions for Supertrend changes (optional)
alertcondition(direction[1] > direction, title='Downtrend to Uptrend', message='The Supertrend value switched from Downtrend to Uptrend')
alertcondition(direction[1] < direction, title='Uptrend to Downtrend', message='The Supertrend value switched from Uptrend to Downtrend')