Resonancia estocástica - página 26

 
Prival:

Así que la tarea se ha puesto de moda. Eso es bueno. Ahora trataré de expresar mis pensamientos. Si he escrito algo mal (o no es comprensible - dímelo).

grasn

  1. Sí, realmente hay un efecto de borde. Pero esa es la cuestión, a menudo se considera malo (interferir). ¿Y si hay "resonancia estocástica"? Supongamos esta variante: la dirección del movimiento del precio coincide con la dirección de la curva (resonancia), pero no coincide (no hay resonancia). ¿Quién lo ha comprobado? (Tal vez el Grial esté ahí tirado J). Tampoco se pueden descartar las distintas ventanas Henning, Hemming, Blackman, etc. (reduciendo este efecto).
  2. En cuanto al ruido, siempre tenemos una mezcla de señal+ruido. Y no tenemos ningún mecanismo para separarlo de la señal, mecánicamente (como en mi ejemplo, cerrando el receptor y midiendo su intensidad). Así que sugiero otra opción. Partir del concepto de energía. La energía de la señal mueve el mercado. La energía del ruido nos impide ver (aislar una señal útil).
  3. Cómo actuar
...

¿Qué quiere decir con atraparlo? Estamos discutiendo durante veinte páginas, si lo lees con atención (tómate tu tiempo). Buen resumen del procesamiento de señales, gracias, pero te recomiendo que lo dejes todo, si quieres hacer un trabajo fructífero sobre este tema, y lo sustituyas por un filtro digital de paso bajo normal de clase FIR o IIR, a menos que estés seguro de que ese filtro de paso bajo encontrará una señal verdadera.

En cuanto al ruido sería mejor seleccionar TODO en lugar de NOSOTROS, es más lógico, pero el efecto de los bordes se elimina mal con este enfoque, es un hecho, y por tanto no seleccionarás ningún ruido en los bordes, la propia señal será ruido.

PD: Como resultado se inventará un filtro mucho peor que el FATL. No te engañes, hacer un filtro adaptativo es todo un arte y los principios de su diseño son muy diferentes.

 
AAB:
Candid, esta obra describe la predicción del movimiento de los precios en términos de niveles potenciales, puede que te interese. La calidad no es buena, pero es una monolectura, además sólo hay cuatro páginas de fórmulas y gráficos.


Hmm, ¿no di un enlace al principio? :) Como dicen, deja que el pan fluya y volverá a ti :). Buen trabajo, en mi opinión.

Privado:

- construir un indicador


Recuerdo que cuando estaba probando la biblioteca de klot hice una especie de indicador. Sólo se debe ejecutar en el visualizador y esperar hasta que habrá suficientes barras para FFT. saltos hay claro de lo que, el número de frecuencias juega, si para aumentar el muestreo que se suavizan. Por supuesto, la biblioteca klot debe estar en su sitio (hay una en CodeBase).

Archivos adjuntos:
offtma_e.mq4  4 kb
 
lna01:

Hm, ¿no era ese el enlace que di al principio? :) Como dicen, pon el pan en el agua y volverá a ti :). Buen trabajo, en mi opinión.


Sí, estoy jodido, por lo menos firmar donde que de dónde y de cuya alimentación birlado, Vot t recordar después de leer que te gusta el artículo, y que dio el enlace y se olvidó, sí, recordar el pescado en Strugatsky dijo: "Mis años no son los mismos, madera vio ...". Pero toda nube tiene un lado positivo, la gente podría descargar este documento una vez más.
 

Atención a todos los interesados y espectadores.

Aquí está la solución al problema que les dirigí a todos ustedes hace unos días. En principio, no hay nada nuevo en ello. Simplemente implementé el programa, que describí en el último post sobre este tema. El sentido de exponerlo es simple: veo varias aplicaciones de este método, por lo que puede ser útil para alguien. También quiero "demostrar" la utilidad del enfoque teórico.

Así que el problema es sencillo. Existe una serie {X} de números aleatorios que obedecen a una determinada estadística. La estadística es no gaussiana porque los posibles valores de X pertenecen al intervalo [0,∞]. El punto X = 0, en general, puede no pertenecer a la población general. El número de miembros de la serie {X} es N, que es lo suficientemente grande como para dar cierta credibilidad a la distribución basada en los datos disponibles y otros parámetros estadísticos:

