Cálculo de diferencias, ejemplos. - página 5

 
Aleksey Panfilov:

Sobre el tema de Fourier, es un tema rico. Si hay interés, tocaremos el tema periódicamente.

Lo más probable es que los principales problemas surjan con el planteamiento del problema (debido a un método diferente). Ahora, según tengo entendido, el indicador selecciona las frecuencias de mayor amplitud del espectro de Fourier.

Se me ocurrió atornillar un indicador deFourier a una línea polinómica ya promediada. Sospecho que sus lecturas extrapoladas cambiarían más lentamente.


En general, estás pensando en la dirección correcta.

Las extrapolaciones por métodos polinómicos y de Fourier son de naturaleza completamente diferente. La extrapolación de Fourier sólo puede aplicarse a un mercado plano debido a su naturaleza periódica (esta línea es una suma de sinusoides de diferente frecuencia, fase y amplitud), y siempre tiende a retroceder.

Mientras que la extrapolación polinómica, por el contrario, es buena para la tendencia porque sigue intentando "volar" hacia abajo o hacia arriba debido a su naturaleza escalonada.
Por lo tanto, es muy sensato combinar los dos métodos. Por supuesto, no te saldrás con la tuya con una simple suma. Pero tengo una idea clara de cuál es la mejor manera de combinarlos, y debe hacerse mediante el reconocimiento de patrones. Y ya tengo mucho trabajo que hacer en este tema. Incluso publiqué mi primer algoritmo de reconocimiento hace bastante tiempo en código abierto. Este algoritmo encuentra canales lineales (polinómicos de grado 1) en todos los TFs. Aunque es el más primitivo y lento de mis algoritmos, no he encontrado ninguno mejor ni siquiera en el Market (me estoy jactando en ).

La extrapolación de Fourier es mucho más lenta que la polinómica, por lo que estaría bien intentar acelerarla; sin embargo, todavía se puede hacer bastante bien con la velocidad actual.

 
Evgeny Belyaev:

Eso es lo que todo el mundo ha estado haciendo... escrito...


Para iniciar una serie de comparaciones, volvamos a lo que es bien conocido.

 
      a1_Buffer[i] =iMA(NULL,0,145,0,MODE_EMA,PRICE_OPEN,i);// a1_Buffer[i]=  ((open[i] - Znach)    +5061600*a1_Buffer[i+1 ]-7489800   *a1_Buffer[i+2 ]+4926624*a1_Buffer[i+3 ]-1215450*a1_Buffer[i+4 ])/1282975;

      a5_Buffer[i+92]=a1_Buffer[i];   if(i<=1) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  2*a5_Buffer[i+1+z]  -  1*a5_Buffer[i+2+z]  ;  }}



      a2_Buffer[i]= ( (open[i] - Znach)  + 72   *a2_Buffer[i+1 ] )/73;
      
      a6_Buffer[i+92]=a2_Buffer[i];   if(i<=1) { for(z=92-1;z>=0;z--){         a6_Buffer[i+0+z]=  2*a6_Buffer[i+1+z] -  1*a6_Buffer[i+2+z]  ;  }}

La primera líneaa1_Buffer se traza como una EMA clásica con un periodo de 145 (72*2+1), basada en los puntos de apertura y desplazada 72 pasos a la izquierda. La amplia línea gris de la imagen.

La segunda líneaa5_Buffer muestra la extrapolación mediante una línea recta en los dos últimos puntos de la primera línea. La línea gris es más fina en la imagen.

La tercera líneaa2_Buffer se traza directamente a partir de la ecuación en diferencias de primer grado. Lalínea azul de la figura.

1*Y_(-1)-2*Y_0+1*Y_(+1)=0 Ecuación de diferencia de primer grado para puntos igualmente espaciados.

2*Y_(-1)-3*Y_0+1*Y_(+2)=0 Ecuación en diferencia de primer grado para el hombro en 2 intervalos.

72*Y_(-1)-73*Y_0+1*Y_(+72)=0 Ecuación en diferencia de primer orden para el hombro en intervalos de 72.

Es esencialmente una ecuación de palanca de Arquímedes de primer grado.

La cuarta líneaa6_Buffer muestra la extrapolación mediante una línea recta a partir de los dos últimos puntos de la tercera línea. La línea roja de la imagen que se basa en el punto inicial.

Podemos ver la completa identidad de las dos construcciones. He dado un ejemplo para no mostrar la transformación del código y la transformación de la fórmula clásica de EMA a la forma de diferencia.

Quiero señalar que significa que, dentro de la terminología establecida, podemos llamar a la construcción utilizando polinomios, EMA de un cierto grado. Puesto que la cuestión de la denominación de las líneas construidas sigue abierta. )

Si no te importa, por supuesto:))

Archivos adjuntos:
 
Nikolai Semko:

Incluso publiqué mi primer algoritmo de reconocimiento hace bastante tiempo en código abierto. Este algoritmo encuentra canales lineales (polinómicos de grado 1) en todos los TFs. A pesar de que es el más primitivo y lento de mis algoritmos, no he encontrado ninguno mejor ni siquiera en el Market(estoy presumiendo en).

