Stratégie de croisement des moyennes mobiles exponentielles

Auteur:ChaoZhang est là., Date: 12 janvier 2024
Les étiquettes:

img

L'intersection de la moyenne mobile exponentielle (EMA) est un signal de trading courant. Cette stratégie utilise l'intersection d'une EMA rapide et d'une EMA lente pour générer des signaux de trading. Plus précisément, lorsque l'EMA rapide traverse au-dessus de l'EMA lente, une position longue est prise; lorsque l'EMA rapide traverse en dessous de l'EMA lente, une position courte est prise.

Cette stratégie utilise l'EMA de 20 jours comme l'EMA rapide, l'EMA de 50 jours comme l'EMA moyen et l'EMA de 200 jours comme l'EMA lent. Lorsque l'EMA de 20 jours et l'EMA de 50 jours franchissent le seuil supérieur de l'EMA de 200 jours, une position longue est prise; lorsque les deux franchissent le seuil inférieur, une position courte est prise. Cela aide à filtrer certains faux signaux.

Les avantages de la stratégie

  1. La stratégie de croisement des moyennes mobiles est simple et facile à comprendre et à mettre en œuvre
  2. L'utilisation de plusieurs moyennes mobiles peut aider à filtrer les faux signaux
  3. Les signaux d'entrée et de sortie sont clairs.

Risques liés à la stratégie

  1. Prédisposé à générer de faux signaux sur les marchés à plage
  2. Les moyennes mobiles ont un décalage et peuvent ne pas capturer les virages rapidement
  3. Incapable de tirer pleinement parti des mouvements explosifs

Idées d'amélioration

  1. Optimiser les périodes moyennes mobiles pour différents produits et délais
  2. Ajouter des filtres tels que le volume et les bandes de Bollinger
  3. Combiner avec le suivi de la tendance et l'inversion moyenne pour la flexibilité

Résumé

La stratégie de croisement de moyenne mobile est facile à comprendre et est l'une des stratégies de trading quantitatives fondamentales. Cette mise en œuvre sert bien d'exemple d'introduction.


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






Plus de