Strategie für eine doppelte Kreuzung von gleitenden Durchschnitten

Schriftsteller:ChaoZhang, Datum: 23.11.2023
Tags:

img

Übersicht

Die Dual Moving Average Crossover Strategie ist eine allgemeine Trendfolgestrategie. Sie verwendet zwei gleitende Durchschnitte verschiedener Perioden, um die Trendrichtung zu identifizieren und Handelssignale auf der Grundlage ihres Crossovers zu generieren. Insbesondere wird ein goldenes Kreuz gebildet, wenn der kürzere gleitende Durchschnitt über den längeren Zeitraum überschreitet, was einen Aufwärtstrend anzeigt. Im Gegensatz dazu wird ein Todeskreuz gebildet, wenn der kürzere MA unter den längeren MA überschreitet, was einen Abwärtstrend anzeigt.

Strategie Logik

Die Strategie verwendet hauptsächlich 6-Perioden-, 14-Perioden-, 25-Perioden- und 80-Perioden-EMA-Linien.

Wenn der 6-Perioden-EMA über den 14-Perioden- oder 25-Perioden-EMA überschreitet und er über dem 80-Perioden-EMA liegt, wird ein Kaufsignal generiert. Dies zeigt an, dass der kurzfristige MA die mittelfristigen bis langfristigen MA durchbricht und ein Aufwärtstrend beginnen kann, so dass wir einen Kauf in Betracht ziehen können.

Umgekehrt wird ein Verkaufssignal erzeugt, wenn die 6-Perioden-EMA entweder unter die 14-Perioden- oder 25-Perioden-EMA überschreitet und unter die 80-Perioden-EMA liegt. Dies zeigt, dass die kurzfristige MA durch mittelfristige bis langfristige MA gebrochen wird und ein Abwärtstrend beginnen kann, so dass wir über einen Verkauf nachdenken können.

Nach der Erstellung des Signals eröffnet die Strategie Long- oder Short-Positionen. Sie verfügt auch über eine Stop-Loss-Logik, um Positionen zu verlassen, wenn der Verlust eine Schwelle für die Risikokontrolle übersteigt.

Analyse der Vorteile

Die Vorteile dieser Strategie sind:

  1. Die Verwendung von MA-Crossover zur Bestimmung des Trends ist ein ausgereifter und zuverlässiger technischer Indikator.

  2. Die Kombination mehrerer Zeitrahmen reduziert die falschen Signale. Der 6-Perioden-MA erzeugt Signale, während die 14-Perioden-, 25-Perioden-MA bestätigen und der 80-Perioden-MA den Gesamttrend definiert.

  3. Der Stop-Loss kontrolliert das Risiko und schützt das Kapital effektiv.

  4. Die Logik ist einfach und klar, leicht zu verstehen und zu bestätigen.

  5. Die MA-Perioden können so eingestellt werden, dass sie sich an die sich ändernden Marktbedingungen anpassen.

Risikoanalyse

Zu den Risiken dieser Strategie gehören:

  1. Der Preis kann während des Bereichs um die MA-Perioden herumwühlen, was zu übermäßigen ungültigen Signalen führt.

  2. Ein fester Stop-Loss ist möglicherweise zu starr. Überlegen Sie stattdessen, einen Trailing-Stop oder einen Dynamic-Stop zu verwenden.

  3. Das Risiko, dass ein Stop-Loss durch plötzliche Kurslücke getroffen wird, wird in solchen Fällen durch zusätzliche Logik übersprungen.

  4. Wir können nicht auf kurzfristige Kursschwankungen reagieren.

  5. Begrenzter Optimierungsraum. Überlegen Sie, adaptive gleitende Mittelwerte zu verwenden.

Optimierungsrichtlinien

Einige Möglichkeiten zur Optimierung der Strategie:

  1. Versuche verschiedene Kombinationen von MA-Perioden, um Marktempfindlichere Parameter zu finden.

  2. Verbessern Sie den Stop-Loss-Mechanismus mit Trailing- oder Dynamic-Stops, um das Stop-Run-Risiko zu reduzieren.

  3. Fügen Sie Filterindikatoren wie KDJ, MACD hinzu, um übermäßige Trades während des Bereichs zu vermeiden.

  4. Optimieren Sie die Einstiegsregeln, warten Sie, bis sich der MA-Crossover vollständig bildet, bevor Sie eintreten, um falsche Signale zu reduzieren.

  5. Anwendung von adaptiv gleitenden Durchschnitten, die Perioden automatisch anhand der Volatilität anpassen.

  6. Hinzufügen von Positionsgrößenregeln zur Anpassung der Positionsgröße an die Marktbedingungen.

  7. Einbeziehung von Gewinnausgängen.

Zusammenfassung

Zusammenfassend lässt sich mit dieser doppelten gleitenden Durchschnitts-Crossover-Strategie die Trendrichtung leicht auf der Grundlage einfacher MA-Crossover-Logik identifizieren und hat ein kontrollierbares Risiko. Sie eignet sich für die Verfolgung mittelfristiger bis langfristiger Trends. Die Strategie bietet jedoch viel Raum für Optimierungen über Einstiegsregeln, Stop-Loss-Techniken, Filterbedingungen usw. Insgesamt dient sie als solide Baseline-Trendstrategie mit vernünftigen Vor- und Nachteilen.


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

//@version=3
strategy(title = " bhramaji EMA Cross Strategy", shorttitle = "EMA Cross",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(true,"UseStopLoss")


stopLoss = input(20, title = "Stop loss percentage(0.1%)")


maSource   = input(defval = close, title = "MA Source")
maLength6   = input(defval = 6, title = "MA Period 6", minval = 1)
maLength14  = input(defval = 14, title = "MA Period 14", minval = 1)
maLength25  = input(defval = 25, title = "MA Period 25", minval = 1)
maLength80  = input(defval = 80, title = "MA Period 80", minval = 1)

ma6 = ema(maSource, maLength6)
ma14 = ema(maSource, maLength14)
ma25 = ema(maSource, maLength25)
ma80 = ema(maSource, maLength80)

ma_6_plot = plot(ma6 , title = "MA  6", color = red, linewidth = 2, style = line, transp = 50)
ma14_plot = plot(ma14, title = "MA 14", color = green, linewidth = 2, style = line, transp = 50)
ma25_plot = plot(ma25, title = "MA 25", color = blue, linewidth = 2, style = line, transp = 50)
ma80_plot = plot(ma80, title = "MA 80", color = silver, linewidth = 2, style = line, transp = 50)


longEMA = (crossover(ma6, ma14) or crossover(ma6, ma25)) and (ma6>ma80) 
exitLong = (crossunder(ma6, ma14) or crossunder(ma6, ma25)) 

shortEMA = (crossunder(ma6, ma14) or crossunder(ma6, ma25)) and (ma6< ma80)
exitShort =(crossover(ma6, ma14) or crossover(ma6, ma25))

if (longEMA)
    strategy.entry("LongId", strategy.long)
 
if (shortEMA)
    strategy.entry("ShortId", strategy.short)

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)





Mehr