Die Ressourcen sind geladen. Beförderung...

Strategie zur Verfolgung von Trends in mehreren Zeitrahmen auf der Grundlage von Impulse-MACD und Dual Moving Average Crossover

Schriftsteller:ChaoZhang, Datum: 2024-05-17 15:33:02
Tags:MACDSMMASMAZLEMAEMA- Nein.

img

Übersicht

Diese Strategie nutzt verschiedene gleitende Durchschnittsindikatoren, darunter SMMA, SMA, ZLEMA und EMA, und konstruiert auf ihrer Grundlage einen verbesserten MACD-Indikator (Impulse MACD). Sie erzeugt Handelssignale durch das Crossover des Impulse MACD und seiner Signallinie. Die Hauptidee der Strategie besteht darin, Markttrends mit gleitenden Durchschnitten verschiedener Zeitrahmen zu erfassen und gleichzeitig die Stärke und Richtung des Trends mit dem Impulse MACD zu bestätigen.

Strategieprinzip

  1. Berechnen Sie die SMMA und ZLEMA der hohen, niedrigen und schließenden Preise mit einer Länge von 34 um den Impulse MACD (MD) zu erhalten.
  2. Die 9-Perioden-SMA des Impulse MACD wird als Signallinie (SB) berechnet.
  3. Berechnen Sie die Differenz zwischen dem Impulse MACD und der Signallinie (SH), um die Trendstärke zu reflektieren.
  4. Erzeugen Sie ein Kaufsignal, wenn der Impulse MACD über die Signallinie geht, und schließen Sie die Position, wenn sie darunter geht.
  5. Zeichnen Sie das Impulse-MACD-Histogramm mit verschiedenen Farben anhand der Beziehung zwischen dem Preis, dem Impulse-MACD und dem High/Low-Price-SMMA, um die Trendstärke visuell widerzuspiegeln.

Strategische Vorteile

  1. Die Verwendung mehrerer Arten gleitender Durchschnitte ermöglicht eine umfassendere Abbildung der Marktentwicklung.
  2. Der verbesserte MACD-Indikator (Impulse MACD) berücksichtigt die relative Position von Kurs und gleitenden Durchschnitten und spiegelt so die Trendstärke besser wider.
  3. Die Einführung der Signalleitung hilft, einige falsche Signale auszufiltern und die Signalqualität zu verbessern.
  4. Das Zeichnen des Impulse MACD mit verschiedenen Farben basierend auf der Trendstärke erleichtert eine intuitive Beurteilung der Marktbewegungen.

Strategische Risiken

  1. Eine unsachgemäße Parameterwahl kann zu häufigen oder verzögerten Signalen führen, die eine Optimierung auf der Grundlage verschiedener Märkte und Zeitrahmen erfordern.
  2. Die Strategie kann mehr falsche Signale erzeugen und Verluste in unruhigen Märkten verursachen.
  3. Die Strategie verfügt nicht über einen Stop-Loss-Mechanismus und kann in volatilen Märkten mit erheblichen Rückgängen konfrontiert sein.

Strategieoptimierungsrichtlinien

  1. Einführung von Trend-Identifikationsindikatoren wie ADX, um nur dann zu handeln, wenn der Trend klar ist, wodurch Verluste in unruhigen Märkten reduziert werden.
  2. Bestätigen Sie die erzeugten Handelssignale mit anderen Indikatoren wie RSI und ATR, um die Signalqualität zu verbessern.
  3. Festlegen angemessener Stop-Loss- und Take-Profit-Niveaus zur Kontrolle des Single-Trade-Risikos.
  4. Optimieren von Parametern mit Methoden wie genetischen Algorithmen, um die optimale Parameterkombination zu finden.

Zusammenfassung

Diese Strategie konstruiert einen verbesserten MACD-Indikator auf der Grundlage verschiedener Arten von gleitenden Durchschnitten und erzeugt Handelssignale durch seine Kreuzung mit der Signallinie, während die Trendstärke intuitiv angezeigt wird. Die allgemeine Idee ist klar und die Vorteile sind offensichtlich. Die Strategie hat jedoch auch bestimmte Einschränkungen, wie eine schlechte Anpassungsfähigkeit an unsichere Märkte und einen Mangel an Risikokontrollmaßnahmen. Weitere Verbesserungen können aus Aspekten wie Trendidentifikation, Signalbestätigung, Risikokontrolle und Parameteroptimierung zur Steigerung der Robustheit und Rentabilität der Strategie in Betracht gezogen werden.


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

//@version=5
strategy("Impulse MACD Strategy [LazyBear]", shorttitle="IMACD_Strategy", overlay=false)

// Function to calculate SMMA
calc_smma(src, len) =>
    var float smma = na
    smma := na(smma[1]) ? ta.sma(src, len) : (smma[1] * (len - 1) + src) / len
    smma

// Function to calculate SMA
	ta.sma(src, len)
    sum = 0.0
    for i = 0 to len - 1
        sum := sum + src[i]
    sum / len

// Function to calculate ZLEMA
calc_zlema(src, length) =>
    var float ema1 = na
    var float ema2 = na
    var float d = na
    ema1 := ta.ema(src, length)
    ema2 := ta.ema(ema1, length)
    d := ema1 - ema2
    ema1 + d

// Function to calculate EMA
calc_ema(src, len) =>
    ema = 0.0
    ema := ta.ema(src, len)
    ema

// Inputs
lengthMA = input(34, title="Length of Moving Average")
lengthSignal = input(9, title="Length of Signal Line")

// Calculations
src = hlc3
hi = calc_smma(high, lengthMA)
lo = calc_smma(low, lengthMA)
mi = calc_zlema(src, lengthMA) 

md = mi > hi ? (mi - hi) : mi < lo ? (mi - lo) : 0
sb = ta.sma(md, lengthSignal)
sh = md - sb
mdc = src > mi ? src > hi ? color.lime : color.green : src < lo ? color.red : color.orange

// Plotting
plot(0, color=color.gray, linewidth=1, title="MidLine")
plot(md, color=mdc, linewidth=2, title="ImpulseMACD", style=plot.style_histogram)
plot(sh, color=color.blue, linewidth=2, title="ImpulseHisto", style=plot.style_histogram)
plot(sb, color=color.maroon, linewidth=2, title="ImpulseMACDCDSignal")

// Execute trades based on signals
if (ta.crossover(md, sb))
    strategy.entry("Buy", strategy.long)
if (ta.crossunder(md, sb))
    strategy.close("Buy")


Verwandt

Mehr