µ=M(X) es el valor medio de la serie {X}

D=M(X*X) - la varianza de la serie {X}

σ =√D - sesgo de la serie {X}

Como la serie disponible está acotada, todos sus elementos pertenecen al intervalo finito [Xmin,Xmax], Xmin>=0.

Construimos una media móvil Y con el periodo M sobre la serie disponible {X}. El método de promediación puede ser arbitrario. Como resultado obtenemos una nueva serie {Y}, cuyo número de miembros es obviamente N-M+1. El conjunto de series {Y} también pertenece a un intervalo finito. Denote por [Ymin,Ymax].

La cuestión es cómo calcular Ymin e Ymax a partir de las estadísticas y los parámetros de la serie {Y}. Al final escribiré para qué se puede utilizar.

El primer paso es construir una distribución analítica de la serie {X}. En el libro de Bulashev, sólo encontré una función de distribución, que tiene como área de definición [0,∞] la distribución lognormal. No voy a decir nada malo de él, pero no me convenía.

Dado que la estadística de mi serie (y de muchas otras) es tal que la densidad de probabilidad p(X) en X→0 y X→∞ tiende a 0, he asumido la siguiente forma general para p(X):

p(X)=A*(X^a)*exp(-B*(X^b)), donde a>0 y b>0

En consecuencia, la función de distribución integral se define como sigue: F(X)= ∫ p(ξ) dξ. Aquí y otros límites de integración de 0 a X están implícitos. Lamentablemente, el editor local no deja que los índices superiores e inferiores estén en el sitio. Hay que retorcerlo. Ciertamente, parece desordenado, pero no se puede evitar. ξ es sólo una variable de integración.

Para poder hacer algo con ella, hay que tomar esta integral en forma analítica. Integrando sobre las partes y utilizando el valor límite p(0)=0, se puede ver que

∫ (ξ^a)*exp(-B*(ξ^b)) dξ = -1/(B*b) * (X^(a-b+1))*exp(-B*(X^b)) + (a-b+1)/(B*b) *∫ (ξ^(a-b))*exp(-B*(ξ^b)) dξ

Es decir, el índice a del valor X cada vez disminuye en b. Si después de k pasos este exponente se hace igual a b-1, la integral se reduce a la tabular. Por lo tanto, podemos formular la condición de integralidad explícitamente:

a - k*b = b - 1, o a = (k+1)*b - 1, donde k>0 es un número entero.

Sin embargo, como todavía tenemos que calcular la media y la varianza, esta integrabilidad no es suficiente. Veamos qué se necesita para calcular explícitamente todos los momentos centrales de esta distribución. Obviamente µ = ∫X*p(X) dX (aquí integrando a ∞). Calculemos µ en función de µ(X), suponiendo que en la integral el límite superior es variable.

µ(X) = ∫ ξ ξ*A*(ξ^a)*exp(-B*(ξ^b)) dξ = ∫ A*(ξ^(a+1))*exp(-B*(ξ^b)) dξ

Es decir, es una integral del mismo tipo con exponente a1=a+1. Para la integrabilidad, a1 debe satisfacer la misma condición:

a1 = (k1+1)*b - 1, donde k1>0 es un número entero.

Comparando esto con la condición para a, obtenemos: b = 1/( k1 - k). Denotando n = k1 - k obtenemos finalmente una forma admisible del parámetro b: b = 1/n, donde n>0 es un número entero. Obsérvese también que debe cumplirse la relación 0<n<=k.

Teniendo en cuenta todo esto, podemos obtener de forma explícita no sólo la función de distribución integral F(X), sino también todos los momentos centrales de la distribución:

¡F(X) = 1 - exp(-Z)*∑ (Z^i)/i!

