
Le croisement des moyennes mobiles est un signal de trading courant. Cette stratégie utilise le croisement des moyennes mobiles rapides et des moyennes mobiles lentes comme signal de trading. Plus précisément, lorsque la moyenne mobile rapide traverse la moyenne mobile lente par le bas, faites plus; lorsque la moyenne mobile rapide traverse la moyenne mobile lente par le haut et par le bas, faites moins.
Cette stratégie utilise une moyenne mobile exponentielle (EMA) de 20 jours comme moyenne mobile rapide, une EMA de 50 jours comme moyenne rapide et une EMA de 200 jours comme moyenne mobile lente. Faites plus lorsque l’EMA de 20 jours et l’EMA de 50 jours traversent simultanément l’EMA de 200 jours et faites moins lorsque l’EMA de 20 jours et l’EMA de 50 jours traversent simultanément l’EMA de 200 jours.
Le concept de la stratégie de croisement des moyennes mobiles est simple, facile à maîtriser et constitue l’une des stratégies de base de la négociation quantifiée. Cette stratégie a une bonne valeur de référence comme apprentissage d’introduction. Cependant, dans le combat réel, il est toujours nécessaire d’optimiser les paramètres pour les variétés et les cycles, et de filtrer les signaux avec d’autres indicateurs techniques plus complexes, afin d’améliorer l’efficacité de la stratégie.
/*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)