La stratégie d'inversion des moyennes mobiles doubles est une stratégie de suivi des tendances. Elle calcule les moyennes mobiles de différentes périodes pour déterminer si la tendance des prix s'inverse, afin de capturer les points tournants et d'obtenir des achats bas et des ventes élevés.
Cette stratégie calcule d'abord deux ensembles de moyennes mobiles avec des périodes différentes. L'un des ensembles est des moyennes mobiles à longue période, qui sont utilisées pour déterminer la tendance globale. L'autre ensemble est des moyennes mobiles à courte période, qui sont utilisées pour déterminer la tendance locale. En comparant la relation entre les deux ensembles de moyennes mobiles, la stratégie juge si la tendance globale s'est inversée.
Plus précisément, la stratégie calcule d'abord deux moyennes mobiles à long terme (par exemple 60 jours), qui sont la moyenne mobile simple de 60 jours et la moyenne mobile pondérée de 60 jours. Cet ensemble de moyennes mobiles est utilisé pour déterminer la tendance globale. En outre, la stratégie calcule deux moyennes mobiles à court terme (par exemple 5 jours), qui sont la moyenne mobile simple de 5 jours et la moyenne mobile pondérée de 5 jours. Cet ensemble de moyennes mobiles est utilisé pour déterminer la tendance locale.
Lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme, cela indique que le prix est passé de tendance haussière à tendance haussière. La stratégie ouvrira des positions longues. Lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme, cela indique que le prix est passé de tendance haussière à tendance haussière. La stratégie ouvrira des positions courtes.
Les étapes spécifiques sont les suivantes:
Calculer la moyenne mobile simple de 60 jours nma et la moyenne mobile pondérée de 60 jours n2ma
Calculer la moyenne mobile simple nma1 et la moyenne mobile pondérée n2ma1 sur 5 jours
Comparer n2ma1 et nma1: si n2ma1 dépasse nma1, ouvrir des positions longues; si n2ma1 dépasse nma1, ouvrir des positions courtes
Comparer n2ma et nma: si n2ma dépasse nma et que la position longue est ouverte, continuer à maintenir la position longue; si n2ma dépasse nma et que la position courte est ouverte, continuer à maintenir la position courte
Fermer les positions lorsque le prix dépasse le stop loss ou atteint le profit
Répétez le processus ci-dessus pour capturer l'inversion de tendance et obtenir acheter bas et vendre haut
L'avantage de cette stratégie est que la combinaison de la moyenne mobile double peut capturer de manière sensible l'inversion de la tendance des prix.
Le risque de cette stratégie est que le croisement de la moyenne mobile double peut avoir de faux signaux, provoquant un mauvais timing d'entrée ou de sortie des positions, augmentant ainsi le risque de négociation.
La stratégie peut être optimisée dans les aspects suivants:
Optimiser les périodes de moyenne mobile pour trouver la meilleure combinaison de paramètres
Ajouter d'autres filtres d'indicateurs techniques pour éviter les fausses ruptures
Ajouter le stop loss et le take profit pour contrôler le risque de transaction unique
Combiner avec le calendrier de négociation tendance pour éviter les transactions erronées sur les marchés latéraux
Ajustez dynamiquement la taille des positions pour s'adapter à la volatilité changeante du marché
En conclusion, la stratégie d'inversion des moyennes mobiles doubles capture les points tournants de la tendance des prix en comparant les moyennes mobiles de différentes périodes, afin d'obtenir des achats bas et des ventes élevés.
/*backtest start: 2022-10-10 00:00:00 end: 2023-06-08 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // //////////////// Attempt to Reduced ReDraw version ///////////////////// // // Microcana.com strategy by pilotgsms - version 4.20b <<<< Edited by Seaside420 >>>> special thanks to 55cosmicpineapple // Hull_MA_cross added to script strategy("M&H_v420b", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001) dd = input(defval=1, title="Post Signal Bar Delay", type=float, step=1) df = input(defval=5, title="Close Position Bar Delay", type=float, step=1) keh=input(title="Double HullMA Cross",defval=7, minval=1) confidence=(request.security(syminfo.tickerid, 'D', close)-request.security(syminfo.tickerid, 'D', close[1]))/request.security(syminfo.tickerid, 'D', close[1]) prediction = confidence > dt ? true : confidence < -dt ? false : prediction[1] n2ma=2*wma(close,round(keh/2)) nma=wma(close,keh) diff=n2ma-nma,sqn=round(sqrt(keh)) n2ma1=2*wma(close[2],round(keh/2)) nma1=wma(close[2],keh) diff1=n2ma1-nma1,sqn1=round(sqrt(keh)) n1=wma(diff,sqn) n2=wma(diff1,sqn) openlong=prediction[dd] and n1>n2 and strategy.opentrades<1 if (openlong) strategy.entry("Long", strategy.long) openshort=not prediction[dd] and n2>n1 and strategy.opentrades<1 if (openshort) strategy.entry("Short", strategy.short) closeshort=prediction and close<low[df] if (closeshort) strategy.close("Short") closelong=not prediction and close>high[df] if (closelong) strategy.close("Long")