Strategie zur Übertragung von Doppel- und Dreifach-exponentiellen gleitenden Durchschnitten

Schriftsteller:ChaoZhang, Datum: 2024-01-03 16:47:08
Tags:

img

I. Überblick über die Strategie

Diese Strategie wird Dual und Triple Exponential Moving Average Crossover Strategy genannt. Sie kombiniert die Crossover-Signale des Dual Exponential Moving Average (DEMA) und des Triple Exponential Moving Average (TEMA) zur Bestimmung von Ein- und Ausgängen.

II. Strategische Logik

Diese Strategie verwendet hauptsächlich die Verknüpfung von doppelt exponentiellen gleitenden Durchschnitten (DEMA) und dreifachen exponentiellen gleitenden Durchschnitten (TEMA) zur Erzeugung von Handelssignalen.

Die Formel für DEMA lautet:

DEMA = 2*EMA1 - EMA2

Hierbei handelt es sich bei EMA1 und EMA2 um exponentielle gleitende Durchschnitte mit Periode N. DEMA kombiniert die Glattigkeit von EMA und Reaktionsfähigkeit.

Die Formel für TEMA lautet:

TEMA = 3*(EMA1 - EMA2) + EMA3

Hierbei handelt es sich bei EMA1, EMA2 und EMA3 um exponentielle gleitende Durchschnitte mit Periode N. TEMA filtert durch dreifache Glättung gefälschte Ausbrüche aus.

Wenn DEMA über TEMA überschreitet, wird ein Kaufsignal erzeugt. Wenn DEMA unter TEMA überschreitet, wird ein Verkaufssignal erzeugt. Gemäß dem Crossover-Prinzip kann es die Zyklusumwandlung rechtzeitig erfassen.

III. Vorteile

  1. Sowohl DEMA als auch TEMA optimieren EMA und verbessern die Genauigkeit des Handels.
  2. DEMA schlichtet Preisänderungen aus, TEMA filtert Fakeouts aus, bildet Synergien und verbessert die Gewinnrate.
  3. Durch die Kombination von schneller DEMA und langsamer TEMA sind Crossover-Signale zuverlässiger.
  4. Zeitgemäße Erfassung der Zyklusumwandlung auf der Grundlage des Crossover-Prinzips.

IV. Risiken und Lösungen

  1. Häufige Überschneidungen unter Volatilität verursachen falsche Signale.
  2. Eine unangemessene Einstellung beeinträchtigt die Signalqualität.
  3. Mangelnde grundlegende Validierung; andere Indikatoren oder Modelle können helfen.

V. Optimierung

  1. Testen und optimieren Sie die Parameter von DEMA und TEMA, um die beste Kombination zu finden.
  2. Hinzufügen anderer technischer Indikatoren für die Filterung, z. B. KDJ für den Trend.
  3. Fügen Sie Maschinelles Lernen hinzu, um Signale zu validieren und falsche Signale zu reduzieren.
  4. Überprüfen Sie das Handelsvolumen oder die Stimmung, um ein echtes oder gefälschtes Crossover zu beurteilen.

VI. Zusammenfassung

Diese Strategie erzeugt Handelssignale aus dem DEMA- und TEMA-Crossover und kombiniert die Reaktionsfähigkeit von DEMA und die Filterfähigkeit von TEMA, um die Genauigkeit zu verbessern.


/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DEMA-TEMA Cross Strategy", shorttitle="DEMA-TEMA Cross", overlay=true)

// Input options for Double EMA (DEMA)
dema_length = input.int(10, title="DEMA Length", minval=1)
dema_src = input(close, title="DEMA Source")

// Calculate Double EMA (DEMA)
dema_e1 = ta.ema(dema_src, dema_length)
dema_e2 = ta.ema(dema_e1, dema_length)
dema = 2 * dema_e1 - dema_e2

// Input options for Triple EMA (TEMA)
tema_length = input.int(8, title="TEMA Length", minval=1)
tema_src = input(close, title="TEMA Source")

// Calculate Triple EMA (TEMA)
tema_ema1 = ta.ema(tema_src, tema_length)
tema_ema2 = ta.ema(tema_ema1, tema_length)
tema_ema3 = ta.ema(tema_ema2, tema_length)
tema = 3 * (tema_ema1 - tema_ema2) + tema_ema3

// Crossover signals for long (small green arrow below candle)
crossover_long = ta.crossover(dema, tema)

// Crossunder signals for short (small red arrow above candle)
crossunder_short = ta.crossunder(dema, tema)

plotshape(crossunder_short ? 1 : na, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(crossover_long ? -1 : na, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

plot(dema, "DEMA", color=color.green)
plot(tema, "TEMA", color=color.blue)

if (crossover_long)
    strategy.entry("Long", strategy.long)

if (crossunder_short)
    strategy.entry("Short", strategy.short)


Mehr