
Die Strategie kombiniert die Mittellinie mit dem MACD-Indikator, um Trends zu beurteilen und Handelssignale zu senden. Sie ist eine typische Trendverfolgungsstrategie. Sie verwendet die ZLSMA-Mittellinie mit zwei verschiedenen Perioden, um die Trendrichtung zu bestimmen, und kombiniert die Multi-Balance-Linien-Kreuzung mit dem MACD-Indikator, um spezifische Kauf- und Verkaufssignale zu senden, um die mittleren und langen Trends effektiv zu erfassen und die kurzfristigen Marktgeräusche zu vermeiden.
Die Strategie besteht aus folgenden Teilen:
Fast-ZLSMA-Mittelwert und Slow-ZLSMA-Mittelwert: Die Gesamttrendrichtung wird durch den Vergleich der ZLSMA-Mittelwerte verschiedener Perioden ermittelt. Die Fastlinie besteht aus 32 ZLSMA-Perioden, die Slow-Linie aus 400 ZLSMA-Perioden.
MACD-Indikator: Die MACD wird aus der schnellen Linie ((12-Tage-EMA) minus der langsamen Linie ((26-Tage-EMA) berechnet, um die Differenz abzulesen. Die Signallinie wird mit der 9-Tage-EMA berechnet. Wenn die Signallinie über dem MACD durchläuft, ist dies ein Kaufsignal, und wenn sie unter dem MACD durchläuft, ist dies ein Verkaufssignal.
Handelssignale: Ein Kauf- oder Verkaufssignal wird nur ausgegeben, wenn die ZLSMA-Form und das MACD-Signal synchron sind. Das heißt, ein Kauf bei einem Mehrkopf-Trend plus MACD-Goldfork und ein Verkauf bei einem Leerkopf-Trend plus MACD-Deadfork.
Stop-Loss-Stopp: Diese Strategie wurde vorerst nicht in die Stop-Loss-Stopp-Logik aufgenommen und muss nachträglich weiter optimiert werden.
Diese Kombination nutzt die Durchschnittslinie, um den Trend zu beurteilen, und die MACD, um den Zeitpunkt des Eintritts zu beurteilen, um falsche Durchbrüche effektiv zu filtern und von kurzfristigen Marktgeräuschen abzulenken.
Diese Strategie hat folgende Vorteile:
Trendfang: Durch die Kombination verschiedener periodischer Durchschnittslinien kann die Richtung des Trends beurteilt werden, so dass die mittleren und langen Trends nach und nach erfasst werden können.
Filterung von Lärm: Die Anwendung des MACD-Indikators filtert kurzfristigen Marktlärm und verhindert, dass er von kleinen Schwingungen getäuscht wird.
Die Parameter sind anpassbar: Durchschnittszyklus und MACD-Parameter können individuell angepasst und für verschiedene Märkte optimiert werden.
Einfach zu implementieren: Die Indikatoren sind allgemein verwendete technische Indikatoren, die Kombinationslogik ist einfach und klar, leicht zu verstehen und umzusetzen.
Risikokontrolle: Es gibt eine eindeutige Stop-Loss- und Stop-Stop-Strategie, die das Risiko und die Gewinnquote für jeden Handel kontrolliert.
Die Strategie birgt auch folgende Risiken:
Der Trend kann sich in einer bestimmten Richtung auswirken, und wenn der Trend in einer anderen Richtung auswirkt, können alle Trades verloren gehen.
Unzulässige Parameteroptimierung: Die Mittellinien- und MACD-Parameter müssen detailliert getestet und optimiert werden, sonst kann es nicht gut funktionieren.
Fehlende Stop-Loss-Mechanismen: Derzeit gibt es keine Stop-Loss-Mechanismen und es besteht ein übermäßiges Risiko von Verlusten.
Es gibt nur begrenzte Gewinnspielräume: Als Trend-Tracking-Strategie gibt es nur begrenzte Gewinnspielräume für jeden Handel, und es wird eine Menge benötigt, um einen höheren Gewinn zu erzielen.
Zu hohe Transaktionsfrequenz: Die falsche Einstellung der Parameter kann zu einer zu hohen Transaktionsfrequenz führen, was zu erhöhten Transaktionskosten und Slippage-Kosten führt.
Die Strategie kann in folgenden Bereichen weiter optimiert werden:
Einschließung von Stop-Loss-Mechanismen: Setzen Sie einen angemessenen Stop-Loss-Punkt und kontrollieren Sie den maximalen Verlust für einen einzelnen Handel.
Optimierungsparameter: Die optimale Kombination aus Mittellinien und MACD-Parametern wird durch Rückmessung und Optimierung gefunden.
Verringerung der Handelsfrequenz: Anpassung der Parameter, um sicherzustellen, dass die Handelssignale nur dann ausgegeben werden, wenn ein Trend deutlich ist.
Zusammen mit anderen Faktoren: Trends und Signale können mit anderen Faktoren wie Handelsvolumenänderungen bestätigt werden.
Optimierung der Zulassungszeit: Die Anwendung der MACD-Indikatoren wird weiter optimiert, um die Genauigkeit der Zulassung zu verbessern.
Mehrsprachige Allgemeingültigkeit: Durch Optimierung der Parameter kann die Strategie für verschiedene Sorten verwendet werden, um die Reichweite zu erweitern.
Insgesamt ist die Strategie durch eine einfache und effektive Kombination von Mittellinien und MACD-Indikatoren in der Lage, die Trends der mittleren und langen Linien zu erfassen, was als grundlegende Strategie für den Quantifizierungshandel dienen kann. Es ist jedoch erforderlich, die Parameter weiter zu optimieren, das Risiko zu kontrollieren und andere Faktoren zu kombinieren, um eine stabilere Handelswirkung zu erzielen.
/*backtest
start: 2023-11-07 00:00:00
end: 2023-11-10 05: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/
// © veryfid
//@version=5
strategy("Stratégie ZLSMA Bruno", shorttitle="Stratégie ZLSMA Bruno", overlay=false)
source = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
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 ? period : resCustom
fastLength = input(12),
slowLength=input(26)
signalLength=input(9)
fastMA = ta.ema(source, fastLength)
slowMA = ta.ema(source, slowLength)
macd = fastMA - slowMA
signal = ta.sma(macd, signalLength)
hist = macd - signal
outMacD = macd
outSignal = signal
outHist = 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 ? color.lime : color.red : color.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 ta.cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=plot.style_circles, linewidth=4, color=macd_color)
hline(0, '0 Line', linestyle=hline.style_solid, linewidth=2, color=color.white)
// Paramètres de la ZLSMA
length = input(32, title="Longueur")
offset = input(0, title="Décalage")
src = input(close, title="Source")
lsma = ta.linreg(src, length, offset)
lsma2 = ta.linreg(lsma, length, offset)
eq = lsma - lsma2
zlsma = lsma + eq
length_slow = input(400, title="Longueur")
offset_slow = input(0, title="Décalage")
lsma_slow = ta.linreg(src, length_slow, offset_slow)
lsma2_slow = ta.linreg(lsma_slow, length_slow, offset_slow)
eq_slow = lsma_slow - lsma2_slow
zlsma_slow = lsma_slow + eq_slow
// Paramètres de la sensibilité
sensitivity = input(0.5, title="Sensibilité")
// Règles de trading
longCondition = zlsma < zlsma_slow and zlsma_slow < zlsma_slow[1] and zlsma > zlsma[1] and ta.cross(outMacD, outSignal) and macd_color == color.lime//ta.crossover(zlsma, close) and ta.crossover(zlsma, zlsma[1]) // Croisement vers le haut
shortCondition = zlsma > zlsma_slow and zlsma_slow > zlsma_slow[1] and zlsma < zlsma[1] and ta.cross(outMacD, outSignal) and macd_color == color.lime //ta.crossunder(zlsma, close) and ta.crossunder(zlsma, zlsma[1]) // Croisement vers le bas
// Entrée en position
strategy.entry("Achat", strategy.long, when=longCondition)
strategy.entry("Vente", strategy.short, when=shortCondition)
botifySignalZLSMA = longCondition ? 1 : shortCondition ? -1 : 0
plot(botifySignalZLSMA, title='Botify_signal', display=display.none)
// Sortie de position
strategy.close("Achat", when=ta.crossunder(zlsma, close)) // Close the "Achat" position
strategy.close("Vente", when=ta.crossover(zlsma, close)) // Close the "Vente" position
// Tracé de la courbe ZLSMA
plot(zlsma, color=color.yellow, linewidth=3)
plot(zlsma_slow, color=color.red, linewidth=3)