Quantitative Strategie des doppelten exponentiellen gleitenden Durchschnitts-Crossovers


Erstellungsdatum: 2023-09-14 19:51:37 zuletzt geändert: 2023-09-14 19:51:37
Kopie: 0 Klicks: 634
1
konzentrieren Sie sich auf
1617
Anhänger

In diesem Artikel wird eine quantitative Strategie zur Kreuzung eines binären Moving Averages beschrieben. Die Strategie erfolgt durch das Setzen von zwei EMAs, die ein Handelssignal aufgrund ihrer Kreuzung erzeugen.

  1. Strategische Grundlagen

Im Mittelpunkt der Strategie stehen zwei EMAs mit unterschiedlichen Parametern, die schneller oder langsamer ein Kauf- und Verkaufssignal erzeugen, je nach ihrer Kreuzung. Die konkrete Logik lautet:

  1. Setzen Sie eine kleine Periode EMA (wie 29 Perioden), die einen kurzfristigen Trend darstellt;

  2. Setzen Sie eine große EMA (z. B. 86-Zyklen) ein, die einen langfristigen Trend darstellt.

  3. Wenn Sie einen langfristigen EMA auf einer kurzfristigen EMA tragen, tun Sie mehr; Wenn Sie einen langfristigen EMA unter einer kurzfristigen EMA tragen, machen Sie nichts.

  4. Derzeit ist die Strategie nur mit der Logik der Positioneröffnung ausgestattet, keine Stop-Loss-Stopp-Logik.

  5. Die Position wird mit festen Anteilen eröffnet.

Durch die schnelle EMA, die auf kurzfristige Veränderungen reagiert, und die langsame EMA, die langfristige Trends verfolgt, bilden die beiden Kreuzungen ein Handelssignal, das die Kernrichtung der Preisänderungen im Laufe der Zeit erfasst.

  1. Strategische Vorteile

Der größte Vorteil dieser Strategie liegt in der Einfachheit der Bedienung und der einfachen Implementierung. Die EMA-Indikatoren sind einfach zu berechnen und die Quersignale sind direkt sichtbar.

Zweitens kann die schnelle und langsame EMA-Kombination sowohl kurz- als auch langfristige Trends verfolgen. Die schnelle EMA ist schneller, um Veränderungen zu verfolgen, und die langsame EMA filtert Geräusche.

Schließlich reduziert das Management der festen Positionen die Parameteroptimierung der Strategie.

  1. Potenzielle Risiken

Obwohl die Strategie einfach zu implementieren ist, ist auf die folgenden Risiken auf der Plattform zu achten:

Zunächst ist die EMA-Kreuzung etwas zurückgeblieben und könnte die besten Einstiegspunkte verpassen.

Zweitens, es gibt keine Stop-Loss-Einstellungen, die jeden einzelnen Verlust außer Kontrolle lassen.

Schließlich ist es auch schwierig, den Gewinnraum zu kontrollieren, da es keine Stop-Point-Einstellungen gibt.

Dies erfordert eine weitere Ergänzung der Exit-Logik, die die Stop-Loss-Stopp-Bedingungen vorsieht.

Vier Inhalte, Zusammenfassung

Dieser Artikel beschreibt eine quantitative Handelsstrategie mit zwei EMA-Kreuzungen. Sie verwendet eine Kombination aus schnellen EMAs und langsamen EMAs, um die Trendrichtung zu bestimmen und ein Handelssignal zu erzeugen. Die Strategie ist einfach umzusetzen, aber es gibt auch Probleme mit der geringen Schwierigkeit, die Parameter zu optimieren.

Strategiequellcode
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("EMA Cross Strategy", overlay=true, initial_capital=100, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075)

small_ema = input(29, title="Small EMA")
long_ema = input(86, title="Long EMA")

ema1 = ema(close, small_ema)
ema2 = ema(close, long_ema)

longCondition = ema1 > ema2
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ema1 < ema2
if (shortCondition)
    strategy.entry("Short", strategy.short)
    
//strategy.close("Long", when=close < ema1)
//strategy.close("Short", when=close > ema1)
    
x1 = plot(ema(close, small_ema), title="EMA 1", color=longCondition?green:shortCondition?red:blue, transp=0, linewidth=0)
x2 = plot(ema(close, long_ema), title="EMA 2", color=longCondition?green:shortCondition?red:blue, transp=0, linewidth=0)

//bgcolor(longCondition?green:shortCondition?red:blue, transp=75)

fill(x1,x2,color=longCondition?green:shortCondition?red:blue)