Trendverfolgungs-Flaggenmusterstrategie auf Basis von EMA-Indikatoren

Schriftsteller:ChaoZhang, Datum: 2023-11-27 15:30:29
Tags:

img

Übersicht

Diese Strategie verwendet hauptsächlich EMA und Standardabweichungsindikatoren, um die Trendrichtung durch EMA-Kreuzsignale zu bestimmen und nach Ausbruchssignalen mit Standardabweichung zu suchen, um Kauf- und Verkaufssignale zu generieren.

Strategie Logik

Die Strategie besteht aus drei Hauptteilen:

  1. EMA-Differenz (s2): Berechnen Sie die Differenz zwischen schneller EMA (ema_range) und langsamer EMA (ema_watch), um die Kursentwicklungsrichtung zu bestimmen.

  2. Standard-Abweichungskanal (s3): Aufbau des oberen und unteren Kanals basierend auf der EMA-Differenz mit Multiplikatoren der Standardabweichung.

  3. Flaggen und Signale: Erzeugen Kaufsignale, wenn die Preise von unten nach oben durch die obere Schiene durchbrechen, und Verkaufssignale, wenn die Preise von oben nach unten durch die untere Schiene durchbrechen.

Durch diese Kombination von Indikatoren kann es die Trendrichtung der Preise erfassen und Kauf- und Verkaufssignale an wichtigen Punkten erzeugen, was zu einer typischen Trendverfolgungsstrategie gehört.

Analyse der Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Die EMA kann Trends effektiv verfolgen.
  2. Die Standardabweichung baut Kanäle, um falsche Signale zu vermeiden.
  3. Flaggenformen machen Signale deutlich.
  4. Flexible Parametereinstellungen von gleitenden Durchschnitten und Standardabweichungsmultiplen.
  5. Eine maximale Abnahmekontrolle trägt dazu bei, Risiken zu verringern.

Risikoanalyse

Es gibt auch einige Risiken:

  1. Auf den Märkten mit Bandbreite können mehr falsche Signale auftreten.
  2. Zu große Standard-Abweichungs-Multiplikatoren können Chancen verpassen.
  3. Bei Rückschlägen kann kein Stop-Loss zu größeren Verlusten führen.

Die Lösungen:

  1. Hinzufügen Sie ein marktbezogenes Urteilsvermögen und verwenden Sie stattdessen andere Strategien.
  2. Optimieren Sie die Standardabweichung.
  3. Hinzufügen von beweglichen Stop Loss, um Verluste einzelner Trades zu kontrollieren.

Optimierung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Fügen Sie mehr Indikatoren wie Bollinger-Bänder hinzu, um die Signalqualität zu verbessern.
  2. Optimierung der gleitenden Durchschnitts- und Standardabweichungsparameter.
  3. Hinzufügen von Stop-Loss-Strategien zur Verringerung von Drawdowns.
  4. Festlegen Sie optimale Kauf-/Verkaufssignalparameter für verschiedene Märkte.
  5. Hinzufügen von Algorithmen für maschinelles Lernen, um das Gesamtmarktregime zu bestimmen.

Schlussfolgerung

Zusammenfassend ist dies eine typische Trendverfolgungsstrategie, bei der EMA und Standardabweichung verwendet werden, um ein Indikatorsystem aufzubauen und Flaggsignale an wichtigen Punkten zu generieren. Die Vorteile liegen darin, Trends zu erfassen und falsche Signale mit Standardabweichung zu vermeiden. Die Hauptrisiken stammen von falschen Signalen in Bereichsmärkten und Drawdown-Risiken aufgrund von Stop Loss. Durch Hinzufügen von Beurteilungsindikatoren, Optimierung von Parametern und Hinzufügen von Stop Loss kann die Strategie in Bezug auf Stabilität und Rentabilität weiter verbessert werden. Insgesamt ist der Strategierahmen vernünftig und bietet großes Optimierungspotenzial.


/*backtest
start: 2023-09-27 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ROCKET_EWO", overlay=true)
ema_range = input(5)
ema_watch = input(13)
inval_a = input(open)
inval_b = input(open)
ratio = input(0)
max = 5000
s2=ta.ema(inval_a, ema_range) - ta.ema(inval_b, ema_watch)
c_color=s2 <= ratio ? 'red' : 'lime'
s3 = s2 + (ta.stdev(open, 1)) * 5.618
plotshape(s3, color=color.white, style=shape.cross, location=location.abovebar, size=size.auto, show_last=max, transp=30, offset= 0)
cr = s2 > 0
alertcondition(cr, title='[Rocket_EWO]', message='[Rocket_EWO]')
buy = s2 > 1
sell = s2 < -1
txt  = "🚀" + "\n"+ "\n"+ "\n"+ "\n"
plotshape(buy, color=color.lime, style=shape.triangleup, location=location.belowbar ,color=color.white, text=txt, size=size.normal, show_last=max, transp=1, offset= -3)
plotshape(not buy, color=color.red, style=shape.triangledown, location=location.belowbar, size=size.normal, show_last=max, transp=1, offset= 0)
signalperiod = time
s4 = ta.cross(s2, 0) ? time : na
colsig= s2 <= ratio ? color.red : color.lime
plotshape((time==s4)?7000:na,color=color.blue, style=shape.flag, location=location.abovebar, size=size.large, transp=1)

longCondition =  ta.crossover(s2, 1.618)
if (longCondition)
    strategy.entry("LONG Id", strategy.long)

shortCondition = ta.crossunder(s2, 1.618)
if (shortCondition)
    strategy.entry("SHORT Id", strategy.short)

strategy.close("LONG Id", when = s2 < 0.218)
// strategy.risk.max_drawdown(75, strategy.percent_of_equity)


Mehr