Les ressources ont été chargées... Je charge...

Stratégie quantitative de croisement de la moyenne mobile à double coque

Auteur:ChaoZhang est là., Date: 2024-11-29 16h53 et 05 min
Les étiquettes:HMA- Je vous en prie.La WMA

img

Résumé

Cette stratégie est basée sur les signaux croisés de la moyenne mobile de Hull (HMA). Elle génère des signaux de trading lorsque deux lignes HMA avec des périodes différentes se croisent.

Principe de stratégie

Le noyau de la stratégie réside dans la capture des points d'inversion de tendance du marché en utilisant des croisements de HMA de différentes périodes. Le calcul de HMA implique trois étapes: d'abord le calcul d'une WMA à demi-période, puis le calcul d'une WMA à période complète, et enfin le calcul d'une autre WMA avec une période égale à la racine carrée de la période d'origine en utilisant une combinaison spéciale des deux premières WMA. Les signaux d'achat sont générés lorsque le HMA rapide (défaut 9 périodes) traverse au-dessus de la HMA lente (défaut 16 périodes), et les signaux de vente lorsque le HMA rapide traverse au-dessous de la HMA lente.

Les avantages de la stratégie

  1. Réponse rapide au signal: HMA réduit considérablement le décalage des moyennes mobiles traditionnelles grâce à sa méthode de calcul spéciale, capturant les changements de tendance du marché plus rapidement.
  2. Filtrage du bruit: la confirmation croisée entre deux moyennes mobiles filtre efficacement le bruit du marché, réduisant ainsi les faux signaux.
  3. Paramètres flexibles: la stratégie permet d'ajuster les périodes de ligne rapide et lente pour s'adapter aux différents environnements du marché.
  4. Visualisation claire: La stratégie affiche clairement les moyennes mobiles et les signaux de trading sur le graphique pour une analyse et une optimisation faciles.

Risques stratégiques

  1. Risque de choc du marché: les croisements fréquents sur les marchés latéraux peuvent entraîner une survente et des pertes consécutives.
  2. Risque de décalage: bien que la HMA ait un décalage moindre que les moyennes mobiles traditionnelles, un certain décalage existe toujours, manquant potentiellement des points d'entrée optimaux.
  3. Sensibilité des paramètres: différentes combinaisons de paramètres peuvent entraîner des résultats commerciaux significativement différents, ce qui nécessite une optimisation minutieuse.
  4. Risque de fausse rupture: le marché peut présenter de fausses ruptures, ce qui entraîne des signaux de négociation incorrects.

Directions d'optimisation de la stratégie

  1. Introduire des filtres de tendance: ajouter des indicateurs ADX ou de force de tendance pour ne négocier que des tendances claires.
  2. Optimiser le mécanisme d'arrêt des pertes: concevoir des arrêts de pertes dynamiques basés sur l'ATR ou la volatilité.
  3. Ajouter des conditions de confirmation des échanges: intégrer des indicateurs de volume et de dynamique comme signaux de confirmation auxiliaires.
  4. Adaptation des paramètres: développer des mécanismes dynamiques d'ajustement des paramètres basés sur la volatilité du marché.
  5. Optimisation de la gestion des risques: ajouter des modules de dimensionnement des positions et de gestion des fonds.

Résumé

Il s'agit d'une stratégie de trading quantitative basée sur des croisements HMA, fournissant des signaux de trading plus opportuns en réduisant le décalage des moyennes mobiles traditionnelles.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Hull Moving Average Crossover", overlay=true)


fastLength = input.int(9, "Fast HMA Length", minval=1)
slowLength = input.int(16, "Slow HMA Length", minval=1)


hma(src, length) =>
    wma1 = ta.wma(src, length / 2)
    wma2 = ta.wma(src, length)
    ta.wma(2 * wma1 - wma2, math.floor(math.sqrt(length)))


fastHMA = hma(close, fastLength)
slowHMA = hma(close, slowLength)


plot(fastHMA, color=color.blue, title="Fast HMA")
plot(slowHMA, color=color.red, title="Slow HMA")


longCondition = ta.crossover(fastHMA, slowHMA)
shortCondition = ta.crossunder(fastHMA, slowHMA)


if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)


plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

Relationnée

Plus de