Indicatori: Filtro_FIR

 

Filtro_FIR:

Media mobile basata su un filtro digitale.

Filtro_FIR

Author: Vladimir

 
E perché il numero di PI è così preciso?
 

DC2008:
А зачем такая точность числа ПИ? 

Non ci ho pensato molto. È facile trovare qualsiasi costante ad alta precisione su Google. Suppongo che se metatradair non ha bisogno di una precisione così elevata, determinerà automaticamente il numero di cifre decimali da scartare.
 

Siete sicuri che la formula sia corretta? Confrontatela con questi http://dspsystem.narod.ru/add/win/win.html

Скользящая средняя на основе цифрового фильтра. В данном примере используется Hann Window. Для изменения коэффициентов фильтра, редактируйте следующие строки в OnInit():

Per quanto riguarda la terminologia, mi dispiace, non si cambiano i coefficienti di filtro, ma i coefficienti di finestra. Sono cose diverse. Nel vostro esempio il filtro digitale (DF) è una media mobile (MA), e questa (MA) può essere utilizzata con qualsiasi finestra (una piccola parte di esse è riportata nel link sopra). Ogni finestra, e ce ne sono molte, ha uno scopo specifico. Di solito migliora qualche proprietà del DF, ma bisogna pagare per questo, nulla è dato per nulla, vengono introdotte distorsioni nello spettro di uscita.

Per quanto riguarda la precisione del Pi, la precisione non è mai inutile. Abbiamo sempre il tempo di caricare il risultato. Ecco un modo semplice per impostarlo https://www.mql5.com/ru/code/8309.

È una soluzione molto bella.

 pi = 4*MathArctan(1);
 
Prival:

Per quanto riguarda la precisione del pi greco, la precisione non è mai inutile. Possiamo sempre caricare il risultato. Ecco un modo semplice per impostarlo https://www.mql5.com/ru/code/8309.

Non si deve definire pi greco come una variabile. Lasciate che sia una costante.

Ma non servono nemmeno caratteri aggiuntivi. Per il doppio conosciamo il numero di caratteri che possono essere memorizzati.

 
lea:

Non si dovrebbe definire il pi greco come una variabile. È meglio che sia una costante.

Ma non servono nemmeno caratteri in più. Per il doppio, conosciamo il numero di caratteri che possono essere memorizzati.

Ti sbagli. Ho perso 2 settimane di tempo semplicemente perché pi greco non era definito con la massima precisione. Ho controllato la costruzione dello spettro ottenuta in matkad con quella fatta usando la libreria FFT https://www.mql5.com/ru/code/9696.
 
Prival:

Siete sicuri che la formula sia corretta? Confrontatela con questi http://dspsystem.narod.ru/add/win/win.html

Per quanto riguarda la terminologia, mi dispiace, non si cambiano i coefficienti di filtro, ma i coefficienti di finestra. Sono cose diverse. Nel vostro esempio il filtro digitale (DF) è una media mobile (MA), e questa (MA) può essere utilizzata con qualsiasi finestra (una piccola parte di esse è riportata nel link sopra). Ogni finestra, e ce ne sono molte, ha uno scopo specifico. Di solito migliora qualche proprietà del DF, ma bisogna pagare per questo, nulla è dato per nulla, vengono introdotte distorsioni nello spettro di uscita.

Esistono diverse formule per la finestra di Hahn e altre finestre simili. Se ci pensate bene, sono tutte identiche. La formula riportata nel vostro link ha un grosso inconveniente: i valori della finestra sono nulli a n=0 e n=N-1. Poiché non ha senso moltiplicare i prezzi per gli zeri, si scopre che la finestra esiste solo per i prezzi con n=1...n=N-2. Ora denotiamo il numero di prezzi per i quali la finestra non è uguale a zero attraverso Per, come ho fatto io, quindi otteniamo N-2=Per o N=Per+2. Sostituendo questo N nella formula di Hahn riportata nel vostro link, otterrete la stessa formula del mio.

