Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 201

 
SanSanych Fomenko:

¡Querido colega!

Durante varias páginas se discute sobre las diferencias entre sus algoritmos y los de R en los bordes del dominio de la función. Los puntos marginales son puntos marginales y, en la práctica, las diferencias podrían despreciarse.

Pero en este caso tengo una pregunta mucho más sustancial:

¿Dónde está la documentación de todas sus funciones?

Anteriormente, pensé que tomamos su función, luego tomamos la documentación de R, ya que sus funciones son análogas, y profundizamos en las partes de la documentación de R que describen los algoritmos, o van a los enlaces proporcionados por R. R tiene una documentación y un aparato de referencia de muy alta calidad.

En el transcurso de la discusión, descubrí que sus funciones son diferentes a las de R: son otras funciones cuyos algoritmos se basan en otras fuentes. No hay nada sobre esto en el propio artículo, ni documentación. Y nos enteramos por Renat en un contexto completamente diferente.

En la práctica, podemos sacar una conclusión inequívoca de que el código no puede ser portado de R a MQL5.

Y he aquí por qué.

Es porque no has leído el artículo y te has perdido la repetición varias veces:

  1. Hemos adjuntado pruebas unitarias en el código fuente, demostrando la corrección de los cálculos.
  2. Hemos trabajado mucho en la comprobación total de la corrección que nos ha permitido llegar al fondo de los errores de R
  3. En nuestro trabajo, volvimos a comprobar constantemente los resultados en MQL5, Wolfram Alpha y R
A diferencia de ti, nosotros hemos analizado el código fuente de R, hemos analizado cada función en detalle, hemos conseguido acelerar algunas funciones hasta 46 veces, hemos escrito un artículo y nos hemos preparado para responder por él.

Pero, en cambio, los críticos se las arreglan para hacer declaraciones sobre la vieja levadura de su conocimiento y confianza en R sin una lectura reflexiva del propio artículo. Y, desde luego, sin intentar ejecutar scripts de prueba con pruebas.

 

Para que no haya malentendidos:

  1. La traducción/similaridad de las funciones R anteriores es correcta
  2. El uso de la lógica de R en MQL5 es casi idéntico, y el código es más claro en MQL5
  3. Todo el código de las funciones mencionadas en MQL5 se presenta en el código fuente limpio, incluyendo las pruebas unitarias de verificación (¿dónde están en R?)
  4. Los cálculos en MQL5 son más rápidos que en R
  5. Nuestros especialistas son buenos en matemáticas y son tan buenos (o mejores) que los que escriben R.
Este es el comienzo de un largo viaje hacia la introducción de las matemáticas complejas en la biblioteca estándar MQL5. Ahora Alglib, Fuzzy y Stat están ahí.

Hoy vamos a liberar una librería de gráficos similar a la trama de R. Ya existe una ampliación funcional de la funcionalidad de la estera de la biblioteca Stat en forma de docenas de nuevas funciones.

 
Quantum:

Por el momento hay una descripción de las funciones en el artículo https://www.mql5.com/ru/articles/2742


Gracias, entiendo su punto de vista.

PS.

Según tengo entendido, has visto la documentación sobre Normal y otras funciones en R, así que no voy a hacer un copia-pega y comparar con tu enlace.

 
Renat Fatkhullin:

Esto es porque no has leído el artículo y te has perdido la repetición varias veces:

  1. Hemos adjuntado pruebas unitarias en el código fuente que demuestran la corrección de los cálculos
  2. Hemos trabajado mucho en la comprobación de la corrección total que nos permite llegar al fondo de los errores de R
  3. En nuestro trabajo, volvimos a comprobar constantemente los resultados en MQL5, Wolfram Alpha y R
A diferencia de ti, nosotros hemos analizado el código fuente de R, hemos analizado cada función en detalle, hemos conseguido acelerar algunas funciones hasta 46 veces, hemos escrito un artículo y nos hemos preparado para responder por él.

Pero, en cambio, los críticos se las arreglan para hacer declaraciones sobre la vieja levadura de su conocimiento y confianza en R sin una lectura reflexiva del propio artículo. Y, desde luego, sin intentar ejecutar scripts de prueba con pruebas.

Gracias, su punto de vista es claro para mí.

PS.

Es la segunda vez que me reprocha que no lea el artículo.

Lo he leído, además he encontrado un error en la función (devuelve un escalar en lugar de un vector), que has corregido y ahora este error ha desaparecido.

 
SanSanych Fomenko:

Gracias, su punto de vista me queda claro.

PS.

Es la segunda vez que me reprocha que no lea el artículo.

Lo he leído, además, he encontrado un error en la función (devolvía un escalar en lugar de un vector), que has corregido y ahora este error está ausente.

Esto es una medida contraria a tu comentario "En la práctica, la conclusión de que la migración de código de R a MQL5 es imposible".

Quizá haya leído un artículo antiguo y no el nuevo de ayer. No había ningún error allí - había una versión con retorno escalar (hace mucho tiempo) y añadimos funciones vectoriales. La biblioteca ha crecido seriamente desde el antiguo artículo y fue esencialmente reescrita.

Tenía razón: no has leído el nuevo artículo.

Espero que no haya más charlas sobre "no tienes estas funciones y te las has inventado".
 
Alexey Burnakov:

En cuanto a la distribución de t. He reproducido este error en la última versión de R. pero no he llegado a la esencia del algoritmo. Reconozco que la corrección era realmente necesaria.

