MACD-basierte Multi-Timeframe-Handelsstrategie


Erstellungsdatum: 2024-01-12 11:46:59 zuletzt geändert: 2024-01-12 11:46:59
Kopie: 0 Klicks: 1114
1
konzentrieren Sie sich auf
1617
Anhänger

MACD-basierte Multi-Timeframe-Handelsstrategie

Beschreibung: Die Strategie nutzt MACD-Indikatoren, um Handelssignale über mehrere Zeiträume zu erzeugen und Trends zu verfolgen. Die Grundidee ist es, die Richtung des Trends in hohem Zeitraum zu bestätigen und dann in einem niedrigen Zeitraum nach spezifischen Einstiegsmomenten zu suchen.

Die Strategie: Die Strategie nutzt die Abweichungslinie und die Kreuzung der Signallinie des MACD-Indikators, um die Richtung des Trends zu bestimmen. Insbesondere berechnet sie die MACD-Abweichungslinie und die Signallinie in einem hohen Periodenzeitrahmen (die Standardzeit ist 60 Minuten). Ein Kaufsignal wird erzeugt, wenn die Abweichungslinie die Signallinie durchbricht, und ein Verkaufsignal wird erzeugt, wenn sie die Signallinie durchbricht, um die allgemeine Trendrichtung zu bestätigen.

Die Strategie berechnet dann den MACD in einem niedrigen Zeitrahmen (der aktuellen Zeitrahmen) und tritt in die entsprechende Position, wenn die Abweichung und die Signallinie sich kreuzen. Die hohe Zeitspanne wird verwendet, um die Richtung der Tendenz zu bestimmen, die niedrige Zeitspanne wird verwendet, um einen spezifischen Einstiegspunkt zu finden.

Die Strategie nutzt auch die Farbänderungen der Säulenkarte, um Trends zu bestimmen, wobei die grünen Säulen für einen Anstieg und die roten Säulen für einen Rückgang stehen.

Die Analyse der Stärken:

  1. Mehrzeit-Rahmenkonstruktion, hohe Perioden, um die Richtung der Trends zu bestimmen, niedrige Perioden, um die Einstiegspunkte zu finden, gute Systematik.

  2. Die MACD-Indikator-Kreuzung wird verwendet, um den Zeitpunkt des Kaufs und Verkaufs zu bestimmen. Die Indikatorparameter sind optimiert und die Signale sind zuverlässiger.

  3. Die Kolonnade unterstützt bei der Beurteilung des aktuellen Trendstatus, bildet eine Mehrfachüberprüfung und erhöht die Genauigkeit der Entscheidungsfindung.

  4. Automatische Trend-Verfolgung, ohne viel manuelle Intervention, reduziert emotionale Fehleinschätzungen.

Risikoanalyse:

  1. Der MACD ist ein Indikator, der langfristige Trends verfolgt und in der kurzen Zeit falsche Signale erzeugen kann, die zu unnötigen Verlusten führen.

  2. Mehrzeitrahmenstrategien sind schwieriger zu optimieren und zu testen, da sie mehrere Zyklen gleichzeitig berücksichtigen müssen.

  3. Die Strategie hat keine Stop-Loss-Einstellung und kann zu größeren Verlusten führen.

Optimierung:

  1. Optimierung von MACD-Parametern, um die optimale Kombination von Parametern zu finden.

  2. Es ist wichtig, dass die Schadensbegrenzungsmechanismen erhöht werden.

  3. Beurteilung der Notwendigkeit einer Signalfilterung mit anderen Indikatoren zur Verbesserung der Signalqualität.

  4. Versuche verschiedene Kombinationen von Zeitrahmen, um die optimale Zeitrahmengleichung zu finden.

Zusammenfassung: Die Strategie ist systematisch gut konzipiert und kombiniert die vielfältigen Vorteile der MACD-Indikatoren, um die mittleren langen Trends effektiv zu verfolgen. Da jedoch keine Stop-Losses eingerichtet wurden, ist es schwierig, das Risiko einer Vergrößerung der kurzfristigen Verluste zu vermeiden. Dies ist eine Richtung, in der weitere Optimierung erforderlich ist.

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

//@author : SudeepBisht
//@version=2
strategy(title="SB_CM_MacD_Ult_MTF", shorttitle="SB_CM_Ult_MacD_MTF")
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 ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? lime : 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=4)
plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2)
plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4)
plot(sd and cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=circles, linewidth=4, color=macd_color)
// hline(0, '0 Line', linestyle=solid, 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, comment="BBandLE")

if (crossunder(macd_chk, checker))
    strategy.entry("BBandSE", strategy.short, comment="BBandSE")