Cette stratégie utilise deux lignes EVWMA avec des périodes différentes pour générer des croisements et produire des signaux d'achat et de vente.
La stratégie identifie les changements de tendance en calculant et en croisant deux lignes EVWMA avec des périodes différentes.
Plus précisément, il calcule d'abord deux lignes EVWMA:
Ligne de courte durée m1, avec durée de période1, défaut à 5
Ligne de longue période m2, avec longueur de période2, par défaut à 40
Il utilise ensuite les fonctions de croisement et de croisement pour déterminer les situations de croisement entre m1 et m2:
Si m1 traverse sur m2, il génère un signal d'achat et exécute une opération longue
Si m1 passe sous m2, il génère un signal de vente et exécute une opération courte
Il convient de noter que l'EVWMA accorde plus de poids aux données récentes par rapport à la moyenne mobile simple.
data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume_price/nb_floating_shares)
où nz ((data[1]) est la valeur EVWMA de la période précédente, nb_floating_shares est le volume total de la période, le volume est le volume de la période en cours et le volume_prix est le chiffre d'affaires de la période en cours.
Les avantages de cette stratégie sont les suivants:
L'EVWMA réagit plus rapidement aux variations de prix et améliore les possibilités de profit
Le croisement de deux lignes EVWMA identifie les points tournants en temps opportun
Une logique simple et facile à mettre en œuvre
Durées de période personnalisables pour s'adapter aux différents environnements du marché
Aucune optimisation complexe des paramètres n'est nécessaire et facile pour le trading en direct
Cette stratégie comporte également certains risques:
Les croisements peuvent générer des signaux non valides excessifs sans filtrer le bruit du marché
Difficile d'identifier les points d'inversion de tendance et risque de manquer d'inversions
Aucun stop loss ni prise de profit, incapable de contrôler efficacement les risques
Une optimisation insuffisante des paramètres conduit à des paramètres de période incorrects
Quelques pistes pour améliorer la stratégie:
Ajouter un stop loss et un profit à un contrôle strict des risques
Optimiser la durée des périodes pour trouver les meilleurs paramètres
Ajouter un filtre de volume pour réduire les transactions invalides
Combiner avec les indicateurs de renversement pour éviter les renversements manquants
Optimiser dynamiquement les paramètres en fonction des changements du marché
Différencier les marchés haussiers et baissiers et utiliser différents paramètres
Introduire des modèles d'apprentissage automatique pour déterminer le calendrier des transactions basé sur les mégadonnées
En résumé, cette stratégie croisée EVWMA peut identifier efficacement les changements de tendance et générer des signaux de trading en calculant et en traversant des lignes EVWMA doubles. La logique est simple mais il y a des risques et des directions d'amélioration. En optimisant le stop loss, la sélection des paramètres, l'intégration d'autres indicateurs, etc., la stratégie peut être renforcée pour le trading en direct.
/*backtest start: 2023-08-18 00:00:00 end: 2023-08-26 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Elastic Volume Weighted Moving Average Cross Strategy", shorttitle="EVWMA Cross", overlay=true) length1=input(5, title="EVWMA Short") length2=input(40, title="EVWMA Long") nbfs1=sum(volume, length1) nbfs2=sum(volume, length2) medianSrc=close calc_evwma(price, length, nb_floating_shares) => data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume*price/nb_floating_shares) data m1=calc_evwma(medianSrc, length1, nbfs1) m2=calc_evwma(medianSrc, length2, nbfs2) if (crossover(m1, m2)) strategy.entry("MA2CrossLE", strategy.long, comment="MA2CrossLE") if (crossunder(m1, m2)) strategy.entry("MA2CrossSE", strategy.short, comment="MA2CrossSE") p1=plot(m1,color=orange,linewidth=2, title="evwma") p2=plot(m2,color=orange,linewidth=2, title="evwma")