Die Ressourcen sind geladen. Beförderung...

Strategie zur Verfolgung der Trendentwicklung der konvergenten doppelten gleitenden Durchschnitte

Schriftsteller:ChaoZhang, Datum: 2023-12-28 17:24:53
Tags:

img

Übersicht

Die Dual Moving Average Convergence Trend Tracking Strategie berechnet schnelle, langsame und superslow gleitende Durchschnittslinien, kombiniert mit dem MACD-Indikator, um die Kurstrendrichtung zu bestimmen und Trendverfolgungstransaktionen umzusetzen.

Grundsätze

Die Strategie berechnet zunächst den 12-Tage-schnellen gleitenden Durchschnitt, den 26-Tage-langsamen gleitenden Durchschnitt und den 200-Tage-superlangsamen gleitenden Durchschnitt. Wenn der schnelle gleitende Durchschnitt über den langsamen überschreitet, tritt ein goldenes Kreuz auf, was auf einen Bullenmarkt hinweist. Wenn schnelle Kreuzungen unter langsam sind, tritt ein totes Kreuz auf, was auf einen Bärenmarkt hinweist.

Die Strategie verwendet auch den MACD-Indikator, um die Trendrichtung zu bestimmen. Der MACD besteht aus schnellen Linien, langsamen Linien und MACD-Bars. Wenn die schnelle Linie über die langsame Linie geht, ist es ein bullisches Signal und wenn sie darunter geht, ist es bärisch. In Kombination mit dem langfristigen gleitenden Durchschnitt, um falsche Signale zu filtern, wird nur dann, wenn die schnelle Linie die langsame Linie bricht, die MACD-Bar von negativ zu positiv und der Preis steht über der 200-Tage-MA, löst das lange Signal aus. Nur wenn die schnelle Linie die langsame Linie bricht, wird die MACD-Bar von positiv zu negativ und der Preis fällt unter die 200-Tage-MA, löst das kurze Signal aus.

Durch die doppelte Bestätigung durch das gleitende Durchschnittssystem und den MACD-Indikator können falsche Breaks vermieden und ein Beginn des Trends sichergestellt werden.

Vorteile

  1. Die doppelte Bestätigung verhindert falsche Brechungen und sorgt dafür, dass der Trend zu Beginn eingeht.

  2. 200-Tage-MA filtert Fehlgeschäfte während Marktschwankungen.

  3. Stop-Loss wird so eingestellt, dass der maximale Verlust begrenzt wird.

  4. Anpassungsfähige Parameter wie MA-Länge, Stop-Loss-Level usw., um sich an verschiedene Produkte anzupassen.

  5. Einfache und klare Logik, leicht zu verstehen und zu optimieren.

Risiken

  1. Die langfristige Trendverfolgung ist nicht in der Lage, kurzfristige Chancen zu erfassen.

  2. Der Tracking-Effekt hängt von den Parameter-Einstellungen ab.

  3. Eine falsche Einstellung des Stop-Loss kann zu locker oder zu eng sein, was den Verlust vergrößert oder zu frühzeitig stoppt.

  4. Lange Haltezeiten führen zu einem gewissen Kapitaldruck.

Optimierung

  1. Optimieren Sie den Parameter MA-Längen für die beste Parameterkombination.

  2. Hinzufügen anderer Indikatoren wie KDJ für die Hilfsbeurteilung.

  3. Optimieren Sie Stop-Loss-Strategien wie Strength Stops, Trailing Stops usw.

  4. Anpassung der Zulassungsparameter je nach Produkt und Zeitrahmen.

  5. Fügen Sie einen Lautstärkungsfilter hinzu, um falsche Signale zu vermeiden.

Schlussfolgerung

Die Dual MA Convergence Trend Tracking Strategy beurteilt die Trendrichtung durch Berechnung mehrerer MA-Systeme und verwendet MACD-Filter. Ihre Vorteile sind einfache und klare Logik, kontrollierbare Risiken, geeignet für die Trendverfolgung. Sie kann durch Parameteroptimierung, Stop-Loss-Optimierung, Hinzufügen von Hilfsindikatoren usw. verbessert werden.


/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Trend Strategy", shorttitle="TSTrend Strategy", overlay=true)


// Trend Strategy
// If the inverse logic is true, the strategy
// goes short. For the worst case there is a
// max intraday equity loss of 50% filter.


// Input
source = input(close)
fastLength = input(12, minval=1, title="MACD fast moving average")
slowLength=input(26,minval=1, title="MACD slow moving average")
signalLength=input(9,minval=1, title="MACD signal line moving average")
veryslowLength=input(200,minval=1, title="Very slow moving average")
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Moving Averages?")
switch3=input(true, title="Enable Background Color?")

// Calculation
fastMA = sma(source, fastLength)
slowMA = sma(source, slowLength)
veryslowMA = sma(source, veryslowLength)
macd = fastMA - slowMA
signal = sma(macd, signalLength)
hist = macd - signal

// Colors
MAtrendcolor = change(veryslowMA) > 0 ? green : red
trendcolor = fastMA > slowMA and change(veryslowMA) > 0 and close > slowMA ? green : fastMA < slowMA and change(veryslowMA) < 0 and close < slowMA ? red : blue
bartrendcolor = close > fastMA and close > slowMA and close > veryslowMA and change(slowMA) > 0 ? green : close < fastMA and close < slowMA and close < veryslowMA and change(slowMA) < 0 ? red : blue
backgroundcolor = slowMA > veryslowMA and crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA ? green : slowMA < veryslowMA and crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA ? red : na
bgcolor(switch3?backgroundcolor:na,transp=80)
barcolor(switch1?bartrendcolor:na)

// Output
F=plot(switch2?fastMA:na,color=trendcolor)
S=plot(switch2?slowMA:na,color=trendcolor,linewidth=2)
V=plot(switch2?veryslowMA:na,color=MAtrendcolor,linewidth=4)
fill(F,V,color=gray)

// Strategy
buyprice = low
sellprice = high
cancelLong = slowMA < veryslowMA
cancelShort = slowMA > veryslowMA

if (cancelLong)
    strategy.cancel("MACDLE")

if crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA 
    strategy.entry("MACDLE", strategy.long, stop=buyprice, comment="Bullish")

if (cancelShort)
    strategy.cancel("MACDSE")

if crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA 
    strategy.entry("MACDSE", strategy.short, stop=sellprice, comment="Bearish")

// maxIdLossPcnt = input(50, "Max Intraday Loss(%)", type=float)
// strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Mehr