En mi opinión, bastante justificado. :))
 

Me gustaría señalar que el punto se puede extrapolar calculando previamente los coeficientes(a2_Bufferlínea azul) o tomando el valor necesario de la línea que se está redibujando(a6_Buffer línea amarilla). Aunque, por supuesto, la segunda variante consume recursos.

      a1_Buffer[i] =iMA(NULL,0,145,0,MODE_EMA,PRICE_OPEN,i);// a1_Buffer[i]=  ((open[i] - Znach)    +5061600*a1_Buffer[i+1 ]-7489800   *a1_Buffer[i+2 ]+4926624*a1_Buffer[i+3 ]-1215450*a1_Buffer[i+4 ])/1282975;

      a5_Buffer[i+92]=a1_Buffer[i];   if(i<=1100) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  2*a5_Buffer[i+1+z]  -  1*a5_Buffer[i+2+z]  ;  }}



      a2_Buffer[i]= 37* a1_Buffer[i] -36 *a1_Buffer[i+1];
      
      a6_Buffer[i+56]=a5_Buffer[i+56];  


Archivos adjuntos:
 

Ahora se promedia mediante un polinomio de segundo grado (EMA de segundo grado) y se extrapola a diferentes apalancamientos mediante una línea recta.

      a1_Buffer[i]=  ((open[i] - Znach)    +5328*a1_Buffer[i+1 ]-   2628 *a1_Buffer[i+2 ])/2701;

      a5_Buffer[i+92]=a1_Buffer[i];   if(i<=1100) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  2*a5_Buffer[i+1+z]  -  1*a5_Buffer[i+2+z]  ;  }}



      a2_Buffer[i+20]=a5_Buffer[i+20]; 
      
      a3_Buffer[i+38]=a5_Buffer[i+38]; 
      
      a4_Buffer[i+56]=a5_Buffer[i+56];
        
      a6_Buffer[i+74]=a5_Buffer[i+74];
    

La primera figura es el esquema de trazado, en la segunda figura todas las líneas que no se redibujan se dibujan hasta el último valor.

Los indicadores del sótano sólo se diferencian en el desfase de la línea establecida.



 

Promedio por polinomio de segundo grado (EMA de segundo grado) y extrapolación a diferentes palancas mediante una parábola cuadrada (polinomio de segundo grado).

      a1_Buffer[i]=  ((open[i] - Znach)    +5328*a1_Buffer[i+1 ]-   2628 *a1_Buffer[i+2 ])/2701;

      a5_Buffer[i+92]=a1_Buffer[i];   if(i<=1100) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  3*a5_Buffer[i+1+z]  -  3*a5_Buffer[i+2+z]  +  1*a5_Buffer[i+3+z]  ;  }}


      a2_Buffer[i+20]=a5_Buffer[i+20]; 
      
      a3_Buffer[i+38]=a5_Buffer[i+38]; 
      
      a4_Buffer[i+56]=a5_Buffer[i+56];
        
      a6_Buffer[i+74]=a5_Buffer[i+74];
  

La primera figura es un esquema de trazado, en la segunda figura todas las líneasque no se redibujan se dibujan hasta el último valor.

Los indicadores del sótano sólo se diferencian en el desfase de la línea establecida.


 

He mirado el hilo varias veces y no entiendo de qué estamos hablando.

Una cotización es un proceso aleatorio que puede ser aproximado por todo tipo de curvas analíticas, en particular las de este hilo.

Pero hay un punto muy fundamental.

Los coeficientes de estas curvas analíticas son constantes, lo cual es una idea muy audaz.

Dado que nos aproximamos a un proceso aleatorio, los coeficientes también son cantidades RARAS y deben ser EVALUADOS en lugar de calculados, con todo lo que ello implica. Por ejemplo, se puede obtener fácilmente el valor de un coeficiente, ver su valor, y al observar su evaluación, ver que el error en la determinación del valor del coeficiente es un múltiplo de ese mismo valor.

Y los problemas no acaban ahí. Un error es un error si se distribuye normalmente, y si NO es estacionario entonces no hay coeficiente alguno, aunque lo podamos ver.

Por ello, todos los indicadores resultan ser no funcionales. Sin embargo, pueden ser indescriptiblemente hermosos.


PS.

Más arriba se ha dicho que el futuro no fluye desde el pasado. Así que lo anterior es una revelación de este triste hecho.

 
SanSanych Fomenko:

He mirado el hilo varias veces y no entiendo de qué estamos hablando.

Una cotización es un proceso aleatorio que puede ser aproximado por todo tipo de curvas analíticas, en particular las de este hilo.

Pero hay un punto muy fundamental.

Los coeficientes de estas curvas analíticas son constantes, lo cual es una idea muy audaz.

Dado que nos aproximamos a un proceso aleatorio, los coeficientes también son cantidades RARAS y deben ser EVALUADOS en lugar de calculados, con todo lo que ello implica. Por ejemplo, se puede obtener fácilmente el valor de un coeficiente, ver su valor, y al observar su evaluación, ver que el error en la determinación del valor del coeficiente es un múltiplo de ese mismo valor.

