Cette stratégie utilise la méthode de croisement des moyennes mobiles doubles pour mettre en œuvre le trading à faible risque. Elle utilise deux moyennes mobiles de différentes périodes, une ligne rapide et une ligne lente, pour déterminer les signaux d'entrée et de sortie en fonction de leur croisement.
La stratégie génère des signaux commerciaux basés sur le croisement d'une ligne WMA rapide et d'une ligne WMA lente. La période de la ligne rapide est la moitié de la période de la ligne lente. Un signal d'achat est généré lorsque la ligne rapide traverse au-dessus de la ligne lente depuis le bas. Un signal de vente est généré lorsque la ligne rapide traverse au-dessous de la ligne lente depuis le haut. Pour filtrer les faux signaux, il intègre également un indicateur de momentum basé sur la différence entre deux moyennes mobiles. Un signal commercial n'est généré que lorsque le croisement MA se produit en même temps que l'indicateur de momentum répondant aux exigences de forme.
Plus précisément, la logique clé comprend:
Définir les paramètres de prix: obtenir les données de prix OHLC; définir les paramètres HullMA période z, données de prix p.
Calculer les MAs doubles: calculer les MAs n2ma à deux périodes, les MAs nma à période z.
Calcul de la différence de MA: calcul de la différence entre deux différences de MA.
Calcul de l'indicateur de momentum: calcul de la moyenne mobile de la différence - n1, n2, n3 avec la période sqn.
Déterminer le croisement: marquer n1 au-dessus de n2 en vert, autrement en rouge.
Formes du graphique: graphique n1 et n2.
Identifier les signaux: générer un signal lorsque n1, n2, n3 s'alignent dans la même direction.
Entrée et sortie: long lorsque la ligne rapide au-dessus de la ligne lente et l'indicateur de momentum sont en accord; court lorsque la ligne rapide au-dessous de la ligne lente et l'indicateur de momentum sont en accord.
En combinant un double croisement MA et un indicateur de dynamique, cette stratégie peut filtrer efficacement les faux signaux et ne générer des transactions qu'au début des changements de tendance, produisant ainsi de bonnes performances stratégiques.
Le croisement MA détecte les changements de tendance, en profitant des tendances.
L'indicateur de dynamique filtre les faux signaux, évitant ainsi d'être induit en erreur par des fluctuations à court terme.
Seule la négociation sur les changements de tendance majeurs réduit la fréquence des transactions inutiles.
L'optimisation des paramètres correspond aux caractéristiques des différents produits.
Permettre un certain degré de pyramide allonge les cycles de profit.
Il y a aussi des risques à prendre en compte:
Le croisement double MA a un retard dans la détection des changements de tendance, manquant potentiellement le meilleur timing.
Les paramètres mal réglés sur l'indicateur de momentum peuvent générer de mauvais signaux.
Il existe un déséquilibre entre les périodes de détention longues et courtes.
La stratégie ne dispose pas de mécanismes permettant de bien gérer les conditions de marché instables.
Il existe un risque d'optimisation excessive, nécessitant une optimisation progressive des paramètres.
Quelques solutions:
Envisagez d'ajouter d'autres indicateurs de pointe pour détecter les changements de prix tôt.
Optimiser les paramètres de l'indicateur de momentum pour trouver les meilleures combinaisons.
Ajouter un indicateur de volatilité à la période de détention de contrôle.
Limitez la dimensionnement des positions pour réduire les pertes uniques.
Test de la robustesse des paramètres afin d'éviter une sur-optimisation.
La stratégie peut être améliorée dans les domaines suivants:
Testez différents types d'AM pour trouver les paramètres optimaux pour chaque produit.
Ajoutez d'autres indicateurs comme le MACD, les bandes de Bollinger pour déterminer les changements de tendance.
Optimisez le moment de l'entrée pour déterminer avec précision les points tournants.
Optimisez les sorties en utilisant des arrêts de trailing pour verrouiller les profits.
Optimiser les paramètres en fonction des caractéristiques du produit.
Utilisez l'apprentissage automatique pour trouver des combinaisons optimales de paramètres.
Construire des mécanismes dynamiques de dimensionnement des positions pour contrôler les risques.
Ajoutez des mesures quantitatives comme le ratio Sharpe, le facteur de profit pour l'évaluation de la stratégie.
Évaluer les performances sur les données historiques à l'aide du moteur de backtesting.
En résumé, cette stratégie de double MA d'élan identifie les principaux points d'inversion de tendance en utilisant le croisement et l'élan de MA, ce qui permet un trading à faible risque. Elle présente des avantages tels que des bénéfices stables et une mise en œuvre simple, mais aussi des problèmes à améliorer tels que l'optimisation des paramètres et le contrôle des risques. Nous pouvons affiner des domaines tels que le timing d'entrée/sortie, la dimensionnement dynamique des positions pour mieux nous adapter aux conditions du marché. Une validation et une évaluation étendues sont essentielles pour assurer une performance stratégique robuste. Dans l'ensemble, cette stratégie fournit une approche simple mais efficace du trading quantitatif, mais nécessite des optimisations et des validations continues pour générer des rendements d'investissement constants.
/*backtest start: 2022-11-10 00:00:00 end: 2023-11-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //OCTOPUS Indicator Strategy strategy("FAVEL corp. Indicator Strategy", shorttitle="FAVEL corp. Monarch", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=420, default_qty_value=20, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) z=input(defval=60,title="HullMA cross") p=input(ohlc4,title="Price data") n2ma=2*wma(p,round(z/2)) nma=wma(p,z) diff=n2ma-nma sqn=round(sqrt(z)) n2ma1=2*wma(p[1],round(z/2)) nma1=wma(p[1],z) diff1=n2ma1-nma1 sqn1=round(sqrt(z)) n2ma2=2*wma(p[2],round(z/2)) nma2=wma(p[2],z) diff2=n2ma2-nma2 sqn2=round(sqrt(z)) n1=wma(diff,sqn) n2=wma(diff1,sqn) n3=wma(diff2,sqn) c=n1>n2?green:red n1e=plot(n1, color=c, linewidth=1, offset=2) n2e=plot(n2, color=c, linewidth=1, offset=2) fill(n1e, n2e, color=c, transp=75) plot(cross(n1, n2) ? n1 : na, style = circles,color=c, linewidth = 4) closelong = p<p[1] and n1<n3 if (closelong) strategy.close("BUY") closeshort = p>p[1] and n1>n3 if (closeshort) strategy.close("SELL") longCondition = strategy.opentrades<1 and n1>n2 and p>p[1] and n1>n3 if (longCondition) strategy.entry("BUY",strategy.long) shortCondition = strategy.opentrades<1 and n1<n2 and p<p[1] and n1<n3 if (shortCondition) strategy.entry("SELL",strategy.short)