Strategie für die Verlagerung des gleitenden Durchschnitts

Schriftsteller:ChaoZhang, Datum: 2023-12-08 12:20:42 Uhr
Tags:

img

Übersicht

Die Strategie erzeugt Handelssignale, indem zwei gleitende Durchschnitte verschiedener Perioden berechnet und ihre Überschreitungspunkte dargestellt werden.

Strategie Logik

Die Strategie basiert auf dem Vorteil der gleitenden Durchschnitte - sie eliminieren die Zufälligkeit in den Kurssequenzen und extrahieren den Haupttrend.

Wenn der kurzfristige gleitende Durchschnitt über den längerfristigen gleitenden Durchschnitt geht, signalisiert er, dass die Preise in einen Aufwärtstrend treten. Wenn er darunter geht, signalisiert er, dass die Preise in einen Abwärtstrend treten. Nach dieser Logik gehen wir long oder short.

Insbesondere berechnet die Strategie den 7-tägigen einfachen gleitenden Durchschnitt (SMA) und den 20-tägigen einfachen gleitenden Durchschnitt. Wenn sich die beiden Durchschnitte kreuzen, beurteilt sie eine Trendumkehrung und löst ein Handelssignal aus. Um zwischen Crossover-Typen zu unterscheiden, definieren wir die kurzfristige Linie, die über der langfristigen Linie liegt, als Aufwärtstrend und umgekehrt als Abwärtstrend. Wenn die kurzfristige Linie über die langfristige Linie kreuzt, d.h. der Beginn eines Aufwärtstrends, wird eine Long-Position eingegeben. Wenn die kurzfristige Linie unten kreuzt, d.h. der Beginn eines Abwärtstrends, wird eine Short-Position eingegeben.

Analyse der Vorteile

(1) Die Strategielogik ist einfach und leicht zu verstehen und umzusetzen.

(2) Die Verwendung von gleitenden Durchschnitten als Trendverfolgungsindikatoren kann ein gewisses Rauschen in den Preisen wirksam ausfiltern.

(3) Flexible Parameterkonfigurationen, um unterschiedlichen Marktbedingungen und Handelsanforderungen gerecht zu werden.

(4) Die Verwendung von zwei häufig verwendeten gleitenden Durchschnittsperioden erleichtert die Bestimmung klarer Handelssignale.

(5) Leistungsfähige Visualisierung für intuitive Trend- und Schlüsselstandsdaten usw.

(6) Die Parameter können durch Backtesting optimiert werden, um die Strategierendite zu verbessern.

Risikoanalyse

(1) Die Strategie ist sehr anfällig für Marktschwankungen, die zu häufigen Verlusten in unterschiedlichen Zeiträumen führen können.

(2) Crossovers können die Trendumkehrniveaus möglicherweise nicht genau bestimmen und falsche Signale auslösen.

(3) Strenge Regeln können sich nicht an drastische Ereignisse anpassen, die die Märkte beeinflussen, was möglicherweise zu enormen Verlusten führen kann.

(4) Falsche Parameter können auch zu ungenauen Signalen und verpassten Trades führen.

Um diese Risiken zu mindern, können Parameter entsprechend angepasst werden. Andere Indikatoren können zur Bestätigung hinzugefügt werden. Stop-Loss-Strategien können Verluste kontrollieren. Parameter oder Strategien können je nach Marktregime angepasst werden.

Anweisungen zur Verbesserung

(1) Die Einbeziehung anderer technischer Indikatoren in eine kombinierte Strategie könnte die Signalgenauigkeit erhöhen.

(2) Hinzufügen von Stop-Loss-Strategien zur effektiven Kontrolle einzelner Handelsverluste, z. B. Ausstieg aus Positionen, wenn die Preise die gleitenden Durchschnitte um einen bestimmten Schwellenwert überschreiten.

(3) Test und Optimierung von gleitenden Durchschnittsperioden. Versuche verschiedene schnelle und langsame Kombinationen, um die besten Parameter zu finden. Andere gleitende Durchschnitte wie EMA, WMA können ebenfalls getestet werden.

(4) Anpassung der Parameter anhand verschiedener Produkte und Marktbedingungen: Unter Verwendung kürzerer gleitender Durchschnitte und kleinerer Querschnittsdifferenz für volatilere Produkte.

Schlussfolgerung

Die gleitende Durchschnitts-Crossover-Strategie ist eine sehr typische und grundlegende Trendfolgestrategie. Durch die Berechnung von zwei gleitenden Durchschnitten verschiedener Perioden und die Beobachtung ihrer Crossovers wird der Preistrend beurteilt. Handelssignale werden erzeugt, wenn der kürzere Zeitraum den gleitenden Durchschnitt über oder unter den längeren kreuzt. Diese einfache Logik ist einfach umzusetzen und flexibel anzupassen, was sie zu einer einführenden Quantitativstrategie macht. Aber sie hat auch Mängel wie Empfindlichkeit gegenüber Marktschwankungen und mögliche ungenaue Signale. Durch die Kombination mit anderen Indikatoren, das Hinzufügen von Stops und Parameteroptimierung kann die Strategie zu einer sehr praktischen für den quantitativen Handel verbessert werden.


/*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)

Mehr