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.
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.
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.
Die wichtigsten Risiken dieser Strategie sind:
Die Risiken können durch Optimierung der Parameter, Hinzufügung von Filterbedingungen usw. weiter verbessert und kontrolliert werden.
Die Strategie kann aus folgenden Gesichtspunkten optimiert werden:
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 ')