Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 201

 
SanSanych Fomenko:

Caro colega!

Para várias páginas há uma discussão sobre as diferenças entre os algoritmos do seu e do R nas bordas do domínio da função. Os pontos extremos são pontos extremos e na prática as diferenças podem ser negligenciadas.

Mas, neste caso, tenho uma pergunta muito mais substancial:

Onde está a documentação para todas as suas funções?

Anteriormente, eu pensava que nós pegávamos a sua função, depois pegávamos a documentação para R, já que suas funções são analógicas, e mergulhávamos nas partes da documentação de R que ou descrevem os algoritmos, ou vão para os links fornecidos por R. R tem uma documentação e um aparelho de referência de altíssima qualidade.

No decorrer do argumento, descobri que as suas funções são diferentes do R - são algumas outras funções cujos algoritmos dependem de outras fontes. Não há nada sobre isso no próprio artigo, nenhuma documentação. E aprendemos sobre isso com Renat num contexto completamente diferente.

Na prática, podemos tirar uma conclusão inequívoca de que o código não pode ser portado de R para MQL5.

E aqui está o porquê.

É porque você não leu o artigo e perdeu a repetição várias vezes:

  1. Anexamos testes unitários no código fonte, provando a exatidão dos cálculos.
  2. Temos feito muito trabalho na verificação da correcção total que nos permite chegar ao fundo dos erros R
  3. Em nosso trabalho, verificamos constantemente os resultados em MQL5, Wolfram Alpha e R
Ao contrário de você, analisamos o código fonte de R, analisamos cada função em detalhe, conseguimos acelerar algumas funções até 46 vezes, escrevemos um artigo e nos preparamos para responder por ele.

Mas em vez disso, os críticos conseguem fazer declarações sobre o velho fermento do seu conhecimento e confiança em R sem uma leitura atenta do artigo em si. E certamente sem tentar executar scripts de teste com provas.

 

Para que não haja mal-entendidos:

  1. A tradução/similaridade das funções R acima é correta
  2. A utilização da lógica de R na MQL5 é quase idêntica, e o código é mais claro na MQL5
  3. Todo o código das funções mencionadas na MQL5 é apresentado no código fonte limpo, incluindo os testes da unidade de verificação (onde estão em R?)
  4. Os cálculos em MQL5 são vezes mais rápidos do que em R
  5. Os nossos especialistas são bons em matemática e são tão bons (ou melhores) do que aqueles que escrevem R.
Este é o início de uma longa jornada para a introdução da matemática complexa na biblioteca MQL5 padrão. Agora Alglib, Fuzzy e Stat estão lá.

Hoje vamos lançar uma biblioteca gráfica semelhante ao enredo da R. Já existe uma expansão funcional da funcionalidade dos tapetes da biblioteca Stat sob a forma de dezenas de novas funções.

 
Quantum:

No momento, há uma descrição das funções no artigo https://www.mql5.com/ru/articles/2742


Obrigado, eu compreendo o seu ponto de vista.

PS.

Como eu entendi, você viu a documentação sobre Normal e outras funções em R, então eu não vou fazer uma cópia colar e comparar com o seu link.

 
Renat Fatkhullin:

Isto porque você não leu o artigo e perdeu a repetição várias vezes:

  1. Anexamos testes unitários no código fonte provando a exatidão dos cálculos.
  2. Temos feito muito trabalho na verificação da correcção total que nos permite chegar ao fundo dos erros R
  3. Em nosso trabalho, verificamos constantemente os resultados em MQL5, Wolfram Alpha e R
Ao contrário de você, analisamos o código fonte de R, analisamos cada função em detalhe, conseguimos acelerar algumas funções até 46 vezes, escrevemos um artigo e nos preparamos para responder por ele.

Mas em vez disso, os críticos conseguem fazer declarações sobre o velho fermento do seu conhecimento e confiança em R sem uma leitura atenta do artigo em si. E certamente sem tentar executar scripts de teste com provas.

Obrigado, o seu ponto de vista é claro para mim.

PS.

Esta é a segunda vez que me censura por não ler o artigo.

Eu li, além disso, encontrei erro de função (retornou escalar em vez de vetor), que você corrigiu e agora esse erro desapareceu.

 
SanSanych Fomenko:

Obrigado, o seu ponto de vista é claro para mim.

PS.

Esta é a segunda vez que me censura por não ler o artigo.

