Strategie zur Nachverfolgung der Trendentwicklung des doppelten gleitenden Durchschnitts

Schriftsteller:ChaoZhang, Datum: 23.09.2023
Tags:

Übersicht

Diese Strategie nutzt das Dual Moving Average Crossover Prinzip in Kombination mit einem Trend-Tracking-Indikator, um Trends zu bestimmen und zu verfolgen. Die Hauptidee besteht darin, lang zu gehen, wenn der kurzfristige gleitende Durchschnitt über den langfristigen gleitenden Durchschnitt überschreitet und kurz zu gehen, wenn der kurzfristige gleitende Durchschnitt unter den langfristigen gleitenden Durchschnitt überschreitet. Die allgemeine Trendrichtung wird auch durch den 100-Tage-gleitenden Durchschnitt bestimmt, um falsche Ausbrüche zu vermeiden.

Strategie Logik

Die Strategie besteht hauptsächlich aus einem doppelten System für das Crossover von gleitenden Durchschnitten und einem Trendverfolgungssystem.

Das doppelte gleitende Durchschnitts-Crossover-System enthält einen schnellen EMA1 und einen langsamen EMA2. Die Standardzeiten sind 10 Tage für EMA1 und 20 Tage für EMA2. Ein Kaufsignal wird erzeugt, wenn EMA1 über EMA2 überschreitet. Ein Verkaufssignal wird erzeugt, wenn EMA1 unter EMA2 überschreitet.

Die 100-Tage-EMA (EMA100) wird hinzugefügt, um die allgemeine Trendrichtung zu bestimmen. Kaufsignale werden nur generiert, wenn der Preis in einem Aufwärtstrend ist (Preis liegt über der 100-Tage-EMA). Verkaufssignale werden nur generiert, wenn der Preis in einem Abwärtstrend ist (Preis liegt unter der 100-Tage-EMA). Dies filtert die meisten falschen Ausbruchssituationen aus.

Auf den Kerzen sind auch Kauf- und Verkaufspfeile abgebildet, um die Handelssignale visuell anzuzeigen.

Das Trend-Tracking-System verwendet Intraday- und Zyklus-Tagelinien, um die Trendrichtung erneut zu bestätigen.

Handelssignale werden nur erzeugt, wenn sich die Intraday- und Zyklusurteile einig sind.

Analyse der Vorteile

Der größte Vorteil dieser Strategie besteht in der Integration von Trend- und gleitenden Durchschnitts-Crossover-Systemen, die falsche Signale effektiv filtern und die Abzüge auf einem akzeptablen Niveau halten.

Die Vorteile des Dual Moving Average Crossover Systems sind insbesondere folgende:

  1. Einfache Logik und leicht verständlich, geeignet für Anfänger.

  2. Der Trend folgt, vermeidet gegen den Trend zu handeln.

  3. Anpassungsfähige schnelle und langsame EMA-Perioden, an unterschiedliche Zyklen angepasst.

  4. Starke Rentabilität in den wichtigsten Trends.

Das Hinzufügen der EMA100 hat folgende Vorteile:

  1. Vermeidung des Handels gegen den Trend, Verringerung der Verluste.

  2. Der Entwicklung folgen und den Abbau kontrolliert halten.

Das Trendverfolgungssystem hat folgende Vorteile:

  1. Mehrfache Zeitrahmenanalyse, um Lärm aus einem einzigen Zeitraum zu vermeiden.

  2. Gewährleistung der Übereinstimmung mit der wichtigsten Trendrichtung, Verringerung der Rücknahmen.

  3. Heikin-Ashi dämpft Geräusche und erfasst nur Trends.

Risikoanalyse

Einige Risiken für diese Strategie:

  1. Häufige Crossovers und zusätzliche Handelskosten bei längeren Konsolidierungen.

  2. Verzögerte Signale, fehlende frühe Trendphasen.

  3. Schwere Verluste, wenn sich der große Trend umkehrt.

  4. Die Leistung hängt von der Optimierung der Parameter ab.

Lösungen:

  1. Verringern Sie die Handelsfrequenz während der Konsolidierung.

  2. Verkürzung der EMA-Perioden, um frühere Trendsignale zu erhalten.

  3. Verwenden Sie Stop-Loss, um Einzelverlust zu kontrollieren.

  4. Optimierung der Parameter für verschiedene Produkte und Marktbedingungen.

