MetaTrader4
Tout savoir sur le filtre Hodrick-Prescott pour trader avec efficacité
Auteur : gpwr
Le filtre Hodrick-Prescott (HP) se distingue par son absence de retard. Il est calculé en minimisant la fonction objective suivante :
F = Somme((y[i] - x[i])^2, i=0..n-1) + lambda*Somme((y[i+1]+y[i-1]-2*y[i])^2, i=1..n-2)
où x[] représente les prix et y[] les valeurs du filtre. Vous trouverez ci-dessous un exemple de comportement du filtre (voir le fichier HP.mq4 ci-joint).
Si le filtre Hodrick-Prescott anticipe l’avenir, quelles valeurs futures suggère-t-il ? Pour répondre à cette question, nous devons trouver un filtre numérique à basse fréquence avec un paramètre de fréquence similaire à celui du filtre Hodrick-Prescott, mais avec des valeurs calculées directement à partir des valeurs passées du "filtre jumeau" lui-même, c'est-à-dire :
y[i] = Somme(a[k]*x[i-k], k=0..nx-1) - filtre FIR
ou
y[i] = Somme(a[k]*x[i-k], k=0..nx-1) + Somme(b[k]*y[i-k], k=1..ny) - filtre IIR
Il est préférable de choisir le "filtre jumeau" ayant un retard indépendant de la fréquence Тdel (retard de groupe constant). Les filtres IIR ne conviennent pas. Pour les filtres FIR, la condition pour un retard indépendant de la fréquence est la suivante :
a[i] = +/-a[nx-1-i], i = 0..nx-1
Le filtre FIR le plus simple avec retard constant est la Moyenne Mobile Simple (MMS) :
y[i] = Somme(x[i-k], k=0..nx-1)/nx
Si nx est un nombre impair, Тdel = (nx-1)/2. Si nous décalons les valeurs du filtre MMS vers le passé d'un montant de barres égal à Тdel, les valeurs de MMS coïncident avec celles du filtre Hodrick-Prescott. Les mathématiques exactes ne peuvent pas être atteintes en raison des différences significatives dans les paramètres de fréquence des deux filtres (voir le graphique ci-dessous) :
Pour obtenir la correspondance la plus proche entre les valeurs des filtres, je recommande que leurs largeurs de canal soient similaires (par exemple, -6dB). La largeur de canal de -6dB pour le filtre Hodrick-Prescott est calculée comme suit :
wc = 2*arcsin(0.5/lambda^0.25).
La largeur de canal de -6dB pour le filtre MMS est calculée par calcul numérique via l'équation suivante :
|H(w)| = sin(nx*wc/2)/sin(wc/2)/nx = 0.5
Le graphique ci-dessous compare les valeurs des deux filtres ayant une largeur de canal similaire : en rouge - filtre Hodrick-Prescott (FiltPer = 25), en bleu - MMS (Période = 15, Décalage = -7). Notez qu'il n'y a pas de données MMS pour les 7 dernières barres, car il doit connaître les futurs prix. À l'inverse, le filtre Hodrick-Prescott (rouge) montre certaines valeurs. Si le MMS décalé répète les valeurs du filtre Hodrick-Prescott sur les 7 dernières barres après l'apparition des futurs prix, quelles pourraient être ces valeurs ?
Algorithmes de prédiction :
L'indicateur propose deux méthodes de prédiction :
Méthode 1 :
1. Définissez la longueur de la MMS à 3 et déplacez-la vers le passé d'une barre. Avec une telle longueur, la MMS décalée n'existe pas seulement pour la dernière barre (Bar = 0), car elle a besoin de la valeur du prochain prix futur Close[-1].
2. Calculez la largeur de canal du filtre MMS. Égalisez-la à celle du filtre Hodrick-Prescott. Trouvez lambda.
3. Calculez la valeur du filtre Hodrick-Prescott à la dernière barre HP[0] et supposez que SMA[0] avec Close[-1] inconnu donne la même valeur.
4. Trouvez Close[-1] = 3*HP[0] - Close[0] - Close[1]
5. Augmentez la longueur de la MMS à 5. Répétez tous les calculs et trouvez Close[-2] = 5*HP[0] - Close[-1] - Close[0] - Close[1] - Close[2]. Continuez jusqu'à ce que le nombre spécifié de prix futurs FutBars soit calculé.
Méthode 2 :
1. Définissez la longueur de la MMS égale à 2*FutBars+1 et déplacez la MMS vers le passé de FutBars.
2. Calculez la largeur de canal du filtre MMS. Égalisez-la à celle du filtre Hodrick-Prescott. Trouvez lambda.
3. Calculez les valeurs du filtre Hodrick-Prescott aux derniers FutBars et supposez que la MMS se comporte de manière similaire lors de l'apparition de nouveaux prix.
4. Trouvez Close[-1] = (2*FutBars+1)*HP[FutBars-1] - Somme(Close[i], i=0..2*FutBars-1), Close[-2] = (2*FutBars+1)*HP[FutBars-2] - Somme(Close[i], i=-1..2*FutBars-2), etc.
L'indicateur propose les entrées suivantes :
Méthode - méthode de prédiction
LastBar - nombre de la dernière barre pour vérifier les prédictions sur les prix existants (LastBar >= 0)
PastBars - nombre de barres précédentes pour lesquelles le filtre Hodrick-Prescott est calculé (plus il y en a, mieux c'est, ou au moins PastBars>2*FutBars)
FutBars - nombre de valeurs futures prédites
L'indicateur met en surbrillance les valeurs prédites en rouge. La méthode 1 est utilisée dans l'exemple ci-dessous :
Méthode 2 :
La deuxième méthode est plus précise mais présente souvent de grandes variations pour le premier prix prédit. La méthode de prédiction décrite peut être améliorée en recherchant un filtre FIR avec un paramètre de fréquence plus proche de celui du filtre Hodrick-Prescott. Par exemple, vous pouvez essayer des filtres Hanning, Blackman, Kaiser, et d'autres filtres avec retard constant au lieu de la MMS.
L'auteur tient à remercier l'utilisateur Korey pour l'indicateur original du filtre Hodrick-Prescott publié dans la section Forum suivante (en russe) :
https://www.mql5.com/ru/forum/113677/page2
2009.01.15