Filtres numériques adaptatifs

 
De nombreuses personnes utilisent aujourd'hui la JMA et ses modifications, mais il n'y a pratiquement aucune mention des hypothèses théoriques spécifiques sur lesquelles elle fonctionne. Si quelqu'un le sait, merci de le partager.
 

Il existe de nombreuses informations sur ce sujet, par exemple ici : http://prodav.narod.ru/dsp/index.html (section "adaptive digital filtering").


Demandez aussi à Prival, il semble être le seul expert en DSP parmi nous, je pense qu'il peut vous aider avec la théorie.

PS : qu'est-ce que le JMA ?

 

J'aimerais beaucoup vous aider. Mais malheureusement, je ne peux pas lire le code MQL aussi librement que MathCad où les formules sont écrites comme nous avons l'habitude de les voir dans les livres. La seule chose qui me semble (bien que je n'en sois pas sûr) est d'utiliser un des types de régression, pour rendre les choses plus claires

Il existe une régression linéaire du type y(x)=ax+b. Vous pouvez calculer les coefficients a et b de différentes manières, vous pouvez utiliser l'ANC (qui ne semble pas être utilisé ici), et vous pouvez utiliser la récursion, mais pour le comprendre, vous devez comprendre clairement les boucles (je m'y perds, où, quoi, pourquoi est calculé). Très probablement, il s'agit d'une régression non linéaire, car il y a quelques if() tout en calculant + type d'équation de régression lui-même n'est pas clair, combien de coefficients il y a.

En général, presque tous les indicateurs peuvent être considérés comme des filtres numériques, le MA est un filtre numérique. Le mot adaptation signifie généralement que certains paramètres (coefficients du filtre en boyau) doivent être modifiés en fonction des caractéristiques du signal d'entrée. C'est pourquoi je me réfère tout d'abord aux filtres numériques adaptatifs AMA, FRAMA et similaires (le paramètre de moyennage (n) change en fonction de l'estimation de la variance du processus d'entrée), à presque tous les filtres FFT, ondelettes qui utilisent un traitement à seuil (en essayant de faire correspondre les paramètres TF avec un spectre du signal d'entrée souhaité).

Mais les SATL et FATL ne sont pas adaptatifs, parce qu'une fois à l'étape de la conception, les coefficients TF ont été calculés, ce qui a permis de faire correspondre la réponse transitoire du filtre avec un spectre du signal d'entrée (AFR et IFR) et pendant le fonctionnement, ces coefficients ne changent pas. Il s'agit de ce que l'on appelle des filtres appariés. Mais il existe un filtre idéal, ce qu'on appelle en DSP le filtre optimal, sa construction est difficile, mais possible. Pour cela, vous devez connaître les spectres du signal utile et du bruit.

Je ne sais pas si je vous ai aidé ou si je vous ai dérouté :-), mais en tout cas bonne chance.

 
2 grasn - merci beaucoup pour le lien, le matériel est très bon)

2 Prival - j'ai une certaine expérience avec ce genre de filtres numériques, mais sur le principe de "la théorie à la pratique" (filtre de Kaufman), visuellement les résultats étaient très bons, mais les statistiques ne montraient pas d'avantages particuliers. Les statistiques sont meilleures dans JMA parce que j'ai ajouté des solutions originales à l'algorithme, et c'est ce que je veux comprendre. Maintenant, je vais devoir démonter le code sur la base de la théorie et chercher les différences ;))
 
NightPaul:

2 grasn - merci beaucoup pour le lien, le matériel est très bon)

2 Prival - j'ai une certaine expérience avec ce genre de filtres numériques, mais sur le principe de "la théorie à la pratique" (filtre de Kaufman), visuellement les résultats étaient très bons, mais les statistiques ne montraient pas d'avantages particuliers. Les statistiques sont meilleures dans JMA parce que j'ai ajouté des solutions originales à l'algorithme, et c'est ce que je veux comprendre. Maintenant je vais devoir démonter le code sur la base de la théorie et chercher les différences ;))

Essayez de faire ce qui suit : prenez AMA (Kaufman) comme base, mais utilisez un modèle de régression au lieu d'une simple moyenne. Peut-être que ce sera plus facile de cette façon et que tout sera plus clair + vous ferez votre propre code. IHMO cette combinaison de méthodes peut être bonne.
 
Ce n'est pas une mauvaise option, d'ailleurs. Je vous ferai savoir quand les résultats seront connus.
 
Prival, laissez-moi réécrire le code en formules et vous expliquerez.
 
Integer:
Prival, laissez-moi réécrire le code en formules et vous expliquerez.

Le code de quoi, JMA. Ou dois-je écrire des formules pour réécrire JMA ? Comme mon expérience de la programmation me le dit, il est préférable (et plus rapide) d'écrire son propre code que de s'occuper de celui de quelqu'un d'autre et d'écrire le même (ou quelque chose de très similaire).
 

Chers collègues, ne me considérez pas comme trop ennuyeux, mais qu'est-ce que l'AGC ? J'ai essayé de créer mon propre filtre adaptatif sur la base de l'algorithme des moindres carrés de Widrow-Hopf, qui semble être le plus simple. Après quelques expériences, j'étais sûr à 300% qu'il est impossible de faire un filtre adaptatif pour les séries temporelles du Forex, car les miracles ne se produisent pas, il n'y a que des magiciens. La raison principale est l'influence considérable de l'effet de non-stationnarité : la surface de la performance du filtre change tout le temps, donc les minima de cette surface changent, et aussi le problème de convergence des coefficients de pondération. Mais en général - je ne suis pas un expert, je suis juste autodidacte en DSP.

PS : Si vous faites un filtre vraiment adaptatif, laissez-moi y jeter un coup d'oeil :o)

 
2 Integer
Si ce n'est pas trop difficile, il serait bon de démonter le code JJMASeries de cet article 'Efficient averaging algorithms with minimum lag and their use in indicators'.

2 grash
Voici ce que l'auteur lui-même écrit sur JMA ) - http://www.jurikres.com/catalog/ms_ama.htm#top
Comme tout cela est à vendre, nous ne recevons que les codes démontés, tels que je les comprends moi-même, mais je veux vraiment comprendre la partie délicate.

 

Il y a d'ailleurs un petit article sur le filtre de Kalman(Prival, c'est pour toi) :

Le JMA donne de meilleurs résultats que les autres méthodes sOPHISTICATIVES, y compris ...

lesfiltres g, g-h, g-h-k de Kalman, avec ou sans mémoire d'évanouissement
Filtres Savitzky-Golay, avec ou sans mémoire d'évanouissement
Moyenne mobile adaptative de Kaufman (KAMA)
Moyenne dynamique de l'indice variable de Chande (VIDYA)
Moyenne mobile double exponentielle (DEMA)
Moyenne mobile exponentielle triple (T3)
Moyenne mobile modifiée de Brown (MMA)
Le filtre optique elliptique modifié d'Ehler (MEF)
Filtre FIR à pondération symétrique d'Ehler
Moyenne mobile de Hull (HMA)

P.S. Au fait, il y a un lien vers le filtre de Kalman au bas de cette page.