Teoría de los flujos aleatorios y FOREX - página 17

 

Aquí está el AKF, échale un vistazo. Sólo hay que asegurarse de que cuenta correctamente. Compruébalo.

Archivos adjuntos:
akf_01.mq4  7 kb
 
Prival:

Aquí está el AKF, échale un vistazo. Sólo hay que asegurarse de que cuenta correctamente. Compruébalo.


El cálculo del ACF en sí se hace por definición y esto es correcto para empezar - el código es simple y transparente. Pero sería interesante comparar la velocidad si se calcula mediante FFT. Por cierto, este código también se presta a una aceleración notable.
 
lna01:
Privado:

Aquí está el AKF, échale un vistazo. Sólo hay que asegurarse de que cuenta correctamente. Compruébalo.


El cálculo del ACF en sí mismo se hace por definición y esto es correcto para empezar - el código es simple y transparente. Pero sería interesante comparar la velocidad si se calcula mediante FFT. Por cierto, este código también se presta a una notable aceleración.


A través de la FFT no será exacta, en el gráfico de la 8ª página ('Teoría del flujo aleatorio y FOREX'), la línea roja es ACF por fórmula, la línea azul es simétrica alrededor del centro. Sin embargo, puede que haya hecho algo mal (el propio archivo se adjunta en la misma página anterior). lna01 Me puedes decir como se construye correctamente el ACF usando la FFT, lo hice de memoria, tal vez me equivoqué.

FFT directa -> módulo+ ^2 -> FFT inversa -> extracción de la parte real Re() -> normalización

 
Prival:

Aquí está el AKF, échale un vistazo. Sólo hay que asegurarse de que cuenta correctamente. Compruébalo.

¿No lo comparaste con matcad? He hecho especialmente WriteToFile para comprobarlo ;)
 
lna01:
Pero sería interesante comparar la velocidad si se cuenta a través de FFT.
En la primera variante también existía el método vía FFT - es realmente varios órdenes de magnitud más rápido. Lo abandonamos por su dudosa exactitud.

lna01:
Por cierto, este código también se presta a una notable aceleración.
Estoy de acuerdo, el código puede ser optimizado. Pero todavía no es una cuestión de velocidad, así que no quiero hacerlo.
 
2 Prival , komposter:

El ACF a través de fft era simétrico, probablemente debido a la suscripción de ceros. Y la precisión es cuestionable por alguna razón.



Pero algo me parece que el cálculo frontal potenciado en tiempo real debería ser más rápido que la versión fft. Sin embargo, la cantidad total estimada de cálculos sigue siendo muy confusa. En particular, la arbitrariedad en la elección de la longitud de la regresión lineal ya es cuestionable en esta fase. Un problema similar para los canales de regresión lineal sigue siendo un problema en general. De hecho, ya escribí sobre ello anteriormente en este hilo.
 

Sí, hay más preguntas que respuestas. Pero se está poniendo interesante.

1. Se supone que el coeficiente de correlación no debe ser mayor que 1, pero lo es.

2. ¿Por qué a*x+b, Prival? ¿Es así como quieres desdiferenciar el gráfico? Hay otras formas que son más precisas. Por ejemplo, la regresión lineal (el análogo de mach, pero tiene un desfase menor). Al deducir el valor LR actual del precio, nos deshacemos perfectamente de las tendencias, incluidas las no lineales.

Podemos tomar simplemente la primera diferencia de precios (es decir, formar una serie de rendimientos), pero eso elimina sólo los componentes lineales de las tendencias. Si tomamos la segunda diferencia, eliminamos también los cuadráticos, etc.

Si se quiere eliminar el retardo (pero se quiere retroceder en la historia), entonces se puede hacer algo como el MA de Fourier, es decir, basado en la transformada de Fourier y el rechazo de las altas frecuencias. Klot también tiene esto.

 
Mathemat:

1. Se supone que el coeficiente de correlación no debe ser mayor que 1, pero lo es.

Si hablamos de la imagen con fft, entonces por alguna razón el primer elemento se sale de la serie, y es el que se utiliza para la normalización. No he intentado averiguar qué es a partir de las imágenes dadas en el post.
 
Tenga cuidado con la FFT: tnn (o nl en el cuerpo) debe ser una potencia de dos, es decir, 2^n, donde n es un número entero.
 
rsi:
Hay que tener más cuidado con la FFT: tnn (o nl en el cuerpo) debe ser un grado de dos, es decir, 2^n, donde n es un número entero.
En este sentido todo está bien, pero he perdido elementos extraños de la densidad espectral :). Así que no hay problema con fft, voy a reemplazar la fuente en ese puesto ahora.


P.D. He eliminado el código fuente erróneo y lo he colocado aquí.

P.P.S. Por si acaso, más detalles sobre el manejo de los datos: El tamaño del array original debe aumentarse 2 veces, y luego volver a aumentarlo al grado más cercano de dos. Todas las celdas añadidas deben escribirse en ceros. La matriz de densidad espectral para el fft inverso también debería tener un tamaño ampliado; los cuadrados de la amplitud deberían escribirse en las celdas para los componentes reales, y (naturalmente) los ceros deberían escribirse en las celdas para los imaginarios. Como resultado, tomamos los elementos desde el principio hasta el tamaño original del array.
2 Prival: No sé cómo reproducir esto exactamente en Matkadec, el ensayo y error debería ayudar al final. El ACF debe coincidir con una precisión razonable.
Archivos adjuntos:
akf_01_fft.mq4  13 kb