Golden Cross Dead Cross Doppel gleitender Durchschnitt MACD Trendverfolgungsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-22 14:17:34
Tags:

img

Übersicht

Diese Strategie beurteilt den Preistrend durch Berechnung des schnellen gleitenden Durchschnitts, des langsamen gleitenden Durchschnitts und des MACD-Indikators und konstruiert die Golden Cross- und Dead Cross-Handelssignale.

Strategie Logik

Diese Strategie basiert hauptsächlich auf drei Indikatoren.

Erstens berechnet es den schnellen gleitenden Durchschnitt und zwei langsame gleitende Durchschnitte. Wenn der schnelle MA über die beiden langsamen MA geht, wird ein Kaufsignal generiert. Wenn der schnelle MA unter die beiden langsamen MA geht, wird ein Verkaufssignal generiert. Dies beurteilt die Beziehung zwischen den kurzfristigen und langfristigen Trends, um den goldenen Kreuz und den toten Kreuzhandel zu realisieren.

Zweitens berechnet es den MACD-Indikator, einschließlich MACD-Linie, Signallinie und Histogramm. Wenn das MACD-Histogramm > 0 ist, ist es ein bullischer Indikator; wenn das MACD-Histogramm < 0, ist es ein bärischer Indikator. Dies hilft, die Zuverlässigkeit von Goldenen Kreuz- und Toten Kreuzsignalen zu beurteilen.

Schließlich beinhaltet es die Mechanismen Take Profit, Stop Loss und Trailing Stop Loss.

Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. Goldenes Kreuz, totes Kreuz kombiniert mit dem MACD können Sie den Kurstrend zuverlässig beurteilen.
  2. Stop-Loss-Punkte verhindern größere Verluste.
  3. Trailing Stop Loss bewegt sich automatisch, um die Gewinne kontinuierlich zu sperren und die Trendgewinne zu maximieren.
  4. Flexible Parameter-Einstellungen wie angepasste gleitende Durchschnittsperioden.

Risiken

Es gibt auch einige Risiken:

  1. Preisschocks können Stopp-Loss-Punkte auslösen.
  2. Der langfristige Betrieb von Trailing Stop Loss erfordert eine kontinuierliche Überwachung und rechtzeitige Anpassung.
  3. Eine falsche Einstellung der Parameter kann zu Über- oder fehlenden Trades führen.

Die Lösungen sind:

  1. Stellen Sie geeignete Stop-Loss-Punkte fest, um unnötige Stop-Loss zu vermeiden.
  2. Regelmäßige Überprüfung und Optimierung der Parametereinstellungen.
  3. Manuelle Intervention und Überwachung des Zustands.

Optimierungsrichtlinien

Die Strategie kann auch in folgenden Aspekten optimiert werden:

  1. Fügen Sie mehr Indikatoren wie RSI hinzu, um Signale zuverlässiger zu machen.
  2. Optimierung der gleitenden Durchschnittsparameter für verschiedene Handelsinstrumente.
  3. Hinzufügen dynamischer Trailing-Stop-Algorithmen, um Stopppunkte mit dem Markt zu verändern.
  4. Hinzufügen von Positionsgrößen und Risikomanagementmodulen.

Zusammenfassung

Zusammenfassend ist dies eine einfache, aber wirksame Strategie, die Goldene Kreuz, Totkreuz und MACD verwendet, um den Trend zu beurteilen und einen Trailing Stop Loss zu realisieren. Die Vorteile sind Trendverfolgung und Gewinnverriegelung mit hoher Anpassbarkeit. Es ist eine universelle Parameteroptimierungsstrategie, die für verschiedene Handelsinstrumente geeignet ist. Es gibt immer noch einige Risiken und Optimierungsräume, aber insgesamt ist es eine zuverlässige und praktische Handelsstrategie.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy('The Puria Method', shorttitle = 'Puria',overlay = true)

//=== GENERAL INPUTS ===

// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 5, title = "Fast MA Period", minval = 1)

// long ma 1
maSlow1Source   = input(defval = low, title = "Slow MA1 Source")
maSlow1Length   = input(defval = 85, title = "Slow MA Period", minval = 1)

// long ma 2
maSlow2Source   = input(defval = low, title = "Slow MA2 Source")
maSlow2Length   = input(defval = 75, title = "Slow MA Period", minval = 1)

//macd
macdFastLength   = input(defval = 12, title = "Fast MACD Period", minval = 1)
macdSlowLength   = input(defval = 26, title = "Slow MACD Period", minval = 1)
macdSmaLength   = input(defval = 9, title = "SMA MACD Period", minval = 1)

// the risk management inputs
inpTakeProfit   = input(defval = 30, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 10, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 5, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)

// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

// === SERIES SETUP ===
maFast = ema(maFastSource, maFastLength)
maSlow1 = wma(maSlow1Source, maSlow1Length)
maSlow2 = wma(maSlow2Source, maSlow2Length)
[_, signal, histLine] = macd(close, macdFastLength, macdSlowLength, macdSmaLength)

// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)
slow1 = plot(maSlow1, title = "Slow MA1", color = red, linewidth = 2, style = line, transp = 50)
slow2 = plot(maSlow2, title = "Slow MA2", color = red, linewidth = 2, style = line, transp = 50)

// === LOGIC ===
signalUp = crossover(maFast, maSlow1) and crossover(maFast, maSlow2) and histLine > 0
signalDown = crossunder(maFast, maSlow1) and crossunder(maFast, maSlow2) and histLine < 0

// ===STRATEGY===
strategy.entry(id = "Long", long = true, when = signalUp) 
strategy.entry(id = "Short", long = false, when = signalDown)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)

Mehr