Exponential Moving Average Crossover-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-12 14:04:37
Tags:

img

Der exponentielle gleitende Durchschnitt (EMA) Crossover ist ein häufiges Handelssignal. Diese Strategie verwendet das Crossover einer schnellen EMA und einer langsamen EMA, um Handelssignale zu generieren. Insbesondere, wenn die schnelle EMA über die langsame EMA überschreitet, wird eine Long-Position eingenommen; wenn die schnelle EMA unter die langsame EMA überschreitet, wird eine Short-Position eingenommen.

Diese Strategie verwendet die 20-Tage-EMA als schnelle EMA, die 50-Tage-EMA als mittlere EMA und die 200-Tage-EMA als langsame EMA. Wenn sowohl die 20-Tage-EMA als auch die 50-Tage-EMA über die 200-Tage-EMA gehen, wird eine Long-Position eingenommen; wenn beide unterhalb gehen, wird eine Short-Position eingenommen. Dies hilft, einige falsche Signale zu filtern.

Vorteile der Strategie

  1. Die Kreuzung der gleitenden Durchschnitte ist einfach und leicht zu verstehen und umzusetzen
  2. Die Verwendung mehrerer gleitender Durchschnitte kann dazu beitragen, falsche Signale zu filtern
  3. Ein- und Ausfahrtssignale sind klar.

Risiken der Strategie

  1. Anfällig für die Erzeugung falscher Signale bei Bereichsgebundenen Märkten
  2. Bewegliche Durchschnitte haben Verzögerungen und können nicht schnell umdrehen
  3. Nicht in der Lage, die explosive Bewegung voll auszunutzen

Verbesserungsideen

  1. Optimierung der gleitenden Durchschnittszeiten für verschiedene Produkte und Zeitrahmen
  2. Fügen Sie Filter wie Volumen und Bollinger Bands hinzu
  3. Kombination mit Trendfolgen und Mittelumkehrung für Flexibilität

Zusammenfassung

Die gleitende Durchschnitts-Crossover-Strategie ist leicht zu verstehen und ist eine der grundlegenden quantitativen Handelsstrategien. Diese Implementierung dient gut als einleitendes Beispiel.


/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 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/
// © rt-maax

//@version=5

strategy(title = "rt maax EMA cross strategy", shorttitle = "rt maax ema ", overlay = true, precision = 8, max_bars_back = 200, pyramiding = 0, initial_capital = 100000, 
     currency = currency.USD, default_qty_type = strategy.cash, default_qty_value = 100000, commission_type = "percent", commission_value = 0.27)
fastema = ta.ema (close , 50)
fema=ta.ema(close,20)
slowema= ta.ema(close,200)
price = close

// === INPUT BACKTEST RANGE ===
fromMonth = input.int(defval = 1,    title = "From Month",  minval = 1, maxval = 12)
fromDay   = input.int(defval = 1,    title = "From Day",    minval = 1, maxval = 31)
fromYear  = input.int(defval = 2021, title = "From Year",   minval = 1970)
thruMonth = input.int(defval = 10,    title = "Thru Month",  minval = 1, maxval = 12)
thruDay   = input.int(defval = 25,    title = "Thru Day",    minval = 1, maxval = 31)
thruYear  = input.int(defval = 2112, title = "Thru Year",   minval = 1970)

// === INPUT SHOW PLOT ===
showDate  = input(defval = true, title = "Show Date Range")

// === FUNCTION EXAMPLE ===



longCondition1= ta.crossover (fema , fastema) 
longcondition2= fema> slowema
longcondition3=fastema>slowema


if (longCondition1 and longcondition2 and longcondition3 )
    stoploss=low*0.97
    takeprofit=high*1.12
    strategy.entry("Long Entry", strategy.long)
    strategy.exit ("exit","long",stop=stoploss,limit=takeprofit)
   


shortCondition1 = ta.crossunder (fema , fastema )
shortcondition2= fastema< slowema
shortcondition3= fema< slowema

if (shortCondition1 and shortcondition2 and shortcondition3 )
    stoploss=low*0.97 
    takeprofit=high*1.5
    strategy.entry("Short Entry", strategy.short)
    strategy.exit("exit","short",stop=stoploss,limit=takeprofit)






Mehr