Stratégie de suivi de tendance de la moyenne mobile de Hull


Date de création: 2023-11-02 14:57:37 Dernière modification: 2023-12-01 15:02:29
Copier: 0 Nombre de clics: 778
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance de la moyenne mobile de Hull

Aperçu

Cette stratégie est basée sur la construction d’un système de trading de suivi de tendance basé sur l’indicateur de la moyenne mobile de Hull. La décision de faire des prises de position supplémentaires en fonction de la direction de la courbe de Hull est une stratégie de suivi de tendance typique.

Principe de stratégie

Cette stratégie utilise la moyenne mobile de Hull comme indicateur technique principal. La moyenne mobile de Hull a été proposée en 2005 par le trader américain Alan Hull, et est une amélioration de la base de la moyenne mobile, qui utilise la fonction racine carrée pour réduire le retard de la moyenne mobile.

Plus précisément, la moyenne mobile de Hull contient deux moyennes, l’une étant la moyenne mobile MA ((n) pour la période n, et l’autre la moyenne mobile MA ((n/2) pour la période n/2. La différence entre les deux moyennes constitue la courbe de décalage de Hull, puis la courbe de décalage de Hull est calculée pour sa propre moyenne mobile, la courbe de Hull.

Lorsque la courbe de Hull est en hausse, la courbe de Hull est en hausse sur la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe de la courbe.

Cette stratégie définit la période de Hull n comme 16, en calculant respectivement la moyenne mobile n/2 = 8 et la moyenne mobile n = 16, et en calculant la courbe de Hull pour la différence entre les deux, puis en calculant la courbe de Hull pour sa propre moyenne mobile n = 4 (en prenant la racine carrée n = 4). Faites plus lorsque vous traversez la courbe de Hull et faites zéro lorsque vous la traversez.

Analyse des forces stratégiques

Par rapport à la moyenne mobile ordinaire, la moyenne mobile de Hull présente les avantages suivants:

  1. Réduction du retard. Utilisation de la fonction racine carrée, la courbe de Hull est plus proche du prix et permet de capturer plus rapidement la rotation des prix.

  2. Les moyennes mobiles traditionnelles ont tendance à générer plus de fausses croix, tandis que la courbe de Hull peut filtrer certains bruits et éviter les transactions inutiles.

  3. moins de paramètres. La courbe de Hull ne nécessite qu’un seul paramètre, n, pour une optimisation facile, alors que le système biunivoque nécessite l’optimisation de deux paramètres.

  4. Personnalisable. La valeur n de la courbe de Hull peut être ajustée en fonction du marché et peut être personnalisée périodiquement pour s’adapter à différentes variétés.

  5. La courbe de la coque est systématique, évitant le choix manuel et suivant la cohérence du système de négociation mécanique.

Analyse des risques

Bien que le système Hull présente de nombreux avantages par rapport aux moyennes mobiles, il présente les risques suivants:

  1. Les limites de la stratégie de suivi des tendances. En tant que stratégie de suivi des tendances, le système Hull est vulnérable à la rupture lorsque les tendances changent radicalement.

  2. Les caractéristiques de réponse rapide de la courbe de Hull augmentent la fréquence des transactions et facilitent les transactions excessives.

  3. Paramètres susceptibles d’être sur-optimisés. Il n’y a qu’un seul paramètre susceptible de conduire à une sur-optimisation, le risque de curve fitting.

  4. L’effet varie selon les variétés. Le système Hull n’est pas efficace pour certaines variétés à forte volatilité et nécessite un ajustement des paramètres en fonction de la variété.

Orientation de l’optimisation de la stratégie

En fonction des limites de la stratégie de Hull Moving Average ci-dessus, il est possible d’optimiser la stratégie de Hull Moving Average en:

  1. Il est possible d’ajouter des indicateurs comme le MACD, le KD et d’autres pour juger de la tendance.

  2. Augmenter les stratégies de stop loss et contrôler les pertes individuelles. Par exemple, mettre en place un stop loss mobile ou un stop loss suspendu.

  3. Optimiser n paramètres pour éviter une suroptimisation. Vous pouvez utiliser l’analyse de marche avant pour optimiser le défilement.

  4. Paramètres d’optimisation dynamique combinés avec des techniques d’apprentissage automatique. La valeur optimale des paramètres de prédiction n utilisant des modèles tels que RNN.

  5. Optimisation des paramètres de la sous-variété. Utilisation de l’apprentissage automatique pour optimiser l’adaptation des paramètres des différentes variétés.

  6. Optimiser la gestion des positions et réduire la fréquence des transactions.

Résumer

La stratégie de Hull Moving Average est une stratégie de suivi de tendance typique. Elle présente des avantages par rapport à la moyenne mobile, mais elle est également sujette à des problèmes d’optimisation et de fréquence des transactions.

Code source de la stratégie
/*backtest
start: 2023-10-25 00:00:00
end: 2023-11-01 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's HullMA Strategy", shorttitle = "HullMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
n = input(title = "HullMA period", defval=16)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//HullMA
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))
n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
ma=plot(n1,color=c)
    
//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if n1 > n2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if n1 < n2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if true
    strategy.close_all()