Mehrfache Trendverfolgungsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-17 17:19:37
Tags:

img

Übersicht

Die Multiple Trend Tracking-Strategie nutzt MACD, RSI, ATR und DEMA umfassend, um die langfristigen und kurzfristigen Trends von Aktien zu identifizieren und den Trend-Tracking-Handel durchzuführen.

Strategie Logik

MACD-Handelsstrategie

MACD steht für Moving Average Convergence Divergence, ein Trend-Folgende Indikator. Der MACD besteht aus einer schnellen gleitenden Durchschnittslinie und einer langsamen gleitenden Durchschnittslinie, wobei üblicherweise die Parameter von 12-Tage-EMA für schnelle Linie, 26-Tage-EMA für langsame Linie und Signallinie als 9-Tage-EMA des MACD verwendet werden. Wenn der MACD über die Signallinie geht, ist es ein Kaufsignal, und wenn er darunter geht, ist es ein Verkaufssignal. Diese Strategie verwendet MACD golden cross und dead cross, um die Trendrichtung zu bestimmen.

RSI Überkaufte Überverkaufte Strategie

RSI steht für Relative Strength Index, der den Überkauf- und Überverkaufstatus einer Aktie widerspiegelt.

Analyse der Vorteile

Diese Strategie nutzt umfassend MACD, RSI, ATR und DEMA vier Indikatoren, wobei sowohl Trendverfolgung als auch Breakout-Handel berücksichtigt werden, die bessere Einstiegspunkte innerhalb des Trends finden können.

  1. Der MACD kann die Richtung und die Wendepunkte der mittelfristigen und langfristigen Kursentwicklung effektiv ermitteln.

  2. Der RSI kann beurteilen, ob eine Aktie kurzfristig überkauft oder überverkauft ist, um zu vermeiden, Höchststände zu jagen und Tiefstände an Trendumkehrpunkten zu verkaufen.

  3. ATR passt die Stop-Loss-Position dynamisch an, um einen einzelnen Verlust effektiv zu kontrollieren.

  4. Die DEMA dient als Hilfsindikator, um Geräusche zu filtern.

  5. Die Kombination mehrerer Indikatoren kann die Zuverlässigkeit der Handelssignale verbessern.

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Bei Kombination mehrerer Indikatoren kann es zu Abweichungen kommen, die zu falschen Handelssignalen führen.

  2. Der ATR als dynamischer Stop-Loss-Indikator ist anfällig für große Schwankungen, die zu Verlusten führen.

  3. DEMA als Trendfilter kann einige stärkere kurzfristige Handelsmöglichkeiten filtern.

  4. Unzulängliche Strategieparameter können zu häufigem Handel, steigenden Transaktionskosten und Schlupfverlusten führen.

Um Risiken zu kontrollieren, können die Indikatorparameter entsprechend angepasst werden. Für die Bestätigung können auch weitere Hilfsbeurteilungsindikatoren eingeführt werden. Die Entwicklung quantitativer Handelsstrategien erfordert eine sorgfältige Analyse historischer Daten, robustes Backtesting und ein umsichtiges Risikomanagement. Ich kann keine spezifischen Maßnahmen empfehlen, aber ich kann vorschlagen, mich auf fundierte Strategieentwicklungsprinzipien zu konzentrieren.

Optimierungsrichtlinien

Die Strategie kann auch in folgenden Aspekten optimiert werden:

  1. Versuche verschiedene Parameterkombinationen, um die optimalen Parameter zu finden.

  2. Sie können auch Stop-Loss-Strategien wie bewegliche Stop-Loss, durchschnittliche Stop-Loss usw. hinzufügen, um Risiken weiter zu kontrollieren.

  3. Einführung von zusätzlichen Beurteilungsindikatoren wie KDJ, Bollinger Bands usw. zur Verbesserung der Signalgenauigkeit.

  4. Optimieren Sie die Eintrittszeitpunkte, indem Sie Ausbruchsstrategien kombinieren, um bessere Einstiegspunkte zu finden.

  5. Unterschiedliche Parameter für Bullen- und Bärenmärkte.

  6. Modelle nach den Merkmalen der Bestände erstellen, um die Anpassungsfähigkeit zu verbessern.

Zusammenfassung

Die Multiple Trend-Tracking-Strategie integriert MACD, RSI, ATR und DEMA vier Indikatoren und erreicht eine organische Kombination aus Trend-Tracking und Trend-Breakout. Im Vergleich zu Einzelindikator-Strategien kann diese Strategie zuverlässigere Handelssignale liefern und bestimmte falsche Signale vermeiden. Durch Parameteroptimierung, Stop-Loss-Strategien, Hilfsurteile usw. kann die Strategieleistung weiter verbessert werden. Diese Strategie eignet sich für quantitative Handel, die höhere Trendwechselfähigkeiten erfordert, und ist eine vielversprechende Strategieidee, die langfristige Nachverfolgung und Optimierung wert ist.


/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
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/
// © prim722

// © OTS Music

//@version=4
strategy("Atrend by OTS", overlay=true)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
if (crossover(delta, 0))
	strategy.entry("MACD buy", strategy.long, comment="MACD buy")
if (crossunder(delta, 0))
	strategy.entry("MACD sell", strategy.short, comment="MACD sell")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
length = input( 18 )
overSold = input( 30 )
overBought = input( 70 )
price = close
vrsi = rsi(price, length)
co = crossover(vrsi, overSold)
cu = crossunder(vrsi, overBought)
if (not na(vrsi))
	if (co)
		strategy.entry("RSI buy", strategy.long, comment="RSI buy")
	if (cu)
		strategy.entry("RSI sell", strategy.short, comment="RSI sell")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=false)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_line, linewidth=2, color=color.white)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="", text="", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.white, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_line, linewidth=2, color=color.gray)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="", text="", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.white : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.gray : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
alertcondition(buySignal, title="ATrend Buy", message="ATrend Buy!")
alertcondition(sellSignal, title="ATrend Sell", message="ATrend Sell!")
changeCond = trend != trend[1]
alertcondition(changeCond, title="ATrend Direction Change", message="ATrend has changed direction!")

length1 = input(25, minval=1)
srcb = input(close, title="Source")
e1 = ema(srcb, length1)
e2 = ema(e1, length)
dema = 2 * e1 - e2
plot(dema, "DEMA", color.red)

Mehr