Discussão do artigo "Distribuições estatísticas no MQL5 - tirando o melhor de R"

 

Novo artigo Distribuições estatísticas no MQL5 - tirando o melhor de R foi publicado:

O artigo considera funções para trabalhar com as distribuições estatísticas básicas implementadas na linguagem R (as distribuições de Cauchy, Weibull, normal, log-normal, logistic, exponential, uniform, gamma, beta central e não-central, qui-quadrado, F de Fisher-Snedecor, t de Student, assim como as distribuições binomiais discretas e binomiais negativas, distribuições geométricas, hipergeométricas e de Poisson). Além disso, a biblioteca também contém as funções para cálculo dos momentos teóricos das distribuições, permitindo a avaliação do grau de conformidade da distribuição real com a modelada.

O histograma calculado é salvo no arquivo normal.csv (fig. 2)

Histograma da distribuição de números aleatórios, gerados de acordo com a distribuição normal e com os parâmetros mu=5 e sigma=1

Fig. 2. Histograma da distribuição de números aleatórios, gerados de acordo com a distribuição normal e com os parâmetros mu=5 e sigma=1

Autor: MetaQuotes Software Corp.

 

Ótimo guia, obrigado!

Gostaria de pedir-lhe para fazer o meta-editor no meta-editor, apesar do fato de que eles estão conectados por meio de um includnik (escrito em MQL5), para fazer a subiluminação em sua própria cor.

Agora, o artigo no código-fonte não tem essa subiluminação, por isso é um pouco difícil de ler/receber.

Estamos aguardando o "Visualisation in MQL5 - taking the best from R".

 

O trabalho merece respeito por seu volume, mas

- O teste de hipóteses estatísticas não é o componente mais crítico em termos de velocidade nos produtos MQL.

- As questões de perda de precisão permanecem em aberto (não é à toa que as bibliotecas mat. se fortalecem por um longo tempo e são avaliadas como conhaque, em termos de idade).

 
Respeito e respeito à MQ!
 
Posso imaginar as oportunidades de pesquisa que se abrirão quando todas essas estatísticas e visualizações gráficas de qualidade forem combinadas.
 

Quando a questão da integração do R e do MT https://www.mql5.com/ru/forum/73266/page10#comment_2283757 foi levantada há meio ano, por algum motivo parecia que uma troca de dados completa seria implementada, e não uma biblioteca separada para uma gama restrita de tarefas.

E qual é a vantagem inerente dessa biblioteca em relação à versão existente de 4 anos da alglib https://www.mql5.com/pt/code/1146? e especificamente a biblioteca

specialfunctions.mqh Classes de funções de distribuição, integrais, polinômios:
.
  1. CGammaFunc - Função gama.
  2. CIncGammaF - Função gama incompleta.
  3. CBetaF - Função beta.
  4. CIncBetaF - função beta incompleta.
  5. CPsiF - função psi.
  6. CAiryF - funções Airy.
  7. CBessel - Funções de Bessel de ordem inteira.
  8. CJacobianElliptic - funções Jacobi elípticas.
  9. CDawson - integral de Dawson.
  10. CTrigIntegrals - integrais trigonométricas.
  11. CElliptic - integrais elípticas de primeiro e segundo tipo.
  12. CExpIntegrals - integrais exponenciais.
  13. CFresnel - integrais de Fresnel.
  14. CHermite - polinômios de Hermite.
  15. CChebyshev - polinômios de Chebyshev.
  16. CLaguerre - Polinômios de Laguerre.
  17. CLegendre - polinômios de Lejandre.
  18. CChiSquareDistr - distribuição de qui-quadrado.
  19. CBinomialDistr - distribuição binomial.
  20. CNormalDistr - distribuição normal.
  21. CPoissonDistr - distribuição Poisson.
  22. CStudentDistr - distribuição t de Student.
  23. CFDistr - distribuição F.
Исследования в мат. пакетах
Исследования в мат. пакетах
  • www.mql5.com
Форум трейдеров MQL5.community
 
Maxim Kuznetsov:

O trabalho merece respeito por seu volume, mas

- O teste de hipóteses estatísticas não é o componente mais crítico em termos de velocidade nos produtos MQL.

- As questões de perda de precisão permanecem em aberto (não é à toa que as bibliotecas mat.são fortes por muito, muito tempo e são valorizadas como conhaque pela idade).

Para verificar cálculos complexos, há testes de unidade (scripts na pasta /Scripts/Unittests).

Para avaliar a precisão do cálculo das funções da biblioteca estatística, você pode compará-las com os valores obtidos no Wolfram Alpha.

O script TestStatPrecision.mql5 calcula as funções de densidade de probabilidade (PDF) e as funções de distribuição cumulativa (CDF) para cada uma das distribuições da biblioteca.

Os resultados obtidos são comparados com os valores do Wolfram Alpha (apresentados com os 30 dígitos mais próximos) e o número de dígitos correspondentes após o ponto decimal é exibido.

Os resultados do script são exibidos na guia "Experts":
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   

As funções são calculadas com boa precisão, o que permite que sejam usadas em cálculos estatí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...
Arquivos anexados:
 
ivanivan_11:

E qual é a vantagem inerente dessa biblioteca em relação à versão existente de 4 anos da alglib https://www.mql5.com/pt/code/1146? e especificamente a biblioteca.

Ela está mais próxima do R em termos de funcionalidade. Mais distribuições (21) + geradores de números aleatórios. Há funções para calcular os momentos teóricos das distribuições.
 
Quantum:

Para verificar cálculos complexos, há testes de unidade (scripts na pasta /Scripts/Unittests).


As funções são calculadas com boa precisão, o que permite que sejam usadas em cálculos estatísticos.

Tive a "sorte" de oferecer suporte a um tipo de software intimamente relacionado à matemática, portanto, sou cético em relação a qualquer implementação "nova" de métodos conhecidos... Os Unittests não são uma panaceia, e os erros aparecerão (eu garanto) nos momentos mais inoportunos.

PS/ se você desenvolver o diálogo, então, devido à atitude insuficientemente entusiasmada, eu obviamente irei para o banimento :-)

 

O comentário acima mostra comparações de precisão com um benchmark, que foi o Wolfram Alpha com detalhes de 30 casas decimais.

Entendemos muito bem que assuntos tão complexos devem ser cobertos com testes o máximo possível. É por isso que temos uma seção especial /Scripts/Unittests, na qual coletamos vários testes extensivos da funcionalidade das bibliotecas matemáticas.

Atualize para a versão beta mais recente do MT5 que lançamos ontem e execute você mesmo esses testes de unidade.

 
Na minha opinião, o potencial do que está disponível na MQL há muito tempo está longe de ser realizado pelos traders em estratégias e Expert Advisors, mas muitas pessoas exigem mais e mais. Por que elas são constantemente criticadas quando obtêm as inovações desejadas? Quem precisa de tanta precisão (até 30 casas decimais)? Estranhos caprichos... As estatísticas são necessárias, embora eu ache que, mesmo sem essa funcionalidade, você poderia resolver todas as suas tarefas de negociação com MQL, bastando ter o desejo de trabalhar. No entanto, obrigado pela adição aos desenvolvedores.