MACD 200 Day Moving Average Crossover-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-03 11:50:56
Tags:

img

Übersicht

Diese Handelsstrategie ist eine quantitative Strategie, die auf der 200-tägigen gleitenden Durchschnitts-Crossover-Operation des MACD-Indikators basiert. Sie kombiniert die doppelten Funktionen des MACD-Indikators zur Beurteilung von Kauf- und Verkaufssignalen auf dem Markt und des 200-tägigen gleitenden Durchschnitts zur Beurteilung von Markttrends mit dem Ziel, präzisere Ein- und Ausstiegszeiten zu ermitteln.

Strategieprinzip

Diese Strategie hat zwei Schlüsselpunkte:

  1. Die schnelle und langsame Linie des MACD-Indikators erzeugen Kauf- und Verkaufssignale. Wenn die schnelle Linie die langsame Linie nach oben durchbricht, wird ein Kaufsignal erzeugt. Wenn die schnelle Linie die langsame Linie nach unten durchbricht, wird ein Verkaufssignal erzeugt.

  2. Der 200-tägige gleitende Durchschnitt beurteilt den allgemeinen Markttrend. Preise über dem 200-tägigen gleitenden Durchschnitt deuten auf einen Bullenmarkt hin, und darunter auf einen Bärenmarkt. Kaufsignale werden nur in einem Bullenmarkt ausgeführt und Verkaufssignale nur in einem Bärenmarkt.

Gemäß diesen beiden Punkten sind die spezifischen Handelsregeln dieser Strategie:

Wenn die MACD-Schnelllinie durch die MACD-Slowline nach oben bricht, ist das Histogramm negativ und der Preis liegt über dem 200-tägigen gleitenden Durchschnitt, wird eine Kaufoperation durchgeführt.

Analyse der Vorteile

  1. Die doppelte Bestätigung verbessert die Stabilität und Erfolgsrate der Strategie. Der MACD beurteilt die Kauf- und Verkaufssignale und der 200-Tage- gleitende Durchschnitt beurteilt den Markttrend. Die doppelte Bestätigung kann einige Handelssignale mit größerer Unsicherheit filtern.

  2. In einem stark trendigen Markt kann diese Strategie relativ hohe Gewinne bringen. Besonders in einem Bullenmarkt kann sie schnell Preissteigerungsmöglichkeiten erfassen.

  3. Der MACD-Indikator ist auch relativ empfindlich, wenn es darum geht, aus Konsolidierungsphasen auszusteigen.

Risikoanalyse

  1. Diese Strategie ist sehr empfindlich gegenüber Parameter-Einstellungen.

  2. In der Nähe von Trendwendepunkten produzieren die MACD-Signale tendenziell mehr Fehler.

  3. Wenn sich die Preise in einer langen Konsolidierungsperiode befinden, kann diese Strategie keine klare Trendrichtung bestimmen, was zu erhöhten Gewinn-/Verlustschwankungen und längeren Auslastungszeiten führt.

Optimierung

  1. Verschiedene Parameterkombinationen können getestet werden, um MACD-Parameter zu finden, die genauere Signale erzeugen.

  2. Es sollte in Erwägung gezogen werden, die Bestätigung anderer technischer Indikatoren wie RSI und KD hinzuzufügen, um einen Konsens mehrerer Indikatoren zu bilden, wodurch die Zuverlässigkeit der Strategie erhöht wird.

  3. Stellen Sie Stop-Loss-Punkte fest, um den maximalen Drawdown zu kontrollieren.

Schlussfolgerung

Die MACD 200-Tage gleitende Durchschnitts-Crossover-Strategie kombiniert die doppelten Funktionen von Trendbeurteilung und Handelssignalbeurteilung, die die Rentabilitätswahrscheinlichkeit effektiv verbessern kann. Es ist eine relativ robuste und zuverlässige quantitative Handelsstrategie. Diese Strategie beruht jedoch auch etwas auf Parametern und Marktbedingungen. Kontinuierliche Optimierung und Tests können die stabile Gewinnschaffungsfähigkeit der Strategie weiter verbessern.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © x11joe

//@version=4
//This strategy is based on a youtube strategy that suggested I do this...so I did!

strategy(title="MacD 200 Day Moving Average Signal Crossover Strategy", overlay=false, precision=2,commission_value=0.26, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
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 = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

moving_avg_length = input(title="Moving Average Length", type=input.integer, defval=200)
moving_avg = sma(close,moving_avg_length)

moving_avg_normalized = close - moving_avg
plot(moving_avg_normalized, title="Moving Average Normalized", style=plot.style_line, color=color.orange,linewidth=3)

plot(hist, title="Histogram", style=plot.style_columns, 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)

if(macd>signal and macd<0 and close>moving_avg)
    strategy.entry("buy",strategy.long)

if(close<moving_avg and macd<signal and macd>0)
    strategy.entry("sell",strategy.short)

Mehr