Die Ressourcen sind geladen. Beförderung...

Trend nach Strategie auf Basis der gleitenden Durchschnittsdifferenz

Schriftsteller:ChaoZhang, Datum: 2024-01-12 14:42:06
Tags:

img

Übersicht

Diese Strategie erzeugt Handelssignale basierend auf der Differenz zwischen zwei gleitenden Durchschnitten. Wenn die schnelle Linie über die langsame Linie kreuzt, wird ein Kaufsignal erzeugt. Wenn die schnelle Linie unter die langsame Linie kreuzt, wird ein Verkaufssignal erzeugt. Sie gehört zur Kategorie der Trendfolgestrategien. Die Strategie ist einfach und leicht zu verstehen, geeignet für den mittelfristigen Handel.

Strategie Logik

Die Strategie berechnet die Differenz zwischen zwei EMAs mit unterschiedlichen Parametern und berechnet dann eine andere EMA basierend auf dieser Differenz, um Handelssignale zu generieren. Insbesondere wählt sie einen Zeitraum, berechnet 2 Mal EMA der Periode/2 als schnelle Linie und EMA der Periode als langsame Linie. Die Differenz zwischen diesen beiden EMAs bildet den Differenzwertdiff. Dann berechnet sie die EMA der Differenz basierend auf der Periode der quadratischen Periode, was zur Indikatorlinie n1 führt. Wenn n1 über 0 geht, wird ein Kaufsignal generiert. Wenn n1 unter 0 geht, wird ein Verkaufssignal generiert.

Die Strategie ist einfach und direkt und verwendet den doppelten gleitenden Durchschnittsdifferenzindikator, um Preistrends zu beurteilen. Sie gehört zu einer typischen Trendfolgestrategie. Sie funktioniert gut auf Trending-Märkten, kann aber während von Range-bound-Märkten falsche Signale erzeugen. Richtiges Trendbeurteilen und Risikomanagement sollten zusammen mit der Strategie verwendet werden.

Analyse der Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Die Strategielogik ist einfach und intuitiv, leicht verständlich und umsetzbar und für Anfänger geeignet.

  2. Der gleitende Durchschnittsdifferenzindikator ist auf Preisänderungen anfällig und kann Trendänderungen effektiv erfassen;

  3. Die Strategie hat nur wenige Parameter und kann im realen Handel leicht optimiert und angepasst werden;

  4. Lang- und kurzfristige Indikatoren können kombiniert werden, um sich an unterschiedliche Marktbedingungen anzupassen;

  5. Die Stop-Loss-Strategien können entsprechend den persönlichen Risikopräferenzen konfiguriert werden, um Verluste zu reduzieren.

Risikoanalyse

Die Strategie birgt außerdem folgende Risiken:

  1. Eine höhere Falschsignalrate in Bereichsgebundenen Märkten, größere zeitliche Trends sollten in Betracht gezogen werden;

  2. Da es nicht möglich ist, die Trendumkehrpunkte effektiv zu bestimmen, gibt es eine gewisse Verzögerung;

  3. Die Parameter des Unterschiedsindicators müssen überwacht werden, um zu hohe Empfindlichkeit oder Verzögerung zu vermeiden.

  4. Eine hohe Handelsfrequenz kann zu höheren Transaktionskosten führen, und die Größe der Positionen muss kontrolliert werden.

Die entsprechenden Lösungen sind:

  1. Kombination von langfristigen gleitenden Durchschnitten zur Ermittlung der wichtigsten Trends, Vermeidung fehlerhafter Eingaben während der Bereiche;

  2. Hinzufügen von Umkehrindikatoren zur Bestimmung von Ein- und Ausstiegspunkten, Verringerung des Verzögerungsrisikos;

  3. Prüfung von Parameterkombinationen zur Ermittlung der optimalen Parameter;

  4. Optimierung von Stop-Loss-Strategien zur Verringerung von Verlusten pro Handel.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Versuche verschiedene Kombinationen von gleitenden Durchschnittsparametern, um optimale Parameter zu finden;

  2. Hinzufügen von Trendbeurteilungsindikatoren zur Unterscheidung zwischen Trendmärkten und Bereichsmärkten;

  3. Kombination von Umkehrindikatoren zur Verbesserung der Einstiegsgenauigkeit;

  4. Optimieren Sie Stop-Loss-Strategien, um Verluste zu reduzieren.

Durch das Testen verschiedener Periodenparameter kann die Anpassungsfähigkeit der Strategie an verschiedene Marktbedingungen verbessert werden. Durch das Hinzufügen von Trendfiltern können falsche Signale reduziert werden. Umkehrindikatoren können das Timing der Einträge verbessern. Diese Optimierungen können die Stabilität und Rentabilität der Strategie verbessern.

Schlussfolgerung

Die Trendfolgestrategie basierend auf der gleitenden Durchschnittsdifferenz hat eine klare und leicht verständliche Logik. Durch das Beurteilen von Preistrends unter Verwendung doppelter gleitender Durchschnittsdifferenzen gehört sie zu einer typischen Trendjagdstrategie. Die Strategie selbst ist sehr einfach und einfach umzusetzen, geeignet für den mittelfristigen Handel, insbesondere für Anfänger, die studieren möchten. Aber es gibt auch bestimmte Risiken mit der Strategie, die durch Optimierungen reduziert werden müssen. Mit der richtigen Parameter-Tuning und Risikokontrolle kann die Strategie gute Ergebnisse erzielen.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='Devick', overlay=true)

// Input parameters
period = input(title='Period', defval=21)

// Calculate moving averages
n2ma = 2 * ta.ema(close, math.round(period / 2))
nma = ta.ema(close, period)
diff = n2ma - nma
sqn = math.round(math.sqrt(period))

n2maPrev = 2 * ta.ema(close[1], math.round(period / 2))
nmaPrev = ta.ema(close[1], period)
diffPrev = n2maPrev - nmaPrev
sqnPrev = math.round(math.sqrt(period))

n1 = ta.ema(diff, sqn)
n2 = ta.ema(diffPrev, sqnPrev)

// Determine color based on condition
maColor = n1 > n2 ? color.green : color.red

// Plot moving average
ma = plot(n1, color=maColor, linewidth=2)

// Signals
buySignal = n1 > n2 and n1[1] <= n2[1]
sellSignal = n1 <= n2 and n1[1] > n2[1]

// Plot shapes for signals
plotshape(series=buySignal, title='Buy Signal', style=shape.arrowup, location=location.belowbar, color=color.green, size=size.small)
plotshape(series=sellSignal, title='Sell Signal', style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.small)

// Alerts
alertcondition(condition=buySignal, title='Buy Signal', message='Buy Signal Detected')
alertcondition(condition=sellSignal, title='Sell Signal', message='Sell Signal Detected')

// Trading hours
openHour = 16
closeHour = 17

// Open position at 4 pm
openCondition = hour == openHour and minute == 0
strategy.entry("Buy", strategy.long, when=buySignal)
strategy.entry("Sell", strategy.short, when=sellSignal)
// Close all positions at 5 pm
closeCondition = hour == closeHour and minute == 0
strategy.close_all(when=closeCondition)

Mehr