Indicadores: FIR_filter

 

FIR_filter:

Media Móvil, calculada usando un filtro digital.

FIR_filter

Autor: Vladimir

 
¿Y por qué es tan exacto el número PI?
 

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

No lo he pensado mucho. Es fácil encontrar cualquier constante de alta precisión en google. Supongo que si metatradair no necesita una precisión tan alta, determinará automáticamente cuántos decimales descartar.
 

¿Está seguro de que la fórmula es correcta? Por favor, compárela con estos http://dspsystem.narod.ru/add/win/win.html

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

En cuanto a la terminología, lo siento, no cambias coeficientes de filtro, sino coeficientes de ventana. Son cosas diferentes. En tu ejemplo el filtro digital (DF) es una media móvil (MA), y ésta (MA) se puede utilizar con cualquier ventana (en el enlace anterior se da una pequeña parte de ellas). Cada ventana, y hay muchas, sirve para un propósito específico. Normalmente mejora alguna propiedad del DF, pero hay que pagar por ello, nada se da gratis, se introducen distorsiones en el espectro de salida.

En cuanto a la precisión de Pi, la precisión nunca es innecesaria. Siempre tendremos tiempo para cargar el resultado. Aquí es una manera simple de establecer que https://www.mql5.com/es/code/8309.

Es una solución muy agradable.

 pi = 4*MathArctan(1);
 
Prival:

En cuanto a la exactitud de pi, la exactitud nunca es innecesaria. Siempre podemos cargar el resultado. He aquí una forma sencilla de establecerlo https://www.mql5.com/es/code/8309.

No debes definir pi como una variable. Que sea una constante.

Pero tampoco necesitas caracteres extra. Para double sabemos el número de caracteres que se pueden almacenar.

 
lea:

No debes definir pi como una variable. Es mejor que sea una constante.

Pero tampoco necesitas caracteres adicionales. Para double, sabemos el número de caracteres que se pueden almacenar.

estás equivocado. perdí 2 semanas de mi tiempo simplemente porque pi no estaba definido con la máxima precisión. comprobé la construcción del espectro obtenida en matkad con la realizada usando la librería FFT https://www.mql5.com/es/code/9696.
 
Prival:

¿Está seguro de que la fórmula es correcta? Por favor, compárela con estas http://dspsystem.narod.ru/add/win/win.html

En cuanto a la terminología, lo siento, no cambias coeficientes de filtro, sino coeficientes de ventana. Son cosas diferentes. En tu ejemplo el filtro digital (DF) es una media móvil (MA), y ésta (MA) se puede utilizar con cualquier ventana (en el enlace anterior se da una pequeña parte de ellas). Cada ventana, y hay muchas, sirve para un propósito específico. Normalmente mejora alguna propiedad del DF, pero hay que pagar por ello, nada se da gratis, se introducen distorsiones en el espectro de salida.

Existen diferentes fórmulas para la ventana de Hahn y otras ventanas similares. Si lo piensas bien, todas son idénticas. La fórmula de tu enlace tiene un gran inconveniente: valores de ventana nulos en n=0 y n=N-1. Como no tiene sentido multiplicar los precios por ceros, resulta que la ventana sólo existe para precios con n=1...n=N-2. Denotemos ahora el número de precios para los que la ventana no es igual a cero mediante Per, como he hecho yo, entonces obtenemos N-2=Per o N=Per+2. Sustituye este N en la fórmula de Hahn de tu enlace y obtendrás la misma fórmula que la mía.

Sobre el nombre del indicador, el nombre es correcto. Por definición, lo que he construido es un filtro digital con respuesta al impulso finita

La ecuación de diferencia que define la salida de un filtro FIR en términos de su entrada es:

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

donde

  • x[n ] es la señal de entrada,
  • y[n] es la señal de salida,
  • bi son los coeficientes del filtro, y
  • N es el orden del filtro

Véase aquí http://en.wikipedia.org/wiki/Finite_impulse_response

Llevo 21 años en la electrónica. Sé que estas cosas. Gracias siempre por los comentarios sin embargo. Es agradable hablar con gente bien informada.

 
gpwr:

Existen diferentes fórmulas para la ventana Hahn y otras ventanas similares. Si lo piensas bien, todas son idénticas. La fórmula de tu enlace tiene un gran inconveniente: valores cero de la ventana en n=0 y n=N-1. Como no tiene sentido multiplicar los precios por ceros, resulta que la ventana sólo existe para precios con n=1...n=N-2. Denotemos ahora el número de precios para los que la ventana no es igual a cero mediante Per, como he hecho yo, entonces obtenemos N-2=Per o N=Per+2. Sustituye este N en la fórmula de Hahn de tu enlace y obtendrás la misma fórmula que la mía.

....

Gracias por el enlace de wikipedia. Intentaré demostrar con fórmulas, lo que tú has hecho.

Para tu caso sería más exacto escribir esta fórmula de la siguiente manera

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

x[n] es la señal de entrada,

y[n] es la señal de salida,

bi son los coeficientes del filtro, y

а[i] son los coeficientes de la ventana ,

N es el orden del filtro

Es decir, has convolucionado los coeficientes DF(b) y los coeficientes de ventana(a).

Sí, tienes razón en que existen diferentes fórmulas para escribir las funciones de ventana. Pero esta diferencia se debe al hecho de en qué dominio se realiza la convolución, en el dominio de la frecuencia o del tiempo. Y estas fórmulas están unidas rígidamente por la transformada de Fourier http://ru.wikipedia.org/wiki/Оконное_преобразование_Фурье.

Aunque las fórmulas son similares, nunca se debe confundir en qué dominio se realiza la convolución, de lo contrario se obtiene un abracodabra.

Ahora sobre n. En la fórmula, es realmente importante determinar si empieza en 0 o en 1 ("...la ventana sólo existe para precios con n=1.....n=N), si se desplaza en 1, entonces todo se desplaza y N-1, pasa a ser N, no N-2

La fórmula exacta de la ventana de Hahn es la siguiente

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

Para los que quieran profundizar un poco más en este tema adjunto un archivo con una conferencia.

Para los traders

Intentaré explicar de qué estamos hablando utilizando un ejemplo que todos conocéis.

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

Todo el mundo lo sabe:

(a) Media móvil simple (SMA).

Su ventana es rectangular, es decir, cada valor de precio tiene el mismo peso a[i]= 1, independientemente de la profundidad de la historia.

b) Media móvil ponderada lineal (LWMA)

En una media móvil ponderada, se da más peso a los datos más recientes y menos a los anteriores.

Es decir, los coeficientes de ventana a[1]=1, a[2]=1/2,a[3]=1/3 .... a[n]=1/n

SO. gpwr también encantado de comunicarse, un ingeniero de radio siempre encontrará un lenguaje común con un ingeniero electrónico, sobre todo si ambos no son nuevos en este negocio y hablan un idioma universal: el lenguaje de las matemáticas.

Archivos adjuntos:
dsp.rar  1811 kb
 

sólo hay 3 indicadores - precio, precio de cierre y media móvil simple