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