Stratégie croisée de moyenne mobile pondérée par volume élastique

Auteur:ChaoZhang est là., Date: le 18 septembre 2023 22:07:14
Les étiquettes:

Résumé

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 logique de la stratégie

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:

  1. Ligne de courte durée m1, avec durée de période1, défaut à 5

  2. 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.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. L'EVWMA réagit plus rapidement aux variations de prix et améliore les possibilités de profit

  2. Le croisement de deux lignes EVWMA identifie les points tournants en temps opportun

  3. Une logique simple et facile à mettre en œuvre

  4. Durées de période personnalisables pour s'adapter aux différents environnements du marché

  5. Aucune optimisation complexe des paramètres n'est nécessaire et facile pour le trading en direct

Risques et solutions

Cette stratégie comporte également certains risques:

  1. Les croisements peuvent générer des signaux non valides excessifs sans filtrer le bruit du marché

    • Solution: combiner avec le volume ou d'autres indicateurs pour filtrer les signaux
  2. Difficile d'identifier les points d'inversion de tendance et risque de manquer d'inversions

    • Solution: ajuster les paramètres de la période ou ajouter d'autres indicateurs d'inversion
  3. Aucun stop loss ni prise de profit, incapable de contrôler efficacement les risques

    • Solution: définir des taux de stop-loss et de prise de profit appropriés basés sur les données historiques et la volatilité
  4. Une optimisation insuffisante des paramètres conduit à des paramètres de période incorrects

    • Solution: Optimiser les paramètres par le backtesting et choisir les longueurs appropriées

Directions d'amélioration

Quelques pistes pour améliorer la stratégie:

  1. Ajouter un stop loss et un profit à un contrôle strict des risques

  2. Optimiser la durée des périodes pour trouver les meilleurs paramètres

  3. Ajouter un filtre de volume pour réduire les transactions invalides

  4. Combiner avec les indicateurs de renversement pour éviter les renversements manquants

  5. Optimiser dynamiquement les paramètres en fonction des changements du marché

  6. Différencier les marchés haussiers et baissiers et utiliser différents paramètres

  7. Introduire des modèles d'apprentissage automatique pour déterminer le calendrier des transactions basé sur les mégadonnées

Conclusion

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")

Plus de