Die Ressourcen sind geladen. Beförderung...

MACD-Trend nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-15 17:08:15
Tags:

img

Übersicht

Diese Strategie wird als MACD Trend Following Strategy bezeichnet. Es ist eine quantitative Strategie, die den MACD-Indikator verwendet, um Preistrends zu bestimmen und den Trends zum Handel zu folgen. Die Strategie zielt darauf ab, mittelfristige bis langfristige Trends zu erfassen und Positionen rechtzeitig anzupassen, wenn Trendumkehrungen auftreten.

Strategie Logik

Die Strategie verwendet den MACD-Indikator, um Preistrends zu bestimmen. Der MACD ist ein Ausbruchindikator, der von der schnellen EMA-Linie (12 Tage) und der langsamen EMA-Linie (26 Tage) gebildet wird. Der Unterschied zwischen diesen beiden Linien bildet das MACD-Histogramm, und das 9-tägige EMA des Histogramms ist die MACD-Signallinie. Wenn die MACD-Linie über die Signallinie kreuzt, ist es ein goldenes Kreuz, das einen Aufwärtstrend anzeigt. Wenn die MACD-Linie unterhalb der Linie kreuzt, ist es ein totes Kreuz, das einen Abwärtstrend anzeigt.

Die Strategie berechnet zunächst die MACD-Linie und die Signallinie und berechnet dann die Differenz Delta zwischen den beiden Linien. Wenn das Delta über 0 geht, wird ein Kaufsignal generiert. Wenn das Delta unter 0 geht, wird ein Verkaufssignal generiert. Basierend auf diesen beiden Signalen passt die Strategie die Positionen entsprechend an. Um Lärm zu filtern, führt die Strategie auch eine EMA-Linie ein - gültige Handelssignale werden nur generiert, wenn der Preis diese EMA-Linie durchbricht.

Insbesondere ist die Strategielogik:

  1. Berechnung der MACD-Linie, der Signallinie und der Differenzdelta
  2. Feststellen, ob ein Delta-Kreuz über oder unter 0 eine Trendumkehr bedeutet
  3. Berechnung einer EMA-Linie als Filter
  4. Wenn Delta über 0 und Preis über EMA liegt, erzeugen Sie ein Kaufsignal
  5. Wenn das Delta unter 0 fällt und der Preis unter der EMA liegt, wird ein Verkaufssignal erzeugt.

Mit diesem Konzept kann die Strategie mittelfristigen bis langfristigen Trends folgen und bei Trendumkehren schnell Positionen anpassen, um nicht von kurzfristigen Marktgeräuschen getäuscht zu werden.

Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Verwenden Sie den MACD, um Trendumkehrpunkte für Ein- und Ausstiegszeitpunkte genau zu erkennen
  2. Einen EMA-Filter anwenden, um Störungen durch kurzfristige Marktgeräusche zu vermeiden
  3. Folgen Sie nur mittelfristigen bis langfristigen Trends und vermeiden Sie Whipsaws in verschiedenen Märkten
  4. Einfache und klare Logik, leicht zu verstehen und den Code zu ändern
  5. Flexibilität bei der Steuerung der Handelsfrequenz durch Anpassung der Parameter
  6. Hohe Eigenmittelverwendung, um mittelfristige und langfristige Trends vollständig zu verfolgen

Risiken

Es gibt einige Risiken, auf die man achten sollte:

  1. Der MACD als Trendindikator kann in unruhigen Märkten falsche Signale erzeugen
  2. Der EMA-Filter kann einige gültige Handelsmöglichkeiten ausfiltern
  3. Fehlende Einstellungen von Parametern können zu einem Über- oder Unterhandel führen
  4. Nicht in der Lage, auf kurzfristige Marktveränderungen aufgrund von Verzögerungen zu reagieren
  5. Kann aufgrund von Verzögerungen das optimale Timing an Trendwendepunkten verpassen

Lösungen:

  1. Optimierung der Parameter und Anpassung des EMA-Filters zur Verringerung falscher Signale
  2. Einbeziehung anderer Indikatoren zur Bestätigung zur Aufdeckung weiterer Transaktionen
  3. Einführung von Stop-Loss zur Kontrolle von Verlusten bei Einzelgeschäften
  4. Verkürzung der Aufbewahrungsdauer zur Verbesserung der Flexibilität

Optimierung

Die Strategie kann auf folgende Weise weiter optimiert werden:

  1. Hinzufügen anderer Indikatoren zu einem kombinierten System für höhere Genauigkeit
  2. Einführung von Profit- und Stop-Loss-Mechanismen zur besseren Risikokontrolle
  3. Einbeziehung von Volumenindikatoren zur Vermeidung falscher Ausbrüche
  4. Dynamische Anpassung der Parameter an die Marktbedingungen zur Verbesserung der Robustheit
  5. Verfeinern Sie die Ein- und Ausstiegslogik, um das Timing zu verbessern
  6. Skalierung von Positionen, um Trends besser zu verfolgen und Risiken zu reduzieren

Eine signifikante Verbesserung kann durch Methoden wie Indikatorenkombinationen, adaptive Parameter, Stop-Loss/Profit-Taking usw. erzielt werden.

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass die MACD Trend Following Strategie den einfachen und effektiven MACD-Indikator nutzt, um mittelfristige bis langfristige Trends zu identifizieren und einen klaren Trend nach Logik umzusetzen. Sie hat die Fähigkeit, Trends sowie angemessene Risikokontrollmaßnahmen zu erfassen. Mit weiteren Optimierungen kann die Strategie zu einem sehr praktischen Quant-Trading-System werden. Sie eignet sich für Anleger, die nach stetigen langfristigen Gewinnen gegenüber kurzfristigen Gewinnen suchen.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-10-27 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's MACD Strategy v1.0", shorttitle = "MACD str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
usefil = input(false, defval = false, title = "Use EMA filter")
lenfil = input(5, defval = 5, minval = 1, maxval = 50, title = "EMA filter period")

fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

//Signals
ema = ema(close, lenfil)
trend = crossover(delta, 0) == true ? 1 : crossunder(delta, 0) == true ? -1 : trend[1]
up = trend == 1 and (low < ema or usefil == false) ? 1 : 0
dn = trend == -1 and (high > ema or usefil == false) ? 1 : 0

plot(ema, color = black, transp = 0)

if (up == 1)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if (dn == 1)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)


Mehr