Moving Average Crossover-Strategie


Erstellungsdatum: 2024-01-12 14:04:37 zuletzt geändert: 2024-01-12 14:04:37
Kopie: 0 Klicks: 615
1
konzentrieren Sie sich auf
1617
Anhänger

Moving Average Crossover-Strategie

Eine Strategie, die die Kreuzung von schnellen und langsamen Moving Averages als Handelssignale nutzt. Konkret geht es darum, mehr zu machen, wenn ein schneller Moving Average den langsamen Moving Average von unten durchdringt, und weniger zu machen, wenn ein schneller Moving Average den langsamen Moving Average von oben durchdringt.

Die Strategie verwendet den 20-Tage-Exponential Moving Average (EMA) als schnellen Moving Average, den 50-Tage-EMA als mittlere Schnelligkeit und den 200-Tage-EMA als langsamen Moving Average. Wenn der 20-Tage-EMA und der 50-Tage-EMA gleichzeitig über die 200-Tage-EMA gehen, wird mehr getan, wenn der 20-Tage-EMA und der 50-Tage-EMA gleichzeitig über die 200-Tage-EMA gehen, wird nichts getan.

Strategische Vorteile

  1. Moving Average Strategies sind einfach, leicht zu verstehen und umzusetzen
  2. Mehrfache Kombinationen von Moving Averages können falsche Signale filtern
  3. Die Bedingungen sind klar und es ist leicht zu bestimmen, wann man ein- oder ausgeht.

Strategisches Risiko

  1. Das ist ein falsches Signal, wenn man sich auf den Markt stellt.
  2. Der Moving Average ist nachlässig und kann keine Preisbewegungen zeitnah erfassen.
  3. Die Gewinne aus den bahnbrechenden Aktivitäten werden nicht genutzt.

Optimierung

  1. Optimierung der Periodizität von Moving Averages für verschiedene Sorten und Perioden
    1. Hinzufügen von Filtersignalen für andere Indikatoren wie Handelsvolumen, Brin-Band usw.
  2. Kombination von Trend- und Umkehrstrategien, Verfolgung im Trend und Wartezeit auf Chancen

Zusammenfassen

Das Konzept der Moving Average Crossover Strategie ist einfach und leicht zu erlernen und ist eine der grundlegenden Strategien für den Quantifizierungshandel. Die Strategie hat einen guten Referenzwert als Einstiegsstudie. In der Realität müssen jedoch die Parameter für Sorten und Perioden optimiert und mit anderen, komplexeren technischen Indikatoren unterstützt werden, um Signale zu filtern und so die Wirksamkeit der Strategie zu verbessern.

Strategiequellcode
/*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)