
Die MACD-Distribution-Kreuzstrategie bildet die MACD durch die Berechnung der Differenz zwischen dem schnellen und dem langsamen Moving Average und berechnet die Moving Average des MACD, um eine Lieferlinie zu bilden, die ein Handelssignal erzeugt, wenn der MACD die Lieferlinie über- oder unterbricht. Die Strategie kombiniert die Gleichgewichtsidee der beiden Linien und erfasst die Wendepunkte der mittelfristigen Trends der Aktienpreise.
Die Strategie berechnet zunächst den Fast-Moving-Average fastMA und den Slow-Moving-Average slowMA. Der Fast-Moving-Average-Parameter ist 12 Tage, der Slow-Moving-Average-Parameter ist 26 Tage. Dann wird die Differenz zwischen den beiden Moving-Averagen berechnet, um ein MACD zu bilden.
Der strategische Vorteil besteht darin, dass die Wechselpunkte der mittleren Kursentwicklung erfasst werden. Die schnelle und langsame Mittellinienkombination filtert den Lärm der kurzfristigen Kursbewegungen aus und kann die mittlere Kursentwicklung erfassen.
Die MACD-Distributions-Kreuzstrategie kombiniert die Doppel-Even-Line-Idee und nutzt eine Kombination aus schnellen und langsamen Moving Averages, um kurzfristige Geräusche zu filtern und nur langfristige Trendwendepunkte in den Aktienkursen zu erfassen. Im Vergleich zu einem einzigen Preisindikator erzeugt dies weniger falsche Signale.
Der MACD ist selbst empfindlich und kann die Trendentwicklung des Preises reflektieren. Durch die Aufnahme von Lieferlinien können weitere kurzfristige Falschsignale gefiltert werden. Nur wenn sich der mittlere Trend eindeutig ändert und der MACD die Lieferlinie auf und ab durchbricht, wird ein Signal erzeugt.
Bei einem dauerhaften Anstieg kann der MACD die meiste Zeit über der Lieferlinie bleiben und mehrere Gelegenheiten ergreifen. Gleichermaßen kann der MACD bei einem anhaltenden Rückgang mehrere Leerstände aufrechterhalten und rechtzeitig ein Leerstandssignal geben.
Da das Kauf- und Verkaufssignal der Strategie vollständig auf die Kreuzung des Moving Averages angewiesen ist, werden bei größeren Marktschwankungen mehr Falschsignale erzeugt, was zu häufigen Stop-Losses führt. Die tatsächliche Verlustquote der Strategie ist nicht ideal.
Die Überschreitung der Lieferlinie ist keine Garantie dafür, dass sich der mittelfristige Trend ändert. Ein einziger technischer Indikator als Kaufsignal kann eine gewisse Blindheit haben und die Zeitpunkte können ungenau sein.
In einem schnelllebigen Markt kann es sein, dass mehr Handelschancen verpasst werden, wenn man sich nur auf die Kreuzung der doppelten Mittellinien als Fix-Temperature stützt. In komplexeren starken Situationen kann diese Strategie auch deutlich zurückbleiben.
Erhöhung der Liquiditäts- und Volatilitätsfilter, Verringerung der Häufigkeit der Positionseröffnung und Vermeidung von ungültigen Geschäften. Wie z. B. Erhöhung der Transaktionsmenge, dynamische Anpassung der Moving Average-Parameter.
In Kombination mit mehreren anderen technischen Indikatoren, um eine Kombination von Indikatoren zu bilden, die Signalqualität zu verbessern. Kurzfristige Indikatoren in Kombination mit mittleren und langfristigen Indikatoren können die Marktstruktur besser beurteilen.
Erhöhung der Maschinenlern-Algorithmen, Ausbildungsparameter und Aufmerksamkeits-Thresholds für die aktuelle Marktumgebung, Reduzierung der menschlichen Intervention.
In Kombination mit Panik-Index wie VIX, die vorhergesagte Marktentwicklung und Volatilität, dynamische Anpassungsparameter, um die MACD-Gelegenheiten besser zu nutzen.
Die MACD-Distributions-Kreuzungsstrategie nutzt das Prinzip der Doppel-Gleichgewichts-Kreuzung, um Handelssignale zu erzeugen. Durch die Differenzgrafik der schnellen und langsamen Durchschnittslinie werden die mittelfristigen Preistrends der Aktien deutlich gekennzeichnet. Die Aufnahme der Distributionslinie filtert auch einige Geräuschsignale.
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@author : SudeepBisht
//@version=2
strategy(title="MACD with Signal", shorttitle="MACD_with_Signal")
source = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", defval="60")
smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input(true, title="Show Dots When MacD Crosses Signal Line?")
sh = input(true, title="Show Histogram?")
macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input(true,title="MacD Histogram 4 Colors?")
res = useCurrentRes ? timeframe.period : resCustom
fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = sma(macd, signalLength)
hist = macd - signal
outMacD = request.security(syminfo.tickerid, res, macd)
outSignal = request.security(syminfo.tickerid, res, signal)
outHist = request.security(syminfo.tickerid, res, hist)
histA_IsUp = outHist > outHist[1] and outHist > 0
histA_IsDown = outHist < outHist[1] and outHist > 0
histB_IsDown = outHist < outHist[1] and outHist <= 0
histB_IsUp = outHist > outHist[1] and outHist <= 0
//MacD Color Definitions
macd_IsAbove = outMacD >= outSignal
macd_IsBelow = outMacD < outSignal
plot_color = hist_colorChange ? histA_IsUp ? green : histA_IsDown ? lime : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? green : red : red
signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime
circleYPosition = outSignal
plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=3)
plot(smd and outSignal ? outSignal : na, title="Signal", color=blue, style=line ,linewidth=1)
plot(sh and outHist ? outHist : na, title="", color=plot_color, style=columns, linewidth=4)
//plot(sd and cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=circles, linewidth=4, color=macd_color)
hline(0, '0 Line', linewidth=2, color=white)
macd_chk=smd and outMacD ? outMacD : na
checker=smd and outSignal ? outSignal : na
if (crossover(macd_chk,checker))
strategy.entry("BBandLE", strategy.long)
if (crossunder(macd_chk, checker))
strategy.entry("BBandSE", strategy.short)