Trendfolgestrategie mit dem Preismomentumindikator


Erstellungsdatum: 2024-01-17 13:58:19 zuletzt geändert: 2024-01-17 13:58:19
Kopie: 1 Klicks: 540
1
konzentrieren Sie sich auf
1617
Anhänger

Trendfolgestrategie mit dem Preismomentumindikator

Überblick

Die Strategie ist eine Trend-Tracking-Strategie, die mit Hilfe von Preisdynamik-Indikatoren umgesetzt wird. Sie beurteilt die Markttrends durch die Berechnung der Schlusskursänderungen in einem bestimmten Zeitraum und führt entsprechende Über- oder Unterziehungshandlungen durch, wenn die Preise eine anhaltende Aufwärts- oder Abwärtsentwicklung aufweisen.

Strategieprinzip

Der Kernindikator der Strategie ist das Momentum der Preise. Die Formel zur Berechnung des Momentums lautet:

momentum = close - close[n]

n ist die Dauer des Momentumszyklus. Wenn Momentum > 0 ist, ist der Preis in der aktuellen Periode gestiegen. Wenn Momentum < 0 ist, ist der Preis in der aktuellen Periode gesunken.

Die Strategie setzt zunächst einen confirmBars-Parameter ein, der die Anzahl der K-Linien darstellt, die erforderlich sind, um einen Handel auszuführen. Im Rahmen der Rückmessung wird ein Mehr-Eintritt durchgeführt, wenn Momentum > 0 die ConfirmBars-K-Linie fortsetzt; ein Leer-Eintritt wird durchgeführt, wenn Momentum < 0 die ConfirmBars-K-Linie fortsetzt.

Der Schlüssel zur Trendbeurteilung der Strategie besteht in der Erfassung der Anzahl der K-Linien, deren Momentum in Folge größer oder kleiner als 0 ist, durch die Variablen bcount und scount. Sie werden +1 bei der Erfüllung der entsprechenden Bedingung und 0 bei Nichterfüllung. Wenn die Anzahl der ConfirmBars erreicht wird, wird der entsprechende Trade ausgeführt.

Strategische Vorteile

Dies ist eine einfache Trendverfolgungsstrategie mit folgenden Vorteilen:

  1. Einfache Logik und leicht verständliche Umsetzung
  2. Die Dynamik-Indikatoren sind auf Preisänderungen empfindlich und können schnell Trends erfassen.
  3. Konfigurierbare Parameter zur Anpassung der Urteilsempfindlichkeit
  4. In einer Vielzahl von Marktumgebungen einsetzbar

Strategisches Risiko

Die Strategie birgt auch einige Risiken:

  1. Anfällig für mehrfache Shock-Trading und Übertrading
  2. Die Parameter, insbesondere die ConfirmBars, müssen vernünftig konfiguriert werden, um die Erschütterung zu filtern
  3. Unfähigkeit, den Auswirkungen von Marktausbrüchen wirksam zu begegnen
  4. Die Rückmeldung unterscheidet sich von der Festplatte und erfordert die Überprüfung der Daten und die Optimierung der zusätzlichen Parameter.

Richtung der Strategieoptimierung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Erhöhung der Stop-Loss-Logik und Kontrolle des Einmal-Transactionsrisikos
  2. Mehr Durchbruchfilter zur Vermeidung von Falschsignalen bei Preisschwankungen
  3. Parameter wie ConfirmBars werden je nach Sorte und Marktumfeld angepasst
  4. Mehrfache Beurteilung in Verbindung mit anderen Indikatoren für die Zulassung
  5. Anpassung von Parametern und Filterregeln mit Hilfe von maschinellen Lernverfahren

Zusammenfassen

Insgesamt ist die Dynamic Breakout Strategie eine einfache und praktische Trend-Tracking-Strategie, die sich als eine der Einstiegsstrategien für quantitative Transaktionen eignet. In der Anwendung ist darauf zu achten, die Handelsfrequenz zu kontrollieren, Überhändlungen zu vermeiden und zu hohe Transaktionskosten zu vermeiden. Gleichzeitig müssen die Parameter und die Filterregeln an die tatsächliche Sorte und die Marktumgebung angepasst und optimiert werden, um die Strategie optimal auszusetzen.

Strategiequellcode
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Momentum Strategy [TS Trader]", overlay=true)

confirmBars = input(1)
momentumLength = input(14, title="Momentum Length")

price = close
momentum = close - close[momentumLength]

// === INPUT BACKTEST RANGE ===
fromYear = input.int(2019, title="Backtest Start Year")
fromMonth = input.int(1, title="Backtest Start Month", minval=1, maxval=12)
fromDay = input.int(1, title="Backtest Start Day", minval=1, maxval=31)
toYear = input.int(2023, title="Backtest End Year")
toMonth = input.int(12, title="Backtest End Month", minval=1, maxval=12)
toDay = input.int(31, title="Backtest End Day", minval=1, maxval=31)

startTimestamp = timestamp(fromYear, fromMonth, fromDay, 00, 00)
endTimestamp = timestamp(toYear, toMonth, toDay, 23, 59)

inBacktestRange = true

// === STRATEGY LOGIC ===
bcond = momentum > 0
bcount = 0
bcount := bcond ? nz(bcount[1]) + 1 : 0
if (bcount == confirmBars and inBacktestRange)
    strategy.entry("Buy", strategy.long, comment="Long")

scond = momentum < 0
scount = 0
scount := scond ? nz(scount[1]) + 1 : 0
if (scount == confirmBars and inBacktestRange)
    strategy.entry("Sell", strategy.short, comment="Short")

// Plotting Momentum
plot(momentum, title="Momentum", color=color.purple)