Ml(X) = (k+n*l)!/(k!*(B^(n*l)) ¡*{ 1 - exp(-Z)*∑ (Z^i)/i! }, donde Z = B*(X^(1/n)) .

La constante A que aparece en la función p(X) se calcula a partir de la condición de normalización y se contabiliza en estas expresiones. El signo de suma ∑ en la línea superior implica la suma sobre el índice i de 0 a k, y en la línea inferior - sobre i de 0 a k+n*l . El valor Ml es el momento central l-ésimo (no confundir l y 1).

Obsérvese que todas las funciones obtenidas giran a 0 cuando X=0, y tienen los siguientes límites cuando X→∞:

F(X→∞) = 1 (condición de normalización) y Ml(X→∞) = (k+n*l)!/(k!*(B^(n*l)).

Así obtenemos:

µ = M(X) = M1(X) = (k+n)!/(k!*(B^n))

D = M(X*X) = M2(X) = (k+2*n)!/(k!*(B^(2*n))

Ahora que todo está ahí para siempre, podemos volver a la serie original. La función de distribución final resultante p(X) contiene tres parámetros que pueden utilizarse para garantizar que p(X) reproduzca lo mejor posible las estadísticas de la serie {X} - B, k, n.

Por supuesto, podría encontrarlos por MNC, pero eso es aburrido. Lo he simplificado para mi serie. De las fórmulas anteriores se desprende que

D/µ^2 = (k+2*n)!*k!/((k+n)!)^2

Así, el valor de D/µ^2 es independiente de B. Como D y µ son conocidos para la serie {X}, sólo tenemos que elegir un par (n,k) que dé el valor más cercano. Acabo de construir una tabla sobre los posibles valores de los pares (n,k), y sólo he encontrado 4 adecuados: (2, 3), (3,8), (4,16) y (5,26). El valor de B se determina ahora de forma elemental a partir de las expresiones para D o µ.

Curiosamente, los valores (n,k) de los dos primeros pares (no comprobé los demás) dieron una excelente reproducibilidad de la curva de distribución experimental p(X). Al menos para mí esta calidad es excelente.

Se me ocurrió una pregunta interesante en el camino. Tal vez alguien pueda aclararme por qué una función de distribución tan sencilla y conveniente, con buenas propiedades, no se utiliza en estadística. Y si se utiliza, ¿por qué no se escribe sobre ello? Nunca he visto a nadie intentar aproximar una distribución incremental que no sea la lognormal.

 

La tercera etapa del ballet marlesiano implica el cálculo de unos límites X1 y X2.

La construcción de la serie Y = ∑ X está asociada al promedio de M valores de X. Es razonable suponer que se puede obtener Ymin (un mínimo teórico) si M de los valores más pequeños de X caen dentro de la media.

En el eje OX, M de los valores más pequeños del valor X ocupan el intervalo [0, X1] y M de los valores más grandes del valor X ocupan el intervalo [X2, ∞]. En realidad se trata de la definición de los valores X1 y X2 .

Dado que hay N elementos en la serie {X} en total, F(X1) = M/N y 1 - F(X2) = M/N .

La función F(X) se conoce en forma analítica, por lo que las ecuaciones anteriores para la determinación de X1 y X2 son ecuaciones analíticas, aunque trascendentales. Se puede aplicar cualquier método de iteración numérica para resolverlos. Dado que, como se puede ver en el gráfico siguiente, la función F(X) es monótona, se puede llegar rápidamente a los valores de F(X1) y F(X2) a partir del punto de inflexión utilizando el método de descenso de gradiente. Cuando se calcula con la máxima precisión que permite el MQL, 13-14 pasos y menos de un segundo de tiempo fueron suficientes para obtener los valores de X1 y X2 . El tiempo fue prácticamente el mismo para las parejas (2,3) y (3,8). Aun así, el MQL es algo bueno. (Qué matcad .... J)

Espero que quede claro dónde está p(X) y dónde está F(X).

Fig.1.

También sería interesante observar la dependencia de X1 y X2 de M, o más bien de la relación M/N. Pero lo dejaremos de lado por el momento, ya que no queda mucho tiempo. Nótese sólo que en el límite, cuando M→N, X1→∞ y X2→0 deben cumplirse. Y nos ocuparemos de la definición del objetivo final de toda esta historia, los valores Ymin e Ymax.

De hecho, ahora es muy sencillo. El intervalo [0, X1] da la posición de M menos X y [X2, ∞] da la posición de M más X. Nuestra tarea es determinar los dos valores promediados en ellos. Si el algoritmo de promediación no es trivial, el problema debe resolverse por separado para cada caso particular. Si corresponde a un MA simple, podemos utilizar las fórmulas:

Ymin = M(X1)/F(X1) e Ymax = (µ - M(X2))/(1 - F(X2)).

Estas fórmulas tienen un simple "significado físico", por lo que no entro a explicarlo. En su lugar, presentaré el gráfico de las dependencias Ymin e Ymax de los valores Х1 y Х2. Muestra Ymin en rojo e Ymax en azul. La línea horizontal en turquesa indica el valor de µ.

Como era de esperar, Ymin en X1→∞ e Ymax en X2→0 tienden ambos hacia µ, uno desde abajo y otro desde arriba.

Figura 2.

Ambas corresponden a M→N, lo que queda perfectamente claro en la gráfica de dependencia de X1 y X2 con el valor de M. ¿No lo he dado ya? Sí, lo hiciste. Este es el primero de los gráficos. Y de las dos curvas debes utilizar la curva F(X). Pero no hay que determinar F por X, sino al revés, hay que determinar X por F. Al hacerlo, también hay que mirar las ecuaciones de X1 y X2 y recordar que si M→N, entonces M/N→1.

Así resulta que cuando M/N aumenta con M, X1 aumenta (e Ymin aumenta con él) y X2 disminuye (Ymax disminuye con él). Pero siempre es Ymin< X1 e Ymax>X2 .

En mis cálculos obtuve que 1 - 3 - 5 valores de la serie {X}, dependiendo del valor de N, pueden sobrepasar el límite superior de X2 (el límite inferior en este sentido no tiene interés). Al mismo tiempo, el valor de Ymax nunca se supera. Lo cual es, en general, comprensible: el caso en que todos los valores M de X son mayores es excepcional. En cuanto a los valores de la serie {Y}, la probabilidad de que superen X2 es aún menor. Por no hablar de Ymax.

Así que tenemos dos estimaciones del rango de valores de {Y}, una dura y otra blanda. Podemos utilizar cualquiera de ellos, en función de los requisitos del problema.

PS

Lo siento. No puedo insertar imágenes. No en cualquier formato. El sitio debe tener un fallo.

 

Y por último, por qué es necesario todo esto.

Mientras estaba en ello, vi varias posibilidades de utilizarlo todo.

1. Normalización de todos los indicadores de AT conocidos, en particular - los osciladores. ¿Alguien ha prestado atención al hecho de que los osciladores sólo pueden utilizarse en un estrecho rango de sus períodos de suavización? A medida que el periodo disminuye, empieza a oscilar de un lado a otro, y a medida que aumenta, la amplitud disminuye tanto que no alcanza los niveles. Ejemplo de un RSI favorito a continuación. Dos variaciones para los dos períodos 14 y 30. Si confía en la segunda, puede que no opere en absoluto. Los niveles 70/30 se alcanzan muy raramente. O bien, estos niveles deben optimizarse de nuevo para cada periodo.

Fig.3.

Los indicadores de AT no dependen prácticamente de t/f, según tengo entendido, es una peculiaridad de sus estadísticas. Pero aquí, si se resolviera el problema del alisado, tal vez se podría obtener algo nuevo de ellos. Con este procedimiento de normalización estocástica creo que es muy posible.

2. Mi problema personal fue que la difusión de la serie depende significativamente de N. ¿Cómo podría ser si no, que Hurst sufriera por nada? :-))

Ahora puedo llevar todo a un estándar universal, en el que ni el cambio a otro t/f, ni el cambio del periodo de suavizado afectará al rango de los valores de la serie. Esto permite utilizar los mismos niveles de entrada/salida para todos los demás valores de los parámetros. La optimización tiene sentido en estas condiciones. Al optimizar en una t/f, puedo comprobar la rentabilidad de la estrategia en otra. Si persiste, significa que la estrategia realmente funciona. Si no lo hace, se descarta.

Quizá le sirva a alguien más.

3. Hasta ahora nadie ha conseguido normalizar el gráfico de precios directamente. Pero sería bueno hacerlo. No nos interesa el valor absoluto, sino sus fluctuaciones. Tal vez consigamos hacerlo así. Aquellos que lo deseen pueden probarlo.

4. En las redes neuronales, de las que no sé nada, es necesario normalizar los datos. Salir del rango condicional lleva a la pérdida del neuromouse.

Quizá esta forma de normalización resulte más útil en algunos casos que la que se utiliza actualmente.

Eso es todo. Se acepta la crítica en cualquier forma.

PS

Intencionadamente no he publicado ningún código o muestra de código. El algoritmo no está descrito en detalle, pero sí muy detallado. Es fácil de entender. Si quieres, por supuesto.

Animo a la comunidad a seguir mi ejemplo.

Las razones son las siguientes.

Este pastel no está listo para el consumo. No es una solución definitiva, sino un método. Cualquier uso de este método en tareas privadas seguirá dejándolas como tareas privadas. Aquellos que, sin molestarse en entenderlo y utilizarlo de forma significativa para sí mismos, se apresurarán a utilizar las soluciones de otros, serán engañados, habrán perdido tiempo y posiblemente dinero.

Para utilizar este método correctamente, es necesario

1. Formule lo que es su serie {X}.

2. Formarlo correctamente con un procedimiento adecuado.

Examinar sus estadísticas, calcular los parámetros estadísticos.

Explora la correspondencia de las estadísticas de esta serie en diferentes t/fs.

5. Encuentre el par estadístico apropiado k,n.

6. Calcular el parámetro B.

7. Construir una función de distribución modelo p(X) y compararla con la experimental. El uso posterior de este método sólo será correcto si el ajuste del modelo y el experimento son satisfactorios. Y para ello es necesario tener un criterio de estimación.

8. Y por último, también es necesario poder utilizar correctamente los Ymin e Ymax obtenidos. No es tan fácil como parece. :-)

