Quantitative Handelsstrategie basierend auf einem einfachen gleitenden Durchschnitt


Erstellungsdatum: 2023-12-22 13:28:01 zuletzt geändert: 2023-12-22 13:28:01
Kopie: 0 Klicks: 768
1
konzentrieren Sie sich auf
1623
Anhänger

Quantitative Handelsstrategie basierend auf einem einfachen gleitenden Durchschnitt

Überblick

Die Moving Average Crossover Strategy ist eine quantitative Handelsstrategie, die auf einfachen Moving Averages basiert. Die Strategie erzeugt Kauf- und Verkaufssignale durch Berechnung von einfachen Moving Averages aus verschiedenen Perioden, wenn sie sich kreuzen.

Insbesondere berechnet die Strategie einen einfachen Moving Average für die 9- und die 45-Tage-Linie. Wenn der Preis die 9- und die 45-Tage-Linie überschreitet, erzeugt dies ein Kaufsignal. Wenn der Preis die 9- und die 45-Tage-Linie unterschreitet, erzeugt dies ein Verkaufsignal.

Strategieprinzip

Die Kernlogik der Strategie basiert auf dem Gold- und Forken-Dead-Fork-Prinzip des Moving Averages. Der Moving Average kann Marktlärm effektiv filtern und zeigt Veränderungen im Trend an. Wenn der Kurzmittelwert über dem Langermittelwert fällt, bedeutet dies, dass der Preis in eine Aufwärtstrend beginnt.

Insbesondere verwendet die Strategie einen einfachen gleitenden Durchschnitt der 9- und 45-Tage-Linien. Die 9-Tage-Linien stellen einen kurzfristigen Trend dar, während die 45-Tage-Linien einen langfristigen Trend darstellen. Wenn die Preise die 9-Tage- und 45-Tage-Linien überschreiten, ist der Aktienkurs sowohl kurz- als auch langfristig im Aufwärtskanal und erzeugt somit ein Kaufsignal.

Aus der Code-Logik betrachtet, berechnet die Strategie zunächst den einfachen Moving Average für die 9- und die 45-Tage-Linien, und beurteilt dann durch die Funktionen ta.crossover und ta.crossunder die Gold- und die Todesforken der Gleichung. Bei der Erzeugung von Kauf- und Verkaufssignalen wird die Signalgrafik mit der Plotshape-Funktion auf der K-Linienkarte gezeichnet, die ein Dreieck und ein umgekehrtes Dreieck darstellt.

Darüber hinaus ist in der Strategie eine Stop-Loss-Logik für Long- und Short-Positions vorgesehen. Konkret wird nach dem Aufnehmen der Position der höchste und der niedrigste Preis der vorherigen K-Linie als Stop-Loss-Preis gezogen. Dies ermöglicht es, Gewinne zu sichern und große Verluste zu vermeiden.

Analyse der Stärken

  • Die Verwendung von Doppel-Gleichgewichts-Einstellungen ermöglicht die Erfassung von Veränderungen in mittleren und langen Trends, vermeidet die Beeinträchtigung durch kurzfristigen Marktrauschen und verbessert die Signalqualität.
  • In Kombination mit einer Stop-Loss-Strategie können Sie Risiken effektiv kontrollieren und Gewinne sperren.
  • Die Strategie ist einfach zu verstehen und umzusetzen.
  • Die Kapitalnutzungsrate ist hoch und die Kapitalerholung ist gut.

Risikoanalyse

  • Die Doppel-Gleich-Linie-Strategie ist anfällig für die Erzeugung von Thrustsignalen, die zu einer Überzahl von ungültigen Transaktionen führen können.
  • Die Stop-Loss-Preise sind möglicherweise zu konservativ eingestellt, um die Trends auf Dauer zu verfolgen.
  • Eine falsche Parameterwahl kann zu einer zu hohen oder zu niedrigen Handelsfrequenz führen.
  • Es ist unmöglich, sich an die Umkehrung der großen Dinge anzupassen.

Gegenmaßnahmen:

  1. Optimierung der Durchschnittsparameter und Verringerung der Ineffizienz
  2. Optimierung der Stop-Loss-Logik mit Trend-Tracking-Stopps
  3. Filtersignale in Kombination mit anderen Indikatoren
  4. Ein künstlicher Eingriff, um eine Umkehrung der Tragödie zu verhindern

Optimierungsrichtung

Die Strategie kann noch weiter optimiert werden:

  1. Die Verwendung von Adaptive Moving Averages oder Index Moving Averages kann Trends besser erfassen.

  2. Filtersignale wie die Fluktuationsrate-Anzeige werden erhöht, um falsche Signale bei Erschütterungen zu vermeiden.

  3. Die Parameteroptimierungsmethode wird verwendet, um die optimale Kombination von Parametern zu finden.

  4. Ein Trend-Tracking-Mechanismus wurde in die Stop-Logik integriert, um die Stop-Line in die Lage zu versetzen, die Preise flexibel zu verfolgen.

  5. Erhöhung der Beurteilung der Unterstützung und Widerstandsfähigkeit auf großen Ebenen und Vermeidung von Fehlsignalen in wichtigen Preisbereichen.

  6. In Kombination mit einem maschinellen Lernmodell wird die Signalqualität weiter gefiltert.

Zusammenfassen

Die Linie-Kreuz-Strategie ist eine einfache und praktische Trend-Tracking-Strategie. Sie filtert effektiv den Lärm und fängt die Veränderungen in den mittleren und langen Preistrends ein. In Verbindung mit einer geeigneten Stop-Loss-Logik ist es möglich, auf der Grundlage von Risikokontrolle Trend-Handel zu betreiben.

Strategiequellcode
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// Input parameters
fast_length = input(9, title="Fast SMA Length")
slow_length = input(45, title="Slow SMA Length")

// Calculate moving averages
fast_sma = ta.sma(close, fast_length)
slow_sma = ta.sma(close, slow_length)

// Buy condition
buy_condition = ta.crossover(close, fast_sma) and ta.crossover(close, slow_sma)

// Sell condition
sell_condition = ta.crossunder(close, fast_sma) and ta.crossunder(close, slow_sma)

// Calculate stop loss levels
prev_low = request.security(syminfo.tickerid, "1D", low[1], lookahead=barmerge.lookahead_on)
prev_high = request.security(syminfo.tickerid, "1D", high[1], lookahead=barmerge.lookahead_on)

// Plot signals on the chart
plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy exit conditions
long_stop_loss = sell_condition ? prev_low : na
short_stop_loss = buy_condition ? prev_high : na

strategy.exit("Long Exit", from_entry="Long", when=sell_condition, stop=long_stop_loss)
strategy.exit("Short Exit", from_entry="Short", when=buy_condition, stop=short_stop_loss)

strategy.entry("Long", strategy.long, when=buy_condition)
strategy.entry("Short", strategy.short, when=sell_condition)