Eu li, além disso, encontrei um erro de função (retorno escalar em vez de vetor), que você corrigiu e agora esse erro está ausente.

Esta é uma contramedida ao seu comentário "Na prática, a conclusão de que a migração do código de R para MQL5 é impossível".

Talvez tenhas lido um artigo antigo e não o novo de ontem. Não houve nenhum erro - houve uma versão com retorno escalar (há muito tempo atrás) e adicionamos funções vetoriais. A biblioteca tem crescido seriamente desde o antigo artigo e foi essencialmente reescrita.

Eu estava certo - você não leu o novo artigo.

Espero que não haja mais conversas sobre "você não tem essas funções e você mesmo as inventou".
 
Alexey Burnakov:

Em relação à distribuição t. Reproduzi este erro na última versão do R. mas não cheguei à essência do algoritmo. Eu admito que a correcção era realmente necessária.

Vou tentar fazer uma pergunta à equipa de apoio R.

Artigo A "Computação de misturas discretas de distribuições contínuas" está disponível no site do autor.

Os autores do artigo dizem que o problema está no critério de convergência da série.


A implementação do algoritmo de recorrência proposto 7.2 https://github.com/neurodebian/afni_removeme_eventually/blob/master/nct.c

No entanto, o cálculo da recorrência tem erros. Por exemplo, para a função 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 erro=0,00000000000000000000e+00
2016.11.11.11 12:28.30.015 RecurrentBeta (EURUSD,H1) 1 erro=-5,55111512312578270270212e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 2 erro=0.0000000000000000000000e+00
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 3 error=1.1102230246251515654042e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 4 error=1,3877787807814144567553e-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,77555756156156289135106e-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.11 12:28.30.015 RecurrentBeta (EURUSD,H1) 21 error=4,5796699765787707292925e-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.5265566588595959024308e-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.1857515797307777693896e-16

Para o CDF a precisão do cálculo pode ser suficiente, mas para a conversão de quantis com alta precisão pode não ser suficiente.

É por isso que usamos a soma direta sem cálculos de recorrência no algoritmo de quantil.

 
Renat Fatkhullin:

Esta é uma contra-medida ao seu esquema "Na prática, há uma conclusão inequívoca de que a migração de código de R para MQL5 é impossível".

Espero que não se fale mais em "você não tem essas funções e você mesmo as inventou".

Tenho um mau hábito de ler antes de escrever sobre algo. "Nunca me envolvi em tal invectiva; declarei apenas a essência do meu assunto.

Acontece que eu não posso deixar claro o meu ponto de vista, e não é a primeira vez.

Portanto, sem mim.

Desejo-lhe sinceramente sorte, Renat!

 

Cavalheiros, qual é o argumento para 100.500 páginas? Quem sabe melhor em matemática? Que diferença faz para vocês , por princípio, se a função é definida em 0 ou não definida, se um erro em R está escrito no artigo ou não. É como se o seu filho estivesse sendo discutido aqui e dito que ele é um total ... e você o defende com todo o seu peito.

Tome-o como um dado adquirido e use recursos embutidos no mt5, peça aos desenvolvedores por novos recursos, se algo estiver faltando, escreva o seu próprio. Você deve usar os recursos embutidos do mt5, pedir aos desenvolvedores por novos, se você perder algo, escreva o seu próprio.

 
Obrigado por sua participação @SanSanych Fomenko, mas você não conseguiu refutar nenhuma de nossas posições e o presente esboço falha.
 
Renat Fatkhullin:

Para que não haja mal-entendidos:

  1. A tradução/similaridade das funções R acima é correta
  2. A utilização da lógica de R na MQL5 é quase idêntica, e o código é mais claro na MQL5
  3. Todo o código das funções mencionadas na MQL5 é apresentado no código fonte limpo, incluindo os testes da unidade de verificação (onde estão em R?)
  4. Os cálculos em MQL5 são vezes mais rápidos do que em R
  5. Os nossos especialistas são bons em matemática e são tão bons (ou melhores) do que aqueles que escrevem R.
Este é o início de uma longa jornada para a introdução da matemática complexa na biblioteca MQL5 padrão. Agora Alglib, Fuzzy e Stat estão lá.

Hoje vamos lançar uma biblioteca gráfica semelhante ao enredo da R. Já estamos a trabalhar na ampliação das funcionalidades da biblioteca de tapetes Stat sob a forma de dezenas de novas funções.

é apenas um feriado
Razão: