La stratégie utilise deux moyennes mobiles pondérées de deux périodes différentes (EVWMA) pour générer des signaux d’achat et de vente. Un signal d’achat est généré lorsque la courte ligne de périodicité traverse la longue ligne de périodicité. Un signal de vente est généré lorsque la courte ligne de périodicité traverse la longue ligne de périodicité.
Cette stratégie permet de juger de la variation de la tendance en calculant des lignes EVWMA de différentes périodes et en les faisant se croiser.
Plus précisément, il a d’abord calculé deux lignes EVWMA:
La courte périodicité m1, la longueur de période 1, par défaut 5
La longueur de la ligne périodique m2, la longueur de la période 2, par défaut, est de 40
Elle juge ensuite le croisement de m1 et m2 par les fonctions de croisement et de croisement:
Si m1 est traversé par m2, un signal d’achat est généré et l’opération long est exécutée
Si m1 est en dessous de m2, un signal de vente est généré et une opération de short est exécutée.
Il est à noter que l’EVWMA diffère de la moyenne mobile ordinaire en ce qu’elle donne plus de poids aux données les plus récentes afin de répondre plus rapidement aux variations de prix. La formule de calcul est la suivante:
data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume_price/nb_floating_shares)
dont nz ((data[1]) indique la valeur EVWMA de la période précédente, nb_floating_shares indique le total des transactions de cette période, volume indique le volume des transactions de la période actuelle et volume_price indique le volume des transactions de la période actuelle. Cela permet d’attribuer un poids plus élevé aux données les plus récentes.
Cette stratégie présente les avantages suivants:
L’utilisation de l’EVWMA permet de répondre plus rapidement aux changements de prix et d’améliorer les opportunités de profit
L’utilisation d’un double croisement de lignes EVWMA permet de détecter les points de changement de tendance et d’entrer en jeu à temps
Simple à utiliser et facile à mettre en œuvre
Durée de cycle personnalisable pour s’adapter à différents environnements de marché
Pas besoin d’optimisation de paramètres compliqués, facile à installer
Cette stratégie comporte aussi des risques:
Les croisements biligéraux ne peuvent pas filtrer le bruit du marché et peuvent générer de nombreux signaux inefficaces.
Il n’est pas possible de déterminer le point de basculement, il y a un risque de manquer le basculement.
Les mécanismes d’arrêt sans dommages ne permettent pas de contrôler efficacement les risques
Optimisation insuffisante des paramètres et erreur de réglage de la période de ligne
Cette stratégie peut être optimisée dans les domaines suivants:
Augmentation des stratégies de coupe-faim et maîtrise stricte des risques
Optimiser la longueur de cycle de la ligne et choisir les paramètres optimaux
Ajout d’un indicateur de volume de transactions pour filtrer les signaux et réduire les transactions invalides
En combinaison avec d’autres indicateurs, il est possible de juger d’un renversement de tendance et de réduire les occasions manquées.
Paramètre d’optimisation dynamique, longueur de cycle de la ligne ajustée en fonction des variations du marché
Distinction entre les marchés à capitaux multiples et les marchés à capitaux vides, avec des paramètres différents
L’apprentissage automatique est un outil d’apprentissage des données qui permet de déterminer le moment opportun pour acheter ou vendre.
La stratégie de croisement d’une moyenne mobile à pondération élastique permet de détecter efficacement les changements de tendance et de générer des signaux de négociation en calculant et en laissant les deux lignes EVWMA se croiser. La stratégie est simple et pratique, mais elle présente des risques et des orientations d’optimisation.
/*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")