Intentaré hacer una pregunta al equipo de soporte de R.

Artículo "Computing discrete mixtures of continuous distributions" está disponible en el sitio del autor.

Los autores del artículo dicen que el problema está en el criterio de convergencia de la serie.


La implementación de su algoritmo de recurrencia propuesto 7.2 https://github.com/neurodebian/afni_removeme_eventually/blob/master/nct.c

Sin embargo, el cálculo de la recurrencia tiene errores. Por ejemplo, para la función beta:


#include <Math\Stat\Math.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   double a=1;
   double b=1;
   double r_beta=MathBeta(a,b);
   for(int j=0; j<40; j++)
     {
      if(j>0)
        {
         r_beta*=((a+j-1)/(a+b+j-1));
        }
      double beta=MathBeta(a+j,b);
      PrintFormat("%d   error=%5.20e",j,beta-r_beta);
     }
  }

2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 0 error=0.0000000000000000e+00
2016.11.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 1 error=-5.55111512312578270212e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 2 error=0.000000000000000000e+00
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 3 error=1.11022302462515654042e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 4 error=1.38777878078144567553e-16
2016.11.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 5 error=-2.22044604925031308085e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 6 error=2.22044604925031308085e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 7 error=1.66533453693773481064e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 8 error=-2.91433543964103591861e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 9 error=-1.24900090270330110798e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 10 error=-2.77555756156289135106e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 11 error=-1.24900090270330110798e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 12 error=5.68989300120392726967e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 13 error=-2.91433543964103591861e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 14 error=-5.55111512312578270212e-17
2016.11.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 15 error=-4.85722573273505986435e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 16 error=-1.87350135405495166196e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 17 error=5.27355936696949356701e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 18 error=-1.04083408558608425665e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 19 error=-3.400058018291454190505e-16
2016.11.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 20 error=-3.26128013483639733749e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 21 error=4.57966997657877072925e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 22 error=-3.19189119579732505372e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 23 error=1.52655665885959024308e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 24 error=5.55111512312578270212e-17
2016.11.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 25 error=-6.24500451351650553988e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 26 error=-2.70616862252381906728e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 27 error=4.85722573273505986435e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 28 error=4.64905891561784301302e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 29 error=8.32667268468867405318e-17
201611.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 30 error=-9.02056207507939689094e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 31 error=-2.98372437868010820239e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 32 error=2.22044604925031308085e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 33 error=2.74086309204335520917e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 34 error=-3.43475248243407804694e-16
201611.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 35 error=2.08166817117216851329e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 36 error=4.16333634234433702659e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 37 error=8.673617379889403547206e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 38 error=-1.21430643318376496609e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 39 error=-2.18575157973077693896e-16

Para el cálculo de la CDF la precisión puede ser suficiente, pero para la conversión de cuantiles con alta precisión puede no ser suficiente.

Así que utilizamos la suma directa sin cálculos de recurrencia en el algoritmo de cuantiles.

 
Renat Fatkhullin:

Esta es una contramedida a su esquema "En la práctica, hay una conclusión inequívoca de que la migración de código de R a MQL5 es imposible".

Espero que no se hable más de que "estas funciones no las tienes y las has inventado tú".

Tengo la mala costumbre de leer antes de escribir sobre algo. "Nunca me he dedicado a tales invectivas; sólo he expuesto la esencia de mi tema.

Resulta que no puedo aclararle mi punto de vista, y no es la primera vez.

Por lo tanto, sin mí.

Te deseo sinceramente suerte, Renat.

 

Señores, ¿cuál es el argumento de 100.500 páginas? ¿Quién sabe más en matemáticas? ¿Qué diferencia hay por principio si la función está definida en 0 o no está definida, si un error en R está escrito en el artículo o no. Es como si aquí se discute a tu hijo y se le dice que es un total ... y tú lo defiendes con todo el pecho.

Tómalo como un hecho y utiliza las funciones incorporadas en mt5, pide a los desarrolladores nuevas funciones, si falta algo, escribe las tuyas propias. Deberías usar las funciones incorporadas en mt5, pedir a los desarrolladores otras nuevas, si echas de menos algo, escribe las tuyas propias.

 
Gracias por tu participación @SanSanych Fomenko, pero no has conseguido rebatir ninguna de nuestras posiciones y el presente esquema falla.
 
Renat Fatkhullin:

Para que no haya malentendidos:

  1. La traducción/similaridad de las funciones R anteriores es correcta
  2. El uso de la lógica de R en MQL5 es casi idéntico, y el código es más claro en MQL5
  3. Todo el código de las funciones mencionadas en MQL5 se presenta en el código fuente limpio, incluyendo las pruebas unitarias de verificación (¿dónde están en R?)
  4. Los cálculos en MQL5 son más rápidos que en R
  5. Nuestros especialistas son buenos en matemáticas y son tan buenos (o mejores) que los que escriben R.
Este es el comienzo de un largo viaje hacia la introducción de las matemáticas complejas en la biblioteca estándar MQL5. Ahora Alglib, Fuzzy y Stat están ahí.

Hoy vamos a liberar una librería de gráficos similar a la trama de R. Ya estamos trabajando en la ampliación de la funcionalidad de la biblioteca mat Stat en forma de docenas de nuevas funciones.

es sólo un día de fiesta
Razón de la queja: