La stratégie de trading de moyenne mobile double est une stratégie de trading quantitative qui construit des signaux de trading en utilisant deux lignes moyennes mobiles avec des cycles différents.
La technique de base utilisée dans cette stratégie est l'analyse de deux lignes moyennes mobiles. La stratégie définit une ligne moyenne mobile courte de 5 jours et une ligne moyenne mobile de 21 jours. En comparant les valeurs de différence osc0 entre le prix et ma0 et osc1 entre ma0 et ma1, la stratégie détermine l'état de la tendance actuelle.
Lorsque osc0>0 et osc1>0, cela signifie que la ligne moyenne mobile à court terme a franchi la ligne à long terme, indiquant une tendance haussière. Lorsque osc0<0 et osc1<0, cela signifie que la ligne à court terme a franchi la ligne inférieure, indiquant une tendance baissière. La stratégie prend une position longue lorsqu'une tendance haussière est identifiée et prend une position courte lorsqu'une tendance baissière est identifiée.
Après avoir pris des positions, la stratégie surveille en temps réel les variations d'OSC0 et d'OSC1 pour juger de la fourchette de profit de la position. Lorsque osc0<0 et osc1<0 après avoir pris une position longue, cela signifie un renversement de tendance, de sorte que la position longue doit être fermée. Lorsque osc0>0 et osc1>0 après avoir pris une position courte, cela signifie également un renversement, de sorte que la position courte doit être fermée.
La stratégie de négociation des moyennes mobiles doubles présente les avantages suivants:
Principe simple et facile à comprendre et à mettre en œuvre, adapté aux débutants du commerce quantitatif;
Suivre les tendances, être bon à suivre les tendances des marchés avec un bénéfice décent;
Les paramètres de cycle des moyennes mobiles peuvent être ajustés pour différentes conditions de marché;
Peut être combiné avec d'autres indicateurs ou stratégies pour des bénéfices plus élevés.
Cette stratégie comporte également certains risques:
L'incapacité de sortir des positions en temps opportun lorsque la tendance est inversée peut entraîner d' énormes pertes;
Difficile de réaliser des bénéfices sur les marchés à fourchette en raison de la fréquence des arrêts de perte;
Difficile d'optimiser des paramètres tels que les cycles de 5 jours et de 21 jours;
Les signaux de trading retardés, l'entrée tardive sur le marché peuvent influencer le taux de profit.
La stratégie de négociation des moyennes mobiles doubles peut être optimisée par les aspects suivants:
Combiner avec VOL pour confirmer le début de la tendance réelle, éviter les fausses ruptures;
Ajouter d'autres filtres comme la rupture des prix, l'expansion du volume pour assurer la fiabilité du signal;
Mettre en place des arrêts dynamiques pour réduire les pertes dans le temps;
Optimiser des paramètres tels que le seuil de différence de moyenne mobile pour réduire les erreurs;
Utilisez l'apprentissage automatique pour optimiser automatiquement les cycles des moyennes mobiles.
En conclusion, la stratégie de trading de la moyenne mobile double est une stratégie assez classique et pratique de suivi des tendances. Elle a une logique simple à pratiquer pour les débutants, est bonne pour suivre les tendances, est très extensible pour être combinée avec d'autres techniques.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("[STRATEGY][RS]MA Strategy test V0", overlay=true) length0 = input(5) length1 = input(21) isinsession = not na(time('1', '0400-1500')) price = open ma0 = ema(ema(price, length0), length0) ma1 = ema(ema(price, length1), length1) plot(ma0, color=navy) plot(ma1, color=black) osc0 = price-ma0 osc1 = ma0-ma1 isbull = osc0 > 0 and osc1 > 0 buy_condition = isinsession and isbull and not isbull[1] buy_exit_condition = osc0 < 0 and osc1 < 0 strategy.entry("buy", strategy.long, comment="buy", when=buy_condition) strategy.close(id='buy', when=buy_exit_condition) isbear = osc0 < 0 and osc1 < 0 sell_condition = isinsession and isbear and not isbear[1] sell_exit_condition = osc0 > 0 and osc1 > 0 strategy.entry("sell", strategy.short, comment="sell", when=sell_condition) strategy.close(id='sell', when=sell_exit_condition) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)