Y los problemas no acaban ahí. Un error es un error si se distribuye normalmente, y si NO es estacionario, no hay coeficiente alguno, aunque podamos verlo.

Por ello, todos los indicadores resultan ser no funcionales. Sin embargo, pueden ser indescriptiblemente hermosos.


PS.

Más arriba se ha dicho que el futuro no fluye desde el pasado. Así que lo anterior es una revelación de este triste hecho.

Gracias por su publicación.

También se recuerda:

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

¿Sabes cómo preparar los canales?

SanSanych Fomenko, 2017.12.31 11:00

Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio

¿Sabes cómo preparar los canales?

Aleksey Ivanov, 2017.12.31 10:48

Sí, se me olvidó especificar que construí estas distribuciones móviles de probabilidad sin retardo(las medias móviles construidas por 2n+1 puntos tienen un retardo de n puntos, lo mismo, por supuesto, es cierto para las distribuciones), para lo cual sólo por el modelo

GARCH pronosticó una serie de puntos y creó un modelo de distribución no degenerada en la parte final de la historia (que es importante), teniendo en cuenta los estadísticos adicionales proporcionados por ellos. Mi pregunta a SanSanych(SanSanych Fomenko): "¿Este enfoque será más correcto para los saltos o también causará problemas?


No puedo evaluar su método y dar una respuesta.

Usted trata de considerar una idea, de las que hay innumerables en el mercado, pero como una abrumadora cantidad de autores de ideas no se hace la pregunta: ¿en qué se basa todo lo que se ve en los datos históricos para que se repita en el futuro? O más exactamente: ¿tiene su idea capacidad de predicción?

Los autores de GARCH no llegaron a este modelo de forma inmediata, y por cierto, en una agria lucha con los ideólogos del mercado eficiente, que entendían como estacionario.

Sabemos por la estadística que los procesos estacionarios pueden predecirse, pero los no estacionarios se predicen muy mal. Este es precisamente el problema. La no estacionariedad ha hecho que montañas inútiles de matemáticas sean extremadamente eficaces en otros ámbitos.

Ideología GARCH:

  • La premisa subyacente NO es la estacionalidad
  • formulamos con precisión el significado de la palabra no estacionariedad
  • empezar a pasar de NO a la estacionariedad a la estacionariedad poco a poco.
  • Cuanto más cercana sea la estacionariedad, mayor será la capacidad de predecir el futuro que tenga el algoritmo


¿Su idea va por ahí?


Creo que será muy útil.
 

Promedio por polinomio de cuarto grado con apalancamiento 72 (EMA de cuarto grado) y extrapolación a diferentes apalancamientos mediante una línea recta.

      a1_Buffer[i]=((open[i] - Znach)    +5061600*a1_Buffer[i+1 ]-7489800    *a1_Buffer[i+2 ]+4926624*a1_Buffer[i+3 ]-1215450*a1_Buffer[i+4 ])/1282975;

      a5_Buffer[i+92]=a1_Buffer[i];   if(i<=1100) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  2*a5_Buffer[i+1+z]  -  1*a5_Buffer[i+2+z]  +  0*a5_Buffer[i+3+z]  ;  }}


      a2_Buffer[i+20]=a5_Buffer[i+20]; 
      
      a3_Buffer[i+38]=a5_Buffer[i+38]; 
      
      a4_Buffer[i+56]=a5_Buffer[i+56];
        
      a6_Buffer[i+74]=a5_Buffer[i+74];
 

La primera figura es el esquema de trazado, en la segunda figura todas las líneasque no se redibujan se dibujan hasta el último valor.

Los indicadores del sótano sólo se diferencian en el desfase de la línea establecida.


 

Promedio mediante un polinomio de cuarto grado con apalancamiento 72 (EMA de cuarto grado) yextrapolación a diferentes apalancamientos medianteuna parábola cuadrada (polinomio de segundo grado).

      a1_Buffer[i]=((open[i] - Znach)    +5061600*a1_Buffer[i+1 ]-7489800    *a1_Buffer[i+2 ]+4926624*a1_Buffer[i+3 ]-1215450*a1_Buffer[i+4 ])/1282975;

      a5_Buffer[i+92]=a1_Buffer[i];   if(i<=1100) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  3*a5_Buffer[i+1+z]  -  3*a5_Buffer[i+2+z]  +  1*a5_Buffer[i+3+z]  ;  }}


      a2_Buffer[i+20]=a5_Buffer[i+20]; 
      
      a3_Buffer[i+38]=a5_Buffer[i+38]; 
      
      a4_Buffer[i+56]=a5_Buffer[i+56];
        
      a6_Buffer[i+74]=a5_Buffer[i+74];

La primera figura es un esquema de trazado, en la segunda figura todas las líneasque no se redibujan se dibujan hasta el último valor.

Los indicadores del sótano sólo se diferencian en el desfase de la línea establecida.