Filtri digitali adattivi

 
Molti stanno usando il JMA e le sue modifiche, ma non si parla quasi mai dei presupposti teorici specifici su cui funziona. Se qualcuno lo sa, per favore lo condivida.
 

Ci sono molte informazioni su questo argomento, per esempio qui: http://prodav.narod.ru/dsp/index.html (sezione "adaptive digital filtering")


Chiedete anche a Prival, sembra essere l'unico esperto di DSP tra noi, penso che possa aiutarvi con la teoria.

PS: cos'è la JMA?

 

Mi piacerebbe aiutare. Ma purtroppo non posso leggere il codice MQL così liberamente come MathCad dove le formule sono scritte nel modo in cui siamo abituati a vederle nei libri. L'unica cosa che mi sembra (anche se non sono sicuro) è usare uno dei tipi di regressione, per rendere più chiaro

C'è una regressione lineare come y(x)=ax+b. Si possono calcolare i coefficienti a e b in modi diversi, si può usare ANC (sembra non essere usato lì), e si può usare la ricorsione, ma per capirlo è necessario capire chiaramente i cicli (mi confondo lì, dove, cosa, perché viene calcolato). Molto probabilmente c'è una regressione non lineare, perché ci sono alcuni if() mentre si calcola + tipo di equazione di regressione stessa non è chiaro, quanti coefficienti ci sono.

In generale, quasi tutti gli indicatori possono essere considerati come filtri digitali, il MA è un filtro digitale. La parola adattamento di solito significa che alcuni parametri (coefficienti nel budello del filtro) devono cambiare a seconda delle caratteristiche del segnale di ingresso. Quindi prima di tutto farei riferimento a AMA, FRAMA e filtri digitali adattivi simili (il parametro di media (n) cambia a seconda della stima della varianza del processo di input), quasi tutte le FFT, i filtri wavelet che usano l'elaborazione della soglia (cercando di abbinare i parametri TF con uno spettro del segnale desiderato in ingresso).

Ma SATL, FATL non sono adattivi, perché una volta in fase di progettazione sono stati calcolati i coefficienti TF, che hanno permesso di abbinare la risposta transitoria del filtro con uno spettro del segnale di ingresso (AFR e IFR) e durante il funzionamento questi coefficienti non cambiano. Questi sono i cosiddetti filtri abbinati. Ma c'è un ideale, quello che viene chiamato in DSP filtro ottimale, per costruire è difficile, ma possibile. Per questo è necessario conoscere gli spettri del segnale utile e del rumore.

Non so se ti ho aiutato o confuso :-), ma in ogni caso buona fortuna.

 
2 grasn - grazie mille per il link, il materiale è molto buono)

2 Prival - ho qualche esperienza con questo tipo di filtri digitali, ma sul principio della "teoria alla pratica" (filtro Kaufman), visivamente i risultati erano molto buoni, ma le statistiche non hanno mostrato particolari vantaggi. Le statistiche sono migliori in JMA perché ho aggiunto alcune soluzioni originali all'algoritmo, ed è quello che voglio capire. Ora dovrò smontare il codice sulla base della teoria e cercare le differenze))
 
NightPaul:

2 grasn - grazie mille per il link, il materiale è molto buono)

2 Prival - ho qualche esperienza con questo tipo di filtri digitali, ma sul principio della "teoria alla pratica" (filtro Kaufman), visivamente i risultati erano molto buoni, ma le statistiche non hanno mostrato particolari vantaggi. Le statistiche sono migliori in JMA perché ho aggiunto alcune soluzioni originali all'algoritmo, ed è quello che voglio capire. Ora dovrò smontare il codice sulla base della teoria e cercare le differenze ))

Provate a fare quanto segue: prendete AMA (Kaufman) come base, ma usate un modello di regressione invece di una media semplice. Forse sarà più facile in questo modo e tutto sarà più chiaro + farete il vostro codice. IHMO questa combinazione di metodi può essere buona.
 
Non è una cattiva opzione, comunque. Vi farò sapere quando ci saranno i risultati.
 
Prival, mi lasci riscrivere il codice in formule e mi spieghi.
 
Integer:
Prival, mi lasci riscrivere il codice in formule e mi spieghi.

Il codice di cosa, JMA. O devo scrivere formule come riscrivere JMA? Come mi dice la mia esperienza di programmazione, è meglio (e più veloce) scrivere il proprio codice che avere a che fare con quello di qualcun altro e scrivere lo stesso (o qualcosa di molto simile).
 

Colleghi, non consideratemi troppo fastidioso, ma cos'è la JMA? Ho provato a fare il mio filtro adattivo sulla base dell'algoritmo dei minimi quadrati di Widrow-Hopf, che sembra essere il più semplice. Dopo alcuni esperimenti ero sicuro al 300% che è impossibile fare un filtro adattivo per serie temporali di Forex, perché i miracoli non accadono, ci sono solo maghi. La ragione principale è un'enorme influenza dell'effetto di non stazionarietà: la superficie delle prestazioni del filtro cambia tutto il tempo, quindi i minimi di questa superficie cambiano, e anche il problema della convergenza dei coefficienti di ponderazione. Ma in generale - non sono un esperto, sono solo un autodidatta in DSP.

PS: se fai un filtro davvero adattivo, fammi dare un'occhiata :o)

 
2 Integer
Se non è troppo disturbo, sarebbe una buona idea smontare il codice JJMASeries da questo articolo 'Efficient averaging algorithms with minimum lag and their use in indicators'.

2 grash
Ecco cosa scrive l'autore stesso su JMA ) - http://www.jurikres.com/catalog/ms_ama.htm#top
Dato che tutto questo è in vendita si ottengono solo i codici smontati, come li capisco io stesso, ma voglio davvero capire qual è la parte difficile.

 

A proposito, c'è una leggera traccia sul filtro Kalman(Prival, è solo per te):

JMA esegue MEGLIO DI ALTRI METODI SOPRATTUTTO, tra cui ...

Filtri g, g-h, g-h-k di Kalman, con o senza memoria di dissolvenza
Filtri Savitzky-Golay, con o senza memoria di dissolvenza
Media mobile adattiva di Kaufman (KAMA)
Media dinamica dell'indice variabile di Chande (VIDYA)
Media mobile esponenziale doppia (DEMA)
Tripla media mobile esponenziale (T3)
Media mobile modificata di Brown (MMA)
Filtro ottico ellittico modificato di Ehler (MEF)
Filtro FIR pesato simmetricamente di Ehler
Media mobile di Hull (HMA)

P.S. A proposito, c'è un link al filtro di Kalman in fondo a questa pagina.

Motivazione: