Discusión sobre el artículo "Distribuciones Estadísticas en MQL5: tomando lo mejor de R"

 

Artículo publicado Distribuciones Estadísticas en MQL5: tomando lo mejor de R:

El lenguaje R es una de las mejores herramientas de procesamiento y análisis estadístico de datos.

Gracias a su accesibilidad y al soporte de multitud de distribuciones estadísticas, ha obtenido una amplia difusión a la hora de analizar y procesar diferentes datos. El uso del aparato de la teoría de probabilidad y de la estadística matemática permite mirar de una forma nueva a los datos de los mercados financieros y abre nuevas posibilidades para la creación de estrategias comerciales. Con la aparición de la biblioteca estadística, estas posibilidades ahora están disponibles en el lenguaje MQL5.

En el artículo se analizan las funciones para trabajar con las principales distribuciones estadísticas implementadas en el lenguaje R (las distribuciones de Cauchy, Weibull, normal, log-normal, logística, exponencial, uniforme, la distribución gamma, la distribución beta central y no central, la distribución chi-cuadrado, la distribución F de Fisher, la distribución t de Student, así como las distribuciones binomial discreta y binomial negativa, la geométrica, la hipergeométrica y la distribución de Poisson). Además, en la biblioteca también existen funciones de cálculo de los momentos teóricos de las distribuciones, que permiten valorar el grado de correspondencia entre la distribución real y la modelada.

Histograma de distribución de números aleatorios, generados según la distribución normal con los parámetros mu=5 y sigma=1

Autor: MetaQuotes Software Corp.

 

Gran guía, ¡Gracias!

Me gustaría pedirle que el meta-editor en el meta-editor, a pesar de que están conectados a través de un includnik (escrito en MQL5), para hacer la sub-iluminación en su propio color.

Ahora el artículo en el código fuente no tiene esta sub-iluminación, por lo que es un poco difícil de leer/recibir.

Estamos esperando "Visualización en MQL5 - tomando lo mejor de R".

 

El trabajo merece respeto por su volumen, pero

- La comprobación de hipótesis estadísticas no es el componente más crítico para la velocidad en los productos MQL.

- Las cuestiones de la pérdida de precisión siguen abiertas (no en vano las mat.libraries crecen con fuerza durante mucho tiempo y se valoran como el coñac, en términos de edad).

 
¡Respeto y respeto a MQ!
 
Me imagino las oportunidades de investigación que se abrirán cuando se combinen todas estas estadísticas y visualizaciones gráficas de calidad.
 

Cuando se planteó la cuestión de la integración de R y MT https://www.mql5.com/ru/forum/73266/page10#comment_2283757 hace medio año, por alguna razón parecía que se implementaría un intercambio de datos en toda regla. no una biblioteca separada para una estrecha gama de tareas.

y ¿cuál es la ventaja inherente de esta biblioteca sobre la versión existente de 4 años de alglib https://www.mql5.com/es/code/1146? y específicamente la biblioteca

funcionesespeciales.mqh Clases de funciones de distribución, integrales, polinomios:
.
  1. CGammaFunc - Función gamma.
  2. CIncGammaF - Función gamma incompleta.
  3. CBetaF - Función beta.
  4. CIncBetaF - función Beta incompleta.
  5. CPsiF - Función psi.
  6. CAiryF - Funciones Airy.
  7. CBessel - Funciones de Bessel de orden entero.
  8. CJacobianElliptic - funciones elípticas de Jacobi.
  9. CDawson - Integral de Dawson.
  10. CTrigIntegrals - integrales trigonométricas.
  11. CElliptic - integrales elípticas de primer y segundo tipo.
  12. CExpIntegrals - Integrales exponenciales.
  13. CFresnel - Integrales de Fresnel.
  14. CHermite - Polinomios de Hermite.
  15. CChebyshev - Polinomios de Chebyshev.
  16. CLaguerre - Polinomios de Laguerre.
  17. CLegendre - Polinomios de Lejandre.
  18. CChiSquareDistr - distribución chi-cuadrado.
  19. CBinomialDistr - distribución binomial.
  20. CNormalDistr - distribución normal.
  21. CPoissonDistr - distribución de Poisson.
  22. CStudentDistr - distribución t de Student.
  23. CFDistr - distribución F.
Исследования в мат. пакетах
Исследования в мат. пакетах
  • www.mql5.com
Форум трейдеров MQL5.community
 
Maxim Kuznetsov:

el trabajo merece respeto por su volumen, pero

- La comprobación de hipótesis Stat no es el componente más crítico para la velocidad en los productos MQL.

- Las cuestiones de pérdida de precisión siguen abiertas (no en vano las mat.libraries son fuertes desde hace mucho, mucho tiempo y se valoran como el coñac, por la edad).

Para comprobar los cálculos complejos, hay pruebas unitarias (scripts en la carpeta /Scripts/Unittests).

Para evaluar la precisión del cálculo de las funciones de la biblioteca estadística, puede compararlas con los valores obtenidos en Wolfram Alpha.

El script TestStatPrecision.mql5 calcula funciones de densidad de probabilidad (PDF) y funciones de distribución acumulativa (CDF) para cada una de las distribuciones de la biblioteca.

Los resultados obtenidos se comparan con los valores de Wolfram Alpha (presentados con una aproximación de 30 dígitos) y se muestra el número de dígitos coincidentes después del punto decimal.

Los resultados del script se muestran en la pestaña "Expertos":
Testing precision for distribution:Beta
Distribution: Beta,  Wolfram PDF=1.250000000000000000000000000000,  PDF_calculated=1.249999999999998223643160599750,  deltaPDF=0.000000000000001776356839400250
Distribution: Beta,  Wolfram CDF=0.812500000000000000000000000000,  CDF_calculated=0.812500000000000222044604925031,  deltaCDF=-0.000000000000000222044604925031
Distribution: Beta PDF correct digits=14
Distribution: Beta CDF correct digits=15
   
Testing precision for distribution:Binomial
Distribution: Binomial,  Wolfram PDF=0.178863050569879750151258690494,  PDF_calculated=0.178863050569879888929136768638,  deltaPDF=-0.000000000000000138777878078145
Distribution: Binomial,  Wolfram CDF=0.416370829447481383134288535075,  CDF_calculated=0.416370829447481938245800847653,  deltaCDF=-0.000000000000000555111512312578
Distribution: Binomial PDF correct digits=15
Distribution: Binomial CDF correct digits=15
   
Testing precision for distribution:Cauchy
Distribution: Cauchy,  Wolfram PDF=0.078353202752933087671394218887,  PDF_calculated=0.078353202752933101549182026702,  deltaPDF=-0.000000000000000013877787807814
Distribution: Cauchy,  Wolfram CDF=0.165249340538567907055167438557,  CDF_calculated=0.165249340538567907055167438557,  deltaCDF=0.000000000000000000000000000000
Distribution: Cauchy PDF correct digits=16
Distribution: Cauchy CDF correct digits=30
   
Testing precision for distribution:ChiSquare
Distribution: ChiSquare,  Wolfram PDF=0.389400391535702439238519900755,  PDF_calculated=0.389400391535702439238519900755,  deltaPDF=0.000000000000000000000000000000
Distribution: ChiSquare,  Wolfram CDF=0.221199216928595121522960198490,  CDF_calculated=0.221199216928595121522960198490,  deltaCDF=0.000000000000000000000000000000
Distribution: ChiSquare PDF correct digits=30
Distribution: ChiSquare CDF correct digits=30
   
Testing precision for distribution:Exponential
Distribution: Exponential,  Wolfram PDF=0.441248451292297727555080655293,  PDF_calculated=0.441248451292297727555080655293,  deltaPDF=0.000000000000000000000000000000
Distribution: Exponential,  Wolfram CDF=0.117503097415404600400989920672,  CDF_calculated=0.117503097415404544889838689414,  deltaCDF=0.000000000000000055511151231258
Distribution: Exponential PDF correct digits=30
Distribution: Exponential CDF correct digits=16
   
Testing precision for distribution:F
Distribution: F,  Wolfram PDF=0.702331961591220799157042620209,  PDF_calculated=0.702331961591220910179345082724,  deltaPDF=-0.000000000000000111022302462516
Distribution: F,  Wolfram CDF=0.209876543209876531559388013193,  CDF_calculated=0.209876543209876587070539244451,  deltaCDF=-0.000000000000000055511151231258
Distribution: F PDF correct digits=15
Distribution: F CDF correct digits=16
   
Testing precision for distribution:Gamma
Distribution: Gamma,  Wolfram PDF=0.606530659712633424263117376540,  PDF_calculated=0.606530659712633424263117376540,  deltaPDF=0.000000000000000000000000000000
Distribution: Gamma,  Wolfram CDF=0.393469340287366575736882623460,  CDF_calculated=0.393469340287366575736882623460,  deltaCDF=0.000000000000000000000000000000
Distribution: Gamma PDF correct digits=30
Distribution: Gamma CDF correct digits=30
   
Testing precision for distribution:Geometric
Distribution: Geometric,  Wolfram PDF=0.050421000000000000540456568388,  PDF_calculated=0.050420999999999979723774856666,  deltaPDF=0.000000000000000020816681711722
Distribution: Geometric,  Wolfram CDF=0.882350999999999996425970039127,  CDF_calculated=0.882350999999999996425970039127,  deltaCDF=0.000000000000000000000000000000
Distribution: Geometric PDF correct digits=16
Distribution: Geometric CDF correct digits=30
   
Testing precision for distribution:Hypergeometric
Distribution: Hypergeometric,  Wolfram PDF=0.036675398904501069208272667765,  PDF_calculated=0.036675398904501069208272667765,  deltaPDF=0.000000000000000000000000000000
Distribution: Hypergeometric,  Wolfram CDF=0.996784948797332703840368139936,  CDF_calculated=0.996784948797332703840368139936,  deltaCDF=0.000000000000000000000000000000
Distribution: Hypergeometric PDF correct digits=30
Distribution: Hypergeometric CDF correct digits=30
   
Testing precision for distribution:Logistic
Distribution: Logistic,  Wolfram PDF=0.235003712201594494590750628049,  PDF_calculated=0.235003712201594494590750628049,  deltaPDF=0.000000000000000000000000000000
Distribution: Logistic,  Wolfram CDF=0.377540668798145462314863607389,  CDF_calculated=0.377540668798145406803712376131,  deltaCDF=0.000000000000000055511151231258
Distribution: Logistic PDF correct digits=30
Distribution: Logistic CDF correct digits=16
   
Testing precision for distribution:Lognormal
Distribution: Lognormal,  Wolfram PDF=0.000000247498055546993546655130,  PDF_calculated=0.000000247498055546993546655130,  deltaPDF=0.000000000000000000000000000000
Distribution: Lognormal,  Wolfram CDF=0.000000044817423501713188227213,  CDF_calculated=0.000000044817423501713168374878,  deltaCDF=0.000000000000000000000019852335
Distribution: Lognormal PDF correct digits=30
Distribution: Lognormal CDF correct digits=22
   
Testing precision for distribution:NegativeBinomial
Distribution: NegativeBinomial,  Wolfram PDF=0.046875000000000000000000000000,  PDF_calculated=0.046875000000000000000000000000,  deltaPDF=0.000000000000000000000000000000
Distribution: NegativeBinomial,  Wolfram CDF=0.937500000000000000000000000000,  CDF_calculated=0.937500000000000000000000000000,  deltaCDF=0.000000000000000000000000000000
Distribution: NegativeBinomial PDF correct digits=30
Distribution: NegativeBinomial CDF correct digits=30

Testing precision for distribution:NoncentralBeta
Distribution: NoncentralBeta,  Wolfram PDF=1.835315758284358889085297050769,  PDF_calculated=1.835315758284356890683852725488,  deltaPDF=0.000000000000001998401444325282
Distribution: NoncentralBeta,  Wolfram CDF=0.279804451879309967754494437031,  CDF_calculated=0.279804451879309523665284586968,  deltaCDF=0.000000000000000444089209850063
Distribution: NoncentralBeta PDF correct digits=14
Distribution: NoncentralBeta CDF correct digits=15
   
Testing precision for distribution:NoncentralChiSquare
Distribution: NoncentralChiSquare,  Wolfram PDF=0.266641691212769094132539748898,  PDF_calculated=0.266641691212769094132539748898,  deltaPDF=0.000000000000000000000000000000
Distribution: NoncentralChiSquare,  Wolfram CDF=0.142365913869366367272562001745,  CDF_calculated=0.142365913869366339516986386116,  deltaCDF=0.000000000000000027755575615629
Distribution: NoncentralChiSquare PDF correct digits=30
Distribution: NoncentralChiSquare CDF correct digits=16
   
Testing precision for distribution:NoncentralF
Distribution: NoncentralF,  Wolfram PDF=0.354683475208693754776589912581,  PDF_calculated=0.354683475208693865798892375096,  deltaPDF=-0.000000000000000111022302462516
Distribution: NoncentralF,  Wolfram CDF=0.090794346737526995805289686814,  CDF_calculated=0.090794346737526995805289686814,  deltaCDF=0.000000000000000000000000000000
Distribution: NoncentralF PDF correct digits=15
Distribution: NoncentralF CDF correct digits=30
   
Testing precision for distribution:Normal
Distribution: Normal,  Wolfram PDF=0.000013365598267338118769627896,  PDF_calculated=0.000013365598267338122157759685,  deltaPDF=-0.000000000000000000003388131789
Distribution: Normal,  Wolfram CDF=0.000015229981947977879768092203,  CDF_calculated=0.000015229981947977883156223992,  deltaCDF=-0.000000000000000000003388131789
Distribution: Normal PDF correct digits=20
Distribution: Normal CDF correct digits=20
   
Testing precision for distribution:Poisson
Distribution: Poisson,  Wolfram PDF=0.000000000000281323432020839554,  PDF_calculated=0.000000000000281323432020839908,  deltaPDF=-0.000000000000000000000000000353
Distribution: Poisson,  Wolfram CDF=0.999999999999981348253186297370,  CDF_calculated=0.999999999999981237230883834854,  deltaCDF=0.000000000000000111022302462516
Distribution: Poisson PDF correct digits=27
Distribution: Poisson CDF correct digits=15
   
Testing precision for distribution:Uniform
Distribution: Uniform,  Wolfram PDF=0.004000000000000000083266726847,  PDF_calculated=0.004000000000000000083266726847,  deltaPDF=0.000000000000000000000000000000
Distribution: Uniform,  Wolfram CDF=0.000500000000000000010408340856,  CDF_calculated=0.000500000000000000010408340856,  deltaCDF=0.000000000000000000000000000000
Distribution: Uniform PDF correct digits=30
Distribution: Uniform CDF correct digits=30
   
Testing precision for distribution:Weibull
Distribution: Weibull,  Wolfram PDF=0.019512185823866712297558478895,  PDF_calculated=0.019512185823866712297558478895,  deltaPDF=0.000000000000000000000000000000
Distribution: Weibull,  Wolfram CDF=0.000976085818024337737580653496,  CDF_calculated=0.000976085818024330365005880594,  deltaCDF=0.000000000000000007372574772901
Distribution: Weibull PDF correct digits=30
Distribution: Weibull CDF correct digits=17
   
Testing precision for distribution:T
Distribution: T,  Wolfram PDF=0.319904796224811438509760819215,  PDF_calculated=0.319904796224811494020912050473,  deltaPDF=-0.000000000000000055511151231258
Distribution: T,  Wolfram CDF=0.682299044355095474223560358951,  CDF_calculated=0.682299044355095474223560358951,  deltaCDF=0.000000000000000000000000000000
Distribution: T PDF correct digits=16
Distribution: T CDF correct digits=30
   
Testing precision for distribution:NoncentralT
Distribution: NoncentralT,  Wolfram PDF=0.000000000000040650786864501445,  PDF_calculated=0.000000000000040650786864501173,  deltaPDF=0.000000000000000000000000000271
Distribution: NoncentralT,  Wolfram CDF=0.000000000000004816980000000000,  CDF_calculated=0.000000000000004818163532209154,  deltaCDF=-0.000000000000000001183532209154
Distribution: NoncentralT PDF correct digits=27
Distribution: NoncentralT CDF correct digits=17   

Las funciones se calculan con buena precisión, lo que permite utilizarlas en cálculos estadísticos.

Wolfram|Alpha: Computational Knowledge Engine
  • www.wolframalpha.com
Wolfram|Alpha is more than a search engine. It gives you access to the world's facts and data and calculates answers across a range of topics, including science, nutrition, history, geography, engineering, mathematics, linguistics, sports, finance, music...
Archivos adjuntos:
 
ivanivan_11:

y ¿cuál es la ventaja inherente de esta biblioteca sobre la versión existente de 4 años de alglib https://www.mql5.com/es/code/1146? y específicamente la biblioteca.

Es más cercana a R en funcionalidad. Más distribuciones (21) + generadores de números aleatorios. Hay funciones para calcular momentos teóricos de distribuciones.
 
Quantum:

Para comprobar cálculos complejos, existen pruebas unitarias (scripts en la carpeta /Scripts/Unittests).


Las funciones se calculan con buena precisión, lo que permite utilizarlas en cálculos estadísticos.

He tenido la "suerte" de dar soporte a un tipo de software estrechamente relacionado con las matemáticas, por lo que soy escéptico sobre cualquier "nueva" implementación de métodos conocidos... Los unittests no son la panacea, y los errores (te lo garantizo) aparecerán en los momentos más inoportunos.

PS/ si desarrollas el diálogo, entonces debido a la actitud insuficientemente entusiasta obviamente iré a la prohibición :-)

 

El comentario anterior muestra comparaciones de precisión con un punto de referencia, que era Wolfram Alpha con un detalle de 30 decimales.

Entendemos muy bien que asuntos tan complejos deben ser cubiertos con pruebas tanto como sea posible. Por eso tenemos una sección especial /Scripts/Unittests, donde hemos recopilado varias pruebas extensivas de la funcionalidad de las librerías matemáticas.

Por favor, actualice a la última beta de MT5 que lanzamos ayer y ejecute estas pruebas unitarias usted mismo.

 
En mi opinión, el potencial de lo que ha estado disponible en MQL durante mucho tiempo está lejos de ser realizado por los traders en estrategias y Asesores Expertos, pero mucha gente exige más y más. ¿Por qué se les critica constantemente cuando consiguen las innovaciones deseadas? ¿Quién necesita tanta precisión (hasta 30 decimales)? Extraños caprichos... Las estadísticas son algo necesario, aunque creo que incluso sin esta funcionalidad, podrías resolver todas tus tareas de trading con MQL, sólo con tener ganas de trabajar. No obstante, gracias por el añadido a los desarrolladores.