Per quanto riguarda il nome dell'indicatore, il nome è giusto. Per definizione, quello che ho costruito è un filtro digitale con risposta all'impulso finita.

L'equazione di differenza che definisce l'uscita di un filtro FIR in termini di ingresso è:

y[n]=b_0 x[n] + b_1 x[n-1] + ... + b_N x[n-N]

dove:

  • x[n] è il segnale di ingresso,
  • y[n] è il segnale di uscita,
  • bi sono i coefficienti del filtro e
  • N è l'ordine del filtro
  • .

Vedere qui http://en.wikipedia.org/wiki/Finite_impulse_response

Mi occupo di elettronica da 21 anni. Grazie sempre per i commenti. È bello parlare con persone competenti.

 
gpwr:

Esistono diverse formule per la finestra Hanna e per altre finestre simili. Se ci pensate, sono tutte identiche. La formula riportata nel vostro link ha un grosso svantaggio: i valori nulli della finestra a n=0 e n=N-1. Poiché non ha senso moltiplicare i prezzi per gli zeri, si scopre che la finestra esiste solo per prezzi con n=1...n=N-2. Ora denotiamo il numero di prezzi per i quali la finestra non è uguale a zero attraverso Per, come ho fatto io, quindi otteniamo N-2=Per o N=Per+2. Sostituendo questo N nella formula di Hahn riportata nel vostro link, otterrete la stessa formula della mia.

....

Grazie per il link di wikipedia. Cercherò di mostrare con le formule, quello che hai fatto tu.

Nel tuo caso sarebbe più corretto scrivere la formula come segue

y[n]=a_0*b_0* x[n] +a_1*b_1* x[n-1] + ... + a_N*b_N* x[n-N]

x[n] è il segnale di ingresso,

y[n] è il segnale di uscita,

bi sono i coefficienti del filtro e

а[i] sono i coefficienti della finestra ,

N è l'ordine del filtro

In altre parole, avete convoluto i coefficienti del DF(b) e i coefficienti della finestra(a).

Sì, è vero che esistono formule diverse per scrivere le funzioni di finestra, ma questa differenza è dovuta al dominio in cui viene eseguita la convoluzione, nel dominio della frequenza o del tempo. E queste formule sono rigidamente legate dalla trasformata di Fourier http://ru.wikipedia.org/wiki/Оконное_преобразование_Фурье.

Anche se le formule sono simili, non bisogna mai confondere in quale dominio viene eseguita la convoluzione, altrimenti si ottiene un abracodabra.

Ora parliamo di n. Nella formula è molto importante stabilire se inizia da 0 o da 1 ("...la finestra esiste solo per prezzi con n=1.....n=N), se si sposta di 1, allora tutto si sposta e N-1 diventa N, non N-2.

La formula esatta della finestra di Hahn è la seguente

p(t) = 0,5[1+cos(pi*t/tac)].

Per chi volesse approfondire l'argomento, ho allegato un file con una lezione.

Per i trader

Cercherò di spiegare di cosa stiamo parlando utilizzando un esempio che tutti conoscete.

https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma

Tutti conoscono:

(a) la media mobile semplice (SMA).

La sua finestra è rettangolare, cioè ogni valore di prezzo ha lo stesso peso a[i]= 1, indipendentemente dalla profondità della storia.

b) Media mobile ponderata lineare (LWMA)

In una media mobile ponderata, ai dati più recenti viene attribuito un peso maggiore e ai dati precedenti un peso minore.

Cioè i coefficienti della finestra a[1]=1, a[2]=1/2,a[3]=1/3 .... a[n]=1/n

SO. gpwr Un ingegnere radiofonico troverà sempre un linguaggio comune con un ingegnere elettronico, soprattutto se entrambi non sono alle prime armi e parlano un linguaggio universale, quello della matematica.

File:
dsp.rar  1811 kb
 

Ci sono solo 3 indicatori: prezzo, prezzo di chiusura e media mobile semplice.