
Die Strategie sendet ein Handelssignal aus, indem sie zwei unterschiedliche Perioden von Moving Averages berechnet und ihre Kreuzungspunkte zeichnet. Wenn Sie den langfristigen Moving Average über den kurzfristigen Moving Average bewegen, machen Sie mehr; wenn Sie den langfristigen Moving Average unter dem kurzfristigen Moving Average bewegen, machen Sie weniger.
Die Strategie basiert auf den Vorteilen des Moving Averages, die die Zufälligkeit in der Preisreihenfolge entfernen und die wichtigsten Trends herausziehen. Die Strategie verwendet die 7-Tage- und die 20-Tage-Linie, um ein doppeltes Moving Average-System zu erstellen, die häufiger verwendet werden und eindeutiger sind.
Wenn der kurzfristige Moving Average über den langfristigen Moving Average fällt, bedeutet dies, dass der Preis in eine steigende Tendenz eintritt. Wenn der kurzfristige Moving Average unter dem langfristigen Moving Average fällt, bedeutet dies, dass der Preis in eine absteigende Tendenz eintritt. Nach diesem Prinzip kaufen wir zu viel oder verkaufen wir zu wenig.
Konkret wird die Strategie durch die Berechnung eines 7-Tage-Simple Moving Average und eines 20-Tage-Simple Moving Average ermittelt, um eine Trendwende zu ermitteln und ein Handelssignal zu senden, wenn sich die beiden Durchschnitte kreuzen. Um die Kreuzungstypen zu unterscheiden, definieren Sie die kurzfristige Linie als höher als die langfristige Linie als einen Preisanstieg und umgekehrt als einen Preisrückgang.
(1) Die Strategie ist klar und einfach, leicht zu verstehen und umzusetzen.
(2) Der Moving Average als ein Trend-Tracking-Indikator filtert die teilweise Geräusche, die in den Preisen enthalten sind, und die Verwendung eines Dual Moving Average-Systems verbessert die Stabilität weiter.
(3) Die Parameterkonfiguration ist flexibel und kann mit einer Kombination von Parametern, die in verschiedenen Marktumgebungen angepasst werden können, angepasst werden, um den Handelsanforderungen gerecht zu werden.
(4) Die Verwendung von zwei häufig verwendeten Moving-Average-Perioden erleichtert die Bestimmung eines eindeutigen Handelssignals.
(5) Die visuelle Hilfsanalyse ist relativ robust, um Trends, wichtige Punkte usw. durch visuelle Effekte intuitiv zu beurteilen.
(6) Nach der Strategie-Retestung können die Parameter entsprechend der Optimierung der Ergebnisse angepasst werden, um die Strategie-Rendite zu erhöhen.
(1) Die binäre Moving-Average-Strategie ist sehr empfindlich auf Marktbewegungen und kann häufig zu Handelsverlusten führen.
(2) Die Abhängigkeit von einer linearen Kreuzung allein kann nicht immer den Trendwendepunkt genau bestimmen und kann zu falschen Signalen führen.
(3) Die Regeln sind eher starr, und wenn unvorhergesehene Ereignisse die Märkte beeinflussen, kann es zu großen Verlusten kommen, wenn die Strategie nicht angepasst werden kann.
(4) Fehlende Parameter können zu falschen Signalen oder verpassten Handelsmöglichkeiten führen und müssen sorgfältig getestet und optimiert werden.
Um diese Risiken abzumildern, kann die Parameterpalette entsprechend angepasst werden. Die Hinzufügung anderer Indikatoren kann unterstützt werden. Die Stop-Loss-Strategie kann eingerichtet werden, um die Verluste zu kontrollieren. Die Parameter oder die Schließstrategie können an die Marktbedingungen angepasst werden.
(1) In Kombination mit anderen technischen Indikatoren kann eine Kombinationsstrategie entwickelt werden, die die Genauigkeit der Signale verbessert. Zum Beispiel kann die Einbeziehung eines Transaktionsindikators, der die Transaktionsverstärkung bei der Kreuzung des Moving Averages bestimmt, die Eintrittschancen erhöhen.
(2) Ein Stop-Loss-Strategie, die die Einzelschäden wirksam kontrolliert. Zum Beispiel, wenn der Preis eine bestimmte Grenze des Moving Averages überschreitet, tritt die aktuelle Head-Position aus.
(3) Testen von Periodensatzkombinationen zur Optimierung von Moving Averages. Versuchen Sie mit verschiedenen schnellen und langsamen Periodensätzen, um die optimale Kombination zu finden. Außerdem können Sie andere Moving Average-Indikatoren testen, z. B. Indikatorische Moving Averages, Gewichtete Moving Averages usw.
(4) Parameter für verschiedene Sorten und Marktumgebungen optimieren. Bei sehr schwankenden Sorten kann der Moving Average-Zyklus verkürzt und die Handelsfrequenz verringert werden. Bei stark tendenziellen Marktumgebungen kann die Zeitspanne zwischen den beiden Mittelwerten vergrößert werden.
Die Moving-Average-Doppel-Cross-Strategie ist insgesamt eine sehr typische und grundlegende Trend-Tracking-Strategie. Sie erzeugt Handelssignale, wenn die kurzfristige Moving-Average über oder unter dem langfristigen Moving-Average liegt. Diese einfache Handelsideologie ist einfach zu implementieren, die Parameter sind flexibel und ist eine Einstiegsstrategie für den Quantifizierungshandel.
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Ma stratégie", overlay=true)
// Multi-timeframe and price input
pricetype = input(close, title="Price Source For The Moving Averages")
useCurrentRes = input(true, title="Use Current Timeframe As Resolution?")
resCustom = input(title="Use Different Timeframe? Then Uncheck The Box Above", defval="W")
res = useCurrentRes ? timeframe.period : resCustom
price = request.security(syminfo.tickerid, res, pricetype)
// MA period input
shortperiod = input(7, title="Short Period Moving Average")
longperiod = input(20, title="Long Period Moving Average")
short = ema(price, shortperiod)
long = ema(price, longperiod)
// MA trend direction color
shortcolor = short > short[1] ? lime : short < short[1] ? red : blue
longcolor = long > long[1] ? lime : long < long[1] ? red : blue
// MA output
MA1 = plot(short, title="Short Period Moving Average", style=linebr, linewidth=2, color=shortcolor)
MA2 = plot(long, title="Long Period Moving Average", style=linebr, linewidth=4, color=longcolor)
fill(MA1, MA2, color=silver, transp=50)
// MA trend bar color
TrendingUp() => short > long
TrendingDown() => short < long
barcolor(TrendingUp() ? green : TrendingDown() ? red : blue)
// MA cross alert
MAcrossing = cross(short, long) ? short : na
plot(MAcrossing, style = cross, linewidth = 4,color=black)
// MA cross background color alert
Uptrend() => TrendingUp() and TrendingDown()[1]
Downtrend() => TrendingDown() and TrendingUp()[1]
bgcolor(Uptrend() ? green : Downtrend() ? red : na,transp=50)
// Buy and sell alert
Buy = Uptrend() and close > close[1]
Sell = Downtrend() and close < close[1]
plotshape(Buy, color=black, style=shape.arrowup, text="Buy", location=location.bottom)
plotshape(Sell, color=black, style=shape.arrowdown, text="Sell", location=location.top)
if (Buy)
strategy.entry("My Long Entry Id", strategy.long)
if (Sell)
strategy.entry("My Short Entry Id", strategy.short)