Stratégie de croisement de moyennes mobiles


Date de création: 2023-11-23 13:38:02 Dernière modification: 2023-11-23 13:38:02
Copier: 0 Nombre de clics: 631
1
Suivre
1617
Abonnés

Stratégie de croisement de moyennes mobiles

Aperçu

La stratégie de croisement de la moyenne est une stratégie de négociation basée sur une moyenne mobile. Elle utilise un croisement de la moyenne mobile rapide et de la moyenne mobile lente comme signaux d’achat et de vente. Elle génère un signal d’achat lorsque la moyenne rapide franchit la moyenne lente par le bas et un signal de vente lorsque la moyenne rapide franchit la moyenne lente par le haut.

Principe de stratégie

La stratégie utilise la fonction sma pour calculer la moyenne mobile simple des périodes spécifiées, en tant que moyenne rapide et moyenne lente. La stratégie a une période de moyenne rapide par défaut de 18 jours, qui peut être ajustée par paramètres.

Lorsque la moyenne rapide franchit la moyenne lente en descendant, la fonction crossunder détecte le signal de croix et produit un signal d’achat. Lorsque la moyenne rapide franchit la moyenne lente en descendant, la fonction crossover détecte le signal de croix et produit un signal de vente.

Les stratégies permettent d’effectuer des transactions automatiques à l’aide de signaux de track et d’exit. L’entrée à plusieurs têtes est déclenchée lorsque la moyenne rapide franchit la moyenne lente par le bas; l’entrée à tête vide est déclenchée lorsque la moyenne rapide franchit la moyenne lente par le haut. Le signal d’exit correspondant est également généré lors d’une croisée inversée.

Analyse des avantages

  • L’utilisation d’un croisement de moyenne mobile a une forte capacité de suivi des tendances, permettant de capturer efficacement les tendances des prix
  • La stratégie de la ligne moyenne est simple, directe, logique et facile à comprendre.
  • Les stratégies d’optimisation peuvent être adaptées à différents environnements de marché en ajustant les paramètres de la moyenne
  • Stratégies pour automatiser les transactions sans intervention humaine et réduire les coûts d’exploitation

Les risques et les solutions

  • Les signaux de croisement inefficaces se produisent à plusieurs reprises lorsque le prix est dans la zone de choc, ce qui entraîne un risque de transactions fréquentes. Les conditions de filtrage peuvent être évitées en ajoutant des conditions de filtrage.
  • Les paramètres d’optimisation doivent être pris en compte. Les différents paramètres ont un impact significatif sur la performance de la stratégie. Les paramètres d’optimisation peuvent être optimisés par le retour de données ou l’introduction d’une moyenne adaptative.
  • Il existe un certain risque de signal erroné, qui peut être combiné avec d’autres indicateurs de filtrage ou comme condition auxiliaire.
  • Une stratégie de stop-loss peut être introduite pour contrôler les pertes individuelles.

Direction d’optimisation

  • Il est possible d’introduire des paramètres d’adaptation ou d’optimisation dynamique pour mieux suivre le marché.
  • Les conditions de filtrage peuvent être ajoutées pour éviter les signaux erronés lors de fluctuations de prix ou d’une tendance incertaine. Par exemple, le filtrage du volume des transactions peut être introduit.
  • La performance de la stratégie peut être améliorée par la combinaison d’autres indicateurs, tels que la ceinture de Brin comme filtre ou condition d’admission auxiliaire.
  • Des stratégies de stop-loss peuvent être introduites pour maintenir les pertes individuelles dans des limites acceptables.

Résumer

La stratégie de croisement de ligne uniforme est une stratégie de suivi de tendance plus classique et simple dans l’ensemble. Elle utilise principalement le croisement de ligne uniforme comme signal de négociation, le principe est simple et direct, facile à comprendre, et peut être ajusté par des paramètres pour s’adapter au marché. Mais il existe également des inconvénients, tels que la vulnérabilité aux chocs et aux changements de tendance, la fréquence de la signalisation, etc. Ces problèmes peuvent être améliorés par l’ajout de filtres, l’ajustement dynamique des paramètres, l’introduction de stop-loss, etc.

Code source de la stratégie
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-17 04:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "MA Close Strategy", shorttitle = "MA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

MASource   = input(defval = open, title = "MA Source")
MaLength   = input(defval = 18, title = "MA Period", minval = 1)

StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(true,"UseStopLoss")
stopLoss = input(50, title = "Stop loss percentage(0.1%)") 

window() => time >=  timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false

MA = sma(MASource,MaLength)

plot(MA, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)

long = crossunder(MA, close)
short = crossover(MA, close)

if (long)
    strategy.entry("LongId", strategy.long, when = long)
    strategy.exit("ExitLong", from_entry = "LongId", when = short)

if (short)
    strategy.entry("ShortId", strategy.short, when = short)
    strategy.exit("ExitShort", from_entry = "ShortId", when = long)

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)