Diese Strategie basiert auf Dynamikindikatoren in Kombination mit gleitenden Durchschnitten, um Markttrends zu verfolgen. Sie geht lang, wenn eine starke Aufwärtsdynamik besteht, und kurz, wenn eine starke Abwärtsdynamik besteht. Sie gehört zur Kategorie der Trendfolgestrategien.
Berechnen Sie den Preismomentum wie folgt: (Tagespreis - Preis vor N Perioden) / Preis vor N Perioden
Berechnung des gleitenden Durchschnitts der Preismitte über N Perioden
Normalisieren Sie den Impulswert auf den Bereich von 0-1
Wenn die normalisierte Dynamik größer als 0,5 ist und der Preis über dem gleitenden Durchschnitt liegt, gehen Sie lang
Wenn die normalisierte Dynamik kleiner als 0,5 ist und der Preis unter dem gleitenden Durchschnitt liegt, gehen Sie kurz
Verwenden Sie einen beweglichen Stop-Loss-Mechanismus mit angemessenen Stop-Loss-Niveaus
Das oben beschriebene deckt die grundlegende Handelslogik ab. Wenn der Markt trendig ist, bewegt sich der Preis dauerhaft in eine Richtung und erzeugt große Momentumwerte. Die Strategie beurteilt die Stärke des Trends anhand der Dynamik und der Richtung anhand des gleitenden Durchschnitts, um über den Einstieg zu entscheiden.
Diese Strategie hat folgende Vorteile:
Marktentwicklungen mit potenziell hohen Gewinnen verfolgt
Momentum reagiert schnell auf Preisänderungen
Bewegliche Durchschnitte filtern zufälliges Rauschen aus und kombinieren sich gut mit dem Momentum
Der Stop-Loss-Mechanismus begrenzt Verluste bei einzelnen Geschäften
Einfache und klare Logik, einfach umzusetzen und zu testen
Flexible Parameter können sich an verschiedene Zeiträume und Marktregime anpassen
Insgesamt ist dies eine großartige Strategie für Trendmärkte. Sie kann erheblich von Richtungstrends profitieren.
Trotz der Vorteile sind einige Risiken zu beachten:
Ausbruchrisiko bei Aufwärtstrends, wenn sich der Preis nach dem Ausbruch umkehrt
Risiko einer Umkehrung bei Abwärtstrends, wenn der Preis nach einem Absturz wieder aufsteigt
Whipsaw signalisiert, wenn der Preis um den gleitenden Durchschnitt schwingt
Falsche Signale, wenn die Parameter nicht richtig eingestellt sind
Unterdurchschnittliche Ergebnisse in den marktübergreifend wechselhaften Märkten
Strenge Stoppverluste und Bewegung erforderlich, um einen vorzeitigen Ausstieg zu verhindern
Um diesen Risiken entgegenzuwirken, muss die Stop-Loss-Strategie optimiert, unnötige Signale mit lockeren Parametern gefiltert, Parameter für verschiedene Perioden angepasst und die Positionsgröße gesteuert werden.
Hier sind einige Möglichkeiten, wie die Strategie weiter optimiert werden kann:
Verschiedene Parameterkombinationen für optimale Backtestergebnisse testen
Einbeziehung der Turtle Trading-Regeln des Ausstiegs bei 2N Verlust und 1N Gewinn
Optimierung des Stop-Loss mit Volatilitätsindikatoren für adaptive Stop-Loss
Hinzufügen von Positionsgrößenregeln basierend auf Drawdown, Zeit usw.
Verschiedene Impulsberechnungsmethoden wie exponentielle gleitende Durchschnittsimpulsprüfungen
Fügen Sie Kerzenmusterfilter für robustere Signale hinzu
Nutzen Sie maschinelles Lernen für Parameteroptimierung, Feature-Auswahl usw.
Einbeziehung eines diskretionären menschlichen Inputs an wichtigen Punkten
Mit diesen Verbesserungen kann die Strategie eine bessere Stabilität, Anpassungsfähigkeit und Rentabilität erreichen.
Die Momentum-Tracking-Strategie ist ein einfacher und praktischer Trend-Folge-Ansatz. Sie kann Markttrends scharf erfassen und von Reitblasen und Abstürzen profitieren. Aber die Risiken der Kurvenanpassung müssen mit disziplinierten Risikokontrollen verwaltet werden, um die Robustheit zu erhalten. Mit Parameter-Tuning und Funktionalitätserweiterungen kann die Strategie in mehr Marktregimen stetige Gewinne erzielen.
/*backtest start: 2023-11-02 00:00:00 end: 2023-11-09 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Momentum Strategy, rev.2", overlay=true) // // Data // src = input(close) lookback = input(20) cscheme=input(1, title="Bar color scheme", options=[1,2]) // // Functions // momentum(ts, p) => (ts - ts[p]) / ts[p] normalize(src, len) => hi = highest(src, len) lo = lowest(src, len) res = (src - lo)/(hi - lo) // // Main // price = close mid = sma(src, lookback) mom = normalize(momentum(price, lookback),100) // // Bar Colors // clr1 = cscheme==1?black: red clr2 = cscheme==1?white: green barcolor(close < open ? clr1 : clr2) // // Strategy // if (mom > .5 and price > mid ) strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE") else strategy.cancel("MomLE") if (mom < .5 and price < mid ) strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE") else strategy.cancel("MomSE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)