Momentum-Aufschlüsselung MACD-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-10-20 17:12:31
Tags:

img

Übersicht

Die Momentum Breakdown-MACD-Strategie nutzt hauptsächlich die Kombination des MACD-Indikators und des Momentum-Indikators, um Handelssignale zu generieren, die zu einer Trend-Folgende-Strategie gehören. Diese Strategie berechnet zuerst den schnellen EMA und den langsamen EMA, berechnet dann den MACD-Wert und berechnet weiter die Signallinie des MACD. Gleichzeitig berechnet sie den Momentum-Wert des Preises. Wenn der Momentum-Wert zusammen mit der MACD-Differenz über das Null-Niveau geht, erzeugt sie ein Kaufsignal. Wenn der Momentum-Wert zusammen mit der MACD-Differenz unter das Null-Niveau geht, erzeugt sie ein Verkaufssignal. Dies gehört zu einem Doppelbestätigungsmechanismus, um Handelssignale zu erzeugen.

Strategie Logik

Diese Strategie basiert hauptsächlich auf der Kombination von MACD- und Momentum-Indikatoren.

Der MACD-Indikator ist ein Trendindikator, der aus dem schnellen EMA, dem langsamen EMA und dem MACD-Histogramm besteht. Der schnelle EMA hat normalerweise einen Parameter von 12 Tagen und der langsame EMA hat einen Parameter von 26 Tagen. Die Berechnungsformeln sind:

Fast EMA = EMA ((Schließpreis, 12)

Langsamer EMA = EMA ((Schließpreis, 26)

MACD = schnelle EMA - langsame EMA

Signallinie = EMA ((MACD, 9)

Wenn die schnelle EMA über die langsame EMA geht, bedeutet dies, dass der kurzfristige Aufwärtstrend stärker ist als der langfristige Trend, der ein Kaufsignal ist.

Der Momentum-Indikator spiegelt die Geschwindigkeit der Preisbewegung wider und seine Berechnungsformel lautet:

Momentum = heutiger Schlusskurs - Schlusskurs vor N Tagen

Wenn der heutige Schlusskurs über dem vor N Tagen liegenden Kurs steigt, ist der Momentumwert positiv, was auf einen Aufwärtstrend hinweist.

Diese Strategie kombiniert den MACD-Indikator mit dem Momentum-Indikator. Die Kriterien für die Erzeugung von Handelssignalen sind: Wenn die Differenz zwischen der MACD-Differenz und der Momentum-Differenz über das Null-Niveau geht, erzeugt es ein Kaufsignal und bildet einen Über-Null-Crossover. Wenn die Differenz unter das Null-Niveau geht, erzeugt es ein Verkaufssignal und bildet einen unter-Null-Crossover. Dies gehört zu einem Dual-Bestätigungsmechanismus zur Erzeugung von Handelssignalen, der einige falsche Signale filtern und einen Trend folgen kann.

Analyse der Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. Die Kombination der MACD- und Momentum-Indikatoren ermöglicht ein Trendverfolgen und vermeidet einen ineffizienten Handel, wenn der Vermögenswertpreis ohne klare Richtung schwankt.

  2. Auf der Grundlage des Dual-Confirmation-Mechanismus kann es Geräusche filtern und Störungen durch falsche Signale vermeiden.

  3. Die MACD-Parameter sind verstellbar, die für verschiedene Produkte und Handelszyklen optimiert werden können, was sie sehr anpassungsfähig macht.

  4. Sie verwendet sowohl Kauf- als auch Verkaufshandelsmechanismen, um Trends in beide Richtungen zu erfassen.

  5. Die Strategie ist leicht verständlich und mit weniger Parametern für Anfänger geeignet.

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Sowohl der MACD als auch der Momentum gehören zu den Trend-Folgende Indikatoren. Sie können einen ineffizienteren Handel erzeugen, wenn der Markt heftige Schwankungen sieht oder kein klarer Trend besteht.

  2. Obwohl die Kombination von zwei Indikatoren falsche Signale ausfiltern kann, können auch einige Handelschancen verpasst werden.

  3. Wenn sich die wichtigsten Zyklustrends umkehren, kann sich der MACD-Indikator verzögern, was zu Handelsverlusten führt.

  4. Die Handelsfrequenz kann hoch sein, was Aufmerksamkeit für das Kapitalmanagement und die Provisionskontrolle erfordert.

  5. Bei falschen Parametern kann es zu einer zu hohen Empfindlichkeit oder Verzögerung kommen.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimieren Sie die MACD-Parameter, um die beste Parameterkombination für verschiedene Handelsprodukte und -zyklen zu finden.

  2. Optimieren Sie den Periodenparameter des Impulsindikators, um die Empfindlichkeit und die Geräuschfilterung auszugleichen.

  3. Hinzufügen von Stop-Loss-Mechanismen zur Kontrolle des maximalen Verlusts pro Handel.

  4. Zusätzliche Positionsmanagement-Module zur Skalierung der Handelsgröße im Trend.

  5. Fügen Sie Filter wie den ATR-Indikator hinzu, um falsche Trades in unruhigen Märkten zu vermeiden.

  6. Sie können andere Indikatoren wie Bollinger Bands und RSI einbinden, um Multi-Bestätigungs-Handelssignale zu bilden.

  7. Hinzufügen von Optimierungsschleifen für die kontinuierliche Parameteriteration und -optimierung.

Zusammenfassung

Die Momentum Breakdown-MACD-Strategie implementiert den Trend-Nach-Handel unter Verwendung der Stärken der MACD- und Momentum-Indikatoren. Ihr Dual-Bestätigungsmechanismus kann effektiv Marktlärm filtern und ineffizienten Handel vermeiden. Diese Strategie ist relativ einfach und leicht zu verstehen, besonders für Anfänger geeignet. Aber die Verzögerung des MACD und das Risiko eines ineffizienten Handels während von Bereichsmärkten sollten beachtet werden. Die Strategie kann durch kontinuierliche Optimierung von Parametern und die Einbeziehung von Hilfstechnischen Indikatoren robuster gemacht werden.


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

//@version=4
strategy(title="MACD MOMENTUM TEST", shorttitle="MACD MOM TEST")

// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
len = input(title="Momentum", type=input.integer, defval=10)
src1 = input(title="Source MACD", type=input.source, defval=close)
src2 = input(title="Source MOMENTUM", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 14)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

// Plot colors
col_grow_above = #0c8e61
col_grow_below = #ffcdd2
col_fall_above = #b2dfdb
col_fall_below = #d42f28
col_macd = #ffffff
col_signal = #d42f28
col_mom = #fbc02d

// Calculating
fast_ma = sma_source ? sma(src1, fast_length) : ema(src1, fast_length)
slow_ma = sma_source ? sma(src1, slow_length) : ema(src1, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
mom = src2 - src2[len]


ma(s,l) => ema(s,l)
sema = ma( src1, fast_length )
lema = ma( src1, slow_length )
i1 = sema + mom + ma( src1 - sema, fast_length )
i2 = lema + mom + ma( src1 - lema, slow_length )
macdl = i1 - i2
macd1 =sema - lema

delta = mom - macd1

// Strategy
    // Backtest
FromYear  = input(defval = 2001, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

    // Function exampel
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

if (crossover(delta, 0))
    strategy.entry("Buy", true, when=window(), comment="Buy")

if (crossunder(delta, 0))
    strategy.close_all(when=window())

// Plot
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)
plot(hist, title="Histogram", style=plot.style_histogram, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
plot(mom, color=col_mom, title="Mom")






Mehr