Bullische Trendstrategie mit mehreren gleitenden Durchschnitten


Erstellungsdatum: 2024-01-22 12:04:05 zuletzt geändert: 2024-01-22 12:04:05
Kopie: 0 Klicks: 661
1
konzentrieren Sie sich auf
1617
Anhänger

Bullische Trendstrategie mit mehreren gleitenden Durchschnitten

Überblick

Die Multiple-Mean-Line-Multi-Head-Trend-Strategie ist eine Trend-Tracking-Strategie, bei der die Indikator-Moving Averages (EMA) für mehrere verschiedene Perioden beurteilt werden. Sie wird ausgeführt, wenn der Preis die 10-Tage-EMA überschreitet und andere EMA-Linien mit längeren Perioden mehrere Heads aufweisen; dann wird ein Stop-Loss von 8% verwendet, um Gewinne zu sichern.

Strategieprinzip

Die Strategie verwendet sechs EMA-Linien mit unterschiedlichen Perioden von 10, 20, 50, 100, 150 und 200 Tagen. Diese EMA-Linien werden verwendet, um zu beurteilen, in welcher Phase der Markt sich befindet. Wenn die kurzfristige EMA-Linie (z. B. die 10-Tage-Linie) über die längerperiodische EMA-Linie (z. B. die 20-Tage- und 50-Tage-Linie) fällt, wird dies als Markup-Phase angesehen, in der der Markt in einen mehrköpfigen Trend eintritt.

Insbesondere wird eine Strategie ausgeführt, wenn die folgenden Bedingungen erfüllt sind:

  1. Die EMA am 10. Tag ist höher als die EMA am 20. Tag
  2. Die 20-Tage-EMA-Linie ist höher als die 50-Tage-EMA-Linie.
  3. Die 100-Tage-EMA-Linie ist höher als die 150-Tage-EMA-Linie
  4. Die 150-Tage-EMA ist höher als die 200-Tage-EMA.
  5. Die 10-Tage-EMA überschreitet den Schlusskurs.

Nach dem Überschreiten der Position wird die Strategie mit einem Stop-Loss von 8% verwendet, um Gewinne zu sichern. Das heißt, die Position wird gehalten, solange der Aktienpreis nicht um mehr als 8% des Kaufpreises zurückfällt.

Insgesamt ist die Kernidee der Strategie: Nach dem Eintritt in einen Mehrspur-Trend mit Hilfe von EMA-Mehrfachfilterbedingungen wird ein Stop-Loss eingesetzt, um Gewinne zu sichern.

Analyse der Stärken

Die wichtigsten Vorteile einer Multiple-Mean-Line-Multiple-Trend-Strategie sind:

  1. Die Effektivität der Filterung von False Breakouts gewährleistet, dass die Markup-Phasen des Preiszyklus erfasst und unnötige Transaktionen reduziert werden.
  2. Mehrfache Filterung der EMA-Linie reduziert die Wahrscheinlichkeit, dass ein Stop-Loss durchbrochen wird, und ermöglicht eine sicherere Haltung.
  3. 8% Trailing Stopps sind weder zu tight noch zu loose, was sowohl eine gute Möglichkeit ist, Gewinne zu sichern, als auch zu häufige Stopps zu vermeiden.
  4. Die Strategie ist flexibel, um die Parameter anzupassen, um die optimale Kombination von Parametern für verschiedene Sorten zu finden.

Risikoanalyse

Die Strategie birgt auch einige Risiken, die beachtet werden müssen:

  1. Die EMA-Linienreihenfolge ist nicht einzigartig, um die Trends zu bestimmen.
  2. Ein Stop-Loss von 8% kann bei starken Verlusten einen Teil des Gewinns verursachen.
  3. Das EMA-Gleichlinien-System selbst bleibt hinter den Preisveränderungen zurück, und die Wendepunkte können ein wenig zurückbleiben.

Für die oben genannten Risiken können wir optimieren und verbessern, indem wir die EMA-Zyklusparameter entsprechend anpassen oder andere Indikatoren als Hilfsurteile einführen.

Optimierungsrichtung

In Anbetracht der Besonderheiten dieser Strategie können in Zukunft Optimierungen in folgenden Bereichen vorgenommen werden:

  1. Versuche verschiedene EMA-Kombinationen und Periodiparameter, um die optimale Parameter zu finden.
  2. Hinzufügen von Volatilitätsindizes, um Trendstärke zu beurteilen und unnötige Positionen zu vermeiden.
  3. Weitere Filterindikatoren wie MACD, KDJ und andere wurden hinzugefügt, um mehrköpfige Arrays zu beurteilen.
  4. Einführung von Algorithmen für maschinelles Lernen und dynamische Verlustbewältigung.

Zusammenfassen

Die Multiple-Mean-Line-Multiple-Head-Trend-Strategie ist insgesamt eine robuste und zuverlässige Trendverfolgungs-Strategie. Sie berücksichtigt sowohl die Trendentscheidung als auch die Risikokontrolle. Durch die Optimierung von Parametern und Algorithmen gibt es noch viel Raum für Verbesserungen. Insgesamt ist dies eine effektive Strategie, die es wert ist, ausprobiert und untersucht zu werden.

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

//@version=5
strategy('SirSeff\'s EMA Rainbow', overlay=true)
// Testing Start dates
testStartYear = input(2000, 'Backtest Start Year')
testStartMonth = input(1, 'Backtest Start Month')
testStartDay = input(1, 'Backtest Start Day')
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2100, 'Backtest Stop Year')
testStopMonth = input(12, 'Backtest Stop Month')
testStopDay = input(30, 'Backtest Stop Day')
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
// Component Code Stop

//TSP
trailStop = input.float(title='Long Trailing Stop (%)', minval=0.0, step=0.1, defval=8) * 0.01

longStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - trailStop)
    math.max(stopValue, longStopPrice[1])
else
    0

//PLOTS
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop')
plot(ta.ema(close, 20))
plot(ta.ema(close, 50))
plot(ta.ema(close, 100))
plot(ta.ema(close, 150))
plot(ta.ema(close, 200))

//OPEN
longCondition =  ta.ema(close, 10) > ta.ema(close, 20) and ta.ema(close, 20) > ta.ema(close, 50) and ta.ema(close, 100) > ta.ema(close, 150) and ta.ema(close, 150) > ta.ema(close, 200)
if longCondition and ta.crossover(close,ta.ema(close,10)) and testPeriod()
    strategy.entry("BUY1", strategy.long)
    
if longCondition and ta.crossover(ta.ema(close,10),ta.ema(close,20)) and testPeriod()
    strategy.entry("BUY2'", strategy.long)

//CLOSE @ TSL
if strategy.position_size > 0 and testPeriod()
    strategy.exit(id='TSP', stop=longStopPrice)