Optimierungsrichtlinien

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Test mehr Kombinationen, um optimale Perioden zu finden.

  2. Hinzufügen von mehr Zeitrahmen, z. B. monatliche oder vierteljährliche Zahlen.

  3. Einbeziehen Sie Stop-Loss-Mechanismen wie bewegte oder exponentielle Stopps.

  4. Kombination mit Volumenindikatoren wie "On Balance Volume".

  5. Verbessern Sie den Eintrittszeitplan mit schnelleren Oszillatoren wie dem MACD.

  6. Parameteroptimierung für mehr Produkte und Vermögenswerte.

Schlussfolgerung

Diese Strategie kombiniert die Stärken von doppelten gleitenden Durchschnitts-Crossover- und Trend-Tracking-Systemen und vermeidet die Schwächen einzelner Systeme. Mehrere Zeitrahmenanalysen gewährleisten eine korrekte Handelsrichtung, während die Ziehungskontrolle ausgezeichnet ist. Weitere Optimierungen können es für den praktischen Einsatz an mehr Marktumgebungen anpassen.


/*backtest
start: 2023-09-20 00:00:00
end: 2023-09-27 00:00:00
period: 1h
basePeriod: 15m
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/
// © askkuldeeprandhawa

//@version=4

strategy("KSR Strategy", overlay=true)



par1=input(10)
par2=input(20)
ema1=ema(close,par1)
ema2=ema(close,par2)
buy=ema1>ema2
sell=ema2<ema1
mycolor= iff(buy,color.green,iff(sell,color.blue,color.red))
barcolor(color=mycolor)



ema100=ema(close,100)
ibuy=crossover(ema1,ema2)
iSell=crossunder(ema1,ema2)

varp=tostring(close[1])
plotshape(ibuy, "Up Arrow", shape.triangleup, location.belowbar, color.green, 0, 0,"Buy" , color.green, true, size.tiny)
plotshape(iSell, "Down Arrow", shape.triangledown, location.abovebar, color.red, 0, 0, "Sell", color.red, true, size.tiny)

crossed =crossover(ema(close,par1), ema(close,par2))
// if crossed
//     l = label.new(bar_index, na, tostring(close), 
//          color=color.green, 
//          textcolor=color.white,
//          style=label.style_labelup, yloc=yloc.belowbar)
         
crossed2 =crossunder(ema(close,par1), ema(close,par2))
// if crossed2
//     l = label.new(bar_index, na, tostring(close), 
//          color=color.red, 
//          textcolor=color.white,
//          style=label.style_labeldown, yloc=yloc.abovebar)
         
plot(ema(close,par1),"EMA Short",color=color.white)
plot(ema(close,par2),"EMA Long",color=color.orange)


longCondition = crossover(ema(close, par1), ema(close, par2))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(ema(close, par1), ema(close, par2))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)




ma1_len = input(title="MA1", type=input.integer, defval=8, minval=1, maxval=100, step=1)
ma2_len = input(title="MA2", type=input.integer, defval=12, minval=1, maxval=100, step=1)

o = ema(open, ma1_len)
c = ema(close, ma1_len)
h = ema(high, ma1_len)
l = ema(low, ma1_len)

tim1=input('D',"Short Time")
tim2=input('W',"Long Time")

ema_p=input(title="EMA Period", type=input.integer, defval=16, minval=1, maxval=100, step=1)
refma = ema(close, ema_p)
plot(refma, title="EMA" , linewidth=1, color=close < refma ? color.orange : color.blue)
ha_t = heikinashi(syminfo.tickerid)
ha_o = security(ha_t, tim2, o)
ha_c = security(ha_t, tim2, c)
ha_h = security(ha_t, tim2, h)
ha_l = security(ha_t, tim2, l)
o2 = ema(ha_o, ma2_len)
c2 = ema(ha_c, ma2_len)
h2 = ema(ha_h, ma2_len)
l2 = ema(ha_l, ma2_len)
ha_col = ha_c > ha_o ? color.red : color.green
plotshape(true, style=shape.circle, color=ha_c > ha_o ? color.green : color.red, location=location.bottom)


ha_t1 = heikinashi(syminfo.tickerid)
ha_o1 = security(ha_t1, tim1, o)
ha_c1 = security(ha_t1, tim1, c)
ha_h1 = security(ha_t1, tim1, h)
ha_l1 = security(ha_t1, tim1, l)
o3 = ema(ha_o1, ma2_len)
c3 = ema(ha_c1, ma2_len)
h3 = ema(ha_h1, ma2_len)
l3 = ema(ha_l1, ma2_len)
ha_col1 = ha_c1 > ha_o1 ? color.red : color.green
plotshape(true, style=shape.circle, color=ha_c1 > ha_o1 ? color.green : color.red, location=location.top)







Mehr