Doppel-exponentielle Kreuzung der gleitenden Durchschnitte

Schriftsteller:ChaoZhang, Datum: 2023-11-23 17:34:06
Tags:

img

Übersicht

Die Dual Exponential Moving Average Crossover Strategie ist eine typische Trendfolgestrategie. Sie verwendet das goldene Kreuz und das tote Kreuz von Double Exponential Moving Averages (DEMA) mit verschiedenen Parametern, um Markttrends zu bestimmen und entsprechende Long- und Short-Positionen zu machen.

Strategie Logik

Die Strategie verwendet 3 DEMA gleichzeitig mit verschiedenen Parametern: DEMA ((8), DEMA ((20) und DEMA ((63).

  • DEMA (8) reagiert am schnellsten auf kurzfristige Trends;

  • DEMA ((20) bewegt sich etwas langsamer, um mittelfristige Trends zu identifizieren;

  • DEMA(63) reagiert am langsamsten, um die langfristige Trendrichtung zu beurteilen.

Wenn die schnelle Linie DEMA ((8) über die mittlere Linie DEMA ((20) und die langsame Linie DEMA ((63) kreuzt, bedeutet dies, dass sich der Markt von unten nach oben dreht, eine Long-Position sollte getätigt werden.

Analyse der Vorteile

Im Vergleich zu einem einzigen gleitenden Durchschnitt ist der doppelte exponentielle gleitende Durchschnitt empfindlicher auf Preisänderungen und kann Trendwendepunkte früher erkennen.

Die Kombination von DEM-Linien mit mehreren Zeitrahmen verbessert die Qualität der Handelssignale und verhindert falsche Ausbrüche. Gleichzeitig erzeugt die Strategie Signale nur, wenn sich die drei Linien kreuzen, wodurch eine übermäßige Handelsfrequenz vermieden wird.

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

  1. Weniger Kreuzsignale der drei Linien können einige Handelsmöglichkeiten verpassen.
  2. Bei starken Marktschwankungen reagieren Verzögerungslinien in DEM möglicherweise nicht rechtzeitig auf Preisänderungen.
  3. Sie kann mit riesigen Märkten, die nicht im Trend sind, nicht effektiv umgehen.

Die Risiken können durch Optimierung der Parameter, Hinzufügung von Filterbedingungen usw. weiter verbessert und kontrolliert werden.

Optimierungsrichtlinien

Die Strategie kann aus folgenden Gesichtspunkten optimiert werden:

  1. Optimierung der gleitenden Durchschnittsparameter, um sie besser auf die verschiedenen Merkmale des Marktes anzupassen.
  2. Fügen Sie Filter wie Lautstärke, Volatilität hinzu, um falsche Signale zu vermeiden.
  3. Kombinieren Sie andere Indikatoren wie MACD, KDJ, um falsche Signale zu filtern.
  4. Hinzufügen einer Stop-Loss-Strategie, um Einzelverluste zu kontrollieren.
  5. Optimieren Sie das Positionsmanagement, damit die Gewinnquote höher ist als die Verlustquote.

Zusammenfassung

Die DEMA-Crossover-Strategie hat eine klare Gesamtidee. Durch die Kombination von DEMAs mit mehreren Zeitrahmen kann sie die Markttrendrichtung effektiv bestimmen und ist eine typische Trendfolgestrategie. Die Strategie kann durch Parameteroptimierung, Hinzufügen von Filtern, Stop-Loss-Management usw. entsprechend den tatsächlichen Bedürfnissen verbessert werden, um bessere Strategiergebnisse zu erzielen.


/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 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/
// © Noldo

//@version=4
//Quoted by Author HighProfit

//Lead-In
strategy("Double Exponential Moving Average 8-20-63 Strategy", 
         shorttitle="DEMA-8-20-63", 
         overlay=true,
         max_bars_back = 5000,
         initial_capital=100000, 
         max_bars_back = 5000,
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100, 
         commission_type=strategy.commission.percent, 
         commission_value=0.1,
         pyramiding = 0)

short = input(8, minval=1)
srcShort = input(ohlc4, title="Source Dema 1")

long = input(20, minval=1)
srcLong = input(low, title="Source Dema 2")

long2 = input(63, minval=1)
srcLong2 = input(close, title="Source Dema 3")
e1 = ema(srcShort, short)
e2 = ema(e1, short)
dema1 = 2 * e1 - e2
plot(dema1, color=color.green, linewidth=2)

e3 = ema(srcLong, long)
e4 = ema(e3, long)
dema2 = 2 * e3 - e4
plot(dema2, color=color.blue, linewidth=2)

e5 = ema(srcLong2, long2)
e6 = ema(e5, long2)
dema3 = 2 * e5 - e6
plot(dema3, color=color.black, linewidth=2)

longC  = dema1 > dema2 and dema1 > dema3
shortC = dema1 < dema2 and dema1 < dema3 

alertlong  = longC and  not longC[1]
alertshort = shortC and not shortC[1]


strategy.entry("Long" , strategy.long , when = longC ,comment="Long")
strategy.entry("Short", strategy.short, when = shortC,comment="Short")

// Alerts 

alertcondition(longC  , title='Long' , message=' Buy  Signal ')
alertcondition(shortC , title='Short', message=' Sell Signal ')



Mehr