Así que, compañeros programadores, no sólo eviten fomentar las gratuidades, sino también den a los demás una oportunidad, una oportunidad de mostrar iniciativa y resolver algo por sí mismos.

Un programador no es el que programa todo lo que tiene a su alcance.

Al igual que un hombre no es alguien que bebe todo lo que arde y come... todo lo que se mueve.

 
Lo investigaremos, gracias, y por favor sube las fotos y pégalas usando "Adjuntar archivo".
 

Espero que sea una medida temporal. En cuanto funcione bien, pondré las fotos donde corresponde.

PS

Por desgracia, ni siquiera eso se pone de moda.

Moderadores, ¡¡¡HOOOOOOOOOOOOOOO!!! Arregla el sitio, por favor. No hay imagen para adjuntar, no hay archivo ...

 

a Yurixx

Sorprendente, en lugar de limitarse a observar la dispersión de la serie de medias móviles resultante, hemos llegado tranquilamente a una estimación teórica, y por descenso de gradiente, basada en una distribución no probada. ¡Eso es teóricamente genial!

Vale, no me lo creo todavía, después de un viaje de negocios a la gloriosa ciudad de Kurgan, lo releeré de nuevo. :о)))

PD: Recordé un caso de mi vida casi científica. Llegué a mi jefe con un largo rollo de fórmulas derivadas, después de mirarlo, me dijo que no había errores, pero que podía ser más sencillo. A este comentario respondí con orgullo "no buscamos caminos fáciles", a lo que él respondió inmediatamente "por eso no lo encuentras".

 
grasn:

a Yurixx

Sorprendente, en lugar de limitarse a observar la dispersión de la serie de medias móviles resultante, hemos llegado tranquilamente a una estimación teórica, y por descenso de gradiente, basada en una distribución no probada. ¡Eso es teóricamente genial!

En mi opinión, es más sencillo que eso. Un pequeño trozo de código que calcula los coeficientes de normalización en función de los parámetros t/f y de promediación está incrustado en el indicador o asesor init(). Funciona. ¿Cómo puede hacerlo en el Campeonato si el Asesor Experto no está en su ordenador y el historial está cargado en el volumen desconocido?

Pero eso es una cuestión trivial. Tengo una pregunta más seria. ¿Hay que recalcular estos ratios cada vez que se cambia un símbolo, t/f, etc., a mano o con Matkad :-)? ? ¿No te cansas de ello? ¿O crear una base de datos para todos los símbolos, t/f, parámetros de suavizado, etc.? ? :-)

Hay un punto más, el más importante. Pero si no te has dado cuenta, da igual. :-)))

Por cierto, lo de "distribución no probada", dado que no se conoce ninguna distribución de ningún valor en forex (sólo se sabe que no es normal) es ridículo. Es un buen chiste.