Stratégie de croisement des moyennes mobiles multi-SMA

Auteur:ChaoZhang est là., Date: 2023-11-28 15:08:37 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie calcule les moyennes mobiles SMA de plusieurs délais et prend la valeur moyenne pour construire l'indicateur de moyenne mobile. Elle génère des signaux d'achat lorsque les prix augmentent au-dessus de la moyenne mobile et des signaux de vente lorsque les prix baissent en dessous de la moyenne mobile.

Principe de stratégie

  1. Calculer les 5 moyennes mobiles SMA de différentes périodes (8 jours, 21 jours, 50 jours, 100 jours, 200 jours)
  2. Prenez la moyenne des 5 moyennes mobiles pour obtenir l'indicateur de moyenne mobile final
  3. Générer des signaux d'achat lorsque les prix de clôture dépassent la moyenne mobile
  4. Générer des signaux de vente lorsque les prix de clôture sont inférieurs à la moyenne mobile

En faisant la moyenne des SMA de plusieurs délais, cette stratégie peut effectivement lisser la courbe et filtrer les fausses ruptures.

Analyse des avantages

  1. L'utilisation de moyennes mobiles sur plusieurs délais peut filtrer efficacement le bruit du marché et identifier les tendances
  2. courbe lisse, éviter de générer trop de faux signaux
  3. La logique de la stratégie est simple et claire, facile à comprendre et à mettre en œuvre, adaptée aux débutants
  4. Combinaison de périodes de moyenne mobile personnalisable pour optimiser l'effet de l'indicateur

Analyse des risques

  1. Le système des moyennes mobiles est globalement en retard et ne peut pas suivre les variations de prix dans le temps
  2. Lorsque l'échec de rupture se produit, le point d'arrêt de la perte est loin, avec un risque plus élevé de perte
  3. Les lignes de stop loss sont souvent déclenchées par des tendances oscillantes

Ces risques peuvent être réduits en raccourcissant de manière appropriée certaines périodes de moyenne mobile et en ajoutant d'autres indicateurs de confirmation.

Directions d'optimisation

  1. Optimiser les combinaisons de périodes moyennes mobiles pour trouver les meilleurs paramètres
  2. Ajoutez des indicateurs comme le volume des transactions pour confirmer les signaux de rupture
  3. Incorporer des indicateurs de tendance pour éviter les faux signaux sur les marchés oscillants
  4. Développer des programmes d'optimisation automatique des paramètres pour trouver dynamiquement les paramètres optimaux

Résumé

L'idée générale de cette stratégie est claire. En intégrant les moyennes mobiles de plusieurs délais, il peut identifier efficacement les tendances et est une stratégie stable et pratique. Cependant, nous devons également faire attention à son retard et aux risques de faux signaux. En optimisant davantage les paramètres, en ajoutant des indicateurs de confirmation, etc., nous pouvons améliorer continuellement cette stratégie pour en faire un outil de trading quantitatif puissant.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("STRATEGY AVERAGE MULTI_SMA", overlay=true)


sma1 = sma(close,input(title="SMA 1", defval=8))

sma2 = sma(close,input(title="SMA 2", defval=21))

sma3 = sma(close,input(title="SMA 3", defval=50))

sma4 = sma(close,input(title="SMA 4", defval=100))

sma5 = sma(close,input(title="SMA 5", defval=200))


mediaSMA= (sma1+sma2+sma3+sma4+sma5)/5

//color mediaSMA

MediaUP = mediaSMA>mediaSMA[1]
colorUP = (MediaUP ? #3CFF35 : na)

MediaDOWN = mediaSMA<mediaSMA[1]
colorDOWN =(MediaDOWN ? #FF0F03 : na)

colorN =(not MediaUP and not MediaDOWN and mediaSMA==mediaSMA[1] ? white : na )

plot(mediaSMA,title="Avarege MULTI_SMA UP", color=colorUP, style=circles, linewidth=2, transp=0)
plot(mediaSMA,title="Avarege MULTI_SMA DOWN", color=colorDOWN, style=circles, linewidth=2, transp=0)
plot(mediaSMA,title="Avarege MULTI_SMA UP NEUTRAL", color=colorN, style=circles, linewidth=2, transp=0)


//plot(sma1,color=blue,linewidth=1, style=line,transp=0,title="SMA 1")
//plot(sma2,color=yellow,linewidth=1, style=line,transp=0,title="SMA 2")
//plot(sma3,color=green,linewidth=1, style=line,transp=0,title="SMA 3")
//plot(sma4,color=purple,linewidth=1, style=line,transp=0,title="SMA 4")
//plot(sma5,color=red,linewidth=1, style=line,transp=0,title="SMA 5")


// Strategy

//BUY
comprar=close>mediaSMA and mediaSMA>mediaSMA[1] 
fechar=close<mediaSMA and mediaSMA<mediaSMA[1]
 
strategy.entry("BUY",strategy.long,when=comprar)
strategy.entry("SELL",strategy.short, when=fechar)

//SELL
vender=close<mediaSMA and mediaSMA<mediaSMA[1] 
fechar2=close>mediaSMA and mediaSMA>mediaSMA[1]

strategy.entry("SELL",strategy.short, when=vender)
strategy.entry("BUY", strategy.long,when=fechar2)



Plus de