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

 
Ivan Negreshniy:

IMHO, você tem que trabalhar em python primeiro, onde é mais ou menos depurado, caso contrário há muita incerteza

Sim, parece que o dll é 32bit e o mt5 é 64.

Eu volto mais tarde, por agora a Piton está bem.

 
Maxim Dmitrievsky:

Acho que não consigo fazer isso sozinho, afinal vou ter que usar Python :D

Você deve receber o título de "Especialista em Criação de Dificuldades para Você Mesmo"! Exclusivamente do filme: os heróis normais vão sempre para o outro lado.


Aqui está o proverbial guizo, apenas alguns cliques para o modelo xgboost que você mencionou.

Nós conseguimos isso para a amostra de treino:

Error matrix for the Extreme Boost model on Df1.num [**train**] (counts):

      Predicted
Actual    0    1 Error
     0 1930   90   4.5
     1   42 2152   1.9

Error matrix for the Extreme Boost model on Df1.num [**train**] (proportions):

      Predicted
Actual    0    1 Error
     0 45.8  2.1   4.5
     1  1.0 51.1   1.9

Overall error: 3.1%, Averaged class error: 3.2%

Rattle timestamp: 2018-05-31 11:21:20 user

Para a amostra de validação

Error matrix for the Extreme Boost model on Df1.num [validate] (counts):

      Predicted
Actual   0   1 Error
     0 306 119  28.0
     1 111 367  23.2

Error matrix for the Extreme Boost model on Df1.num [validate] (proportions):

      Predicted
Actual    0    1 Error
     0 33.9 13.2  28.0
     1 12.3 40.6  23.2

Overall error: 25.5%, Averaged class error: 25.6%

Rattle timestamp: 2018-05-31 11:22:15 user

Para a amostragem de teste.

Error matrix for the Extreme Boost model on Df1.num [test] (counts):

      Predicted
Actual   0   1 Error
     0 314 118  27.3
     1 112 360  23.7

Error matrix for the Extreme Boost model on Df1.num [test] (proportions):

      Predicted
Actual    0    1 Error
     0 34.7 13.1  27.3
     1 12.4 39.8  23.7

Overall error: 25.5%, Averaged class error: 25.5%

Rattle timestamp: 2018-05-31 11:22:50 user


Se você estiver satisfeito com o resultado, você pode olhar o código em R. Aqui está o desafio:

crs$ada <- xgboost(Long_Short ~ .,
  data              = crs$dataset[crs$train,c(crs$input, crs$target)],
  max_depth         = 6,
  eta               = 0.3, 
  num_parallel_tree = 1, 
  nthread           = 2, 
  nround            = 50,
  metrics           = 'error',
  objective         = 'binary:logistic')


Na verdade, você pode pegar todo o código R do guizo e chamar esta função do MT4/5 Expert Advisor e ver o resultado no testador. O dll primitivo, funciona há muito tempo e de forma estável, muitas pessoas que o usam...

Tudo isto dentro de uma hora! NÃO HÁ PROBLEMAS COM OS MODELOS!

Há problemas com os alvos e com os correspondentes preditores de alvo ou vice-versa. Mas para resolver este problema você precisa ter um kit de ferramentas com mão-de-obra extremamente baixa para experimentar variantes.


PS.

Se você for ao guizo, você pode construir em um clique uma árvore (rPart), randomForest, SVM, glm de regressão logística, sua rede neural favorita, embora a mais simples nnet. E para um lanche, um modelo vivo (para obter lucros exorbitantes ou alcançar um depósito de lixo), se você for capaz de formular o alvo e seus preditores.


O MAIS RÁPIDO POSSÍVEL.

Como você despertou um amor por xgboost e pode alimentar esse amor com cálculos preliminares aceitáveis em guizo, aqui está a documentação para você:

Descrição do pacote - https://cran.r-project.org/web/packages/xgboost/xgboost.pdf

Entenda o seu conjunto de dados com Xgboost - https://cran.r-project.org/web/packages/xgboost/vignettes/discoverYourData.html

xgboost: eXtreme Gradient Boosting - https://cran.r-project.org/web/packages/xgboost/vignettes/xgboost.pdf

E para um refresco, a apresentação do Xgboost https://cran.r-project.org/web/packages/xgboost/vignettes/xgboostPresentation.html


Considerando o nível que você demonstra aqui, você não tem nenhum problema com R em absoluto.


Boa sorte.

 
SanSanych Fomenko:

Obrigado sanSanSanych... simplesmente não percebi, o guizo tem xgb? curiosamente.

De qualquer forma, só preciso de anexar este modelo em vez de andaimes de algas, para tarefas de RL

Não preciso de pesquisar nada, só preciso de uma coisa melhor com a regularização e a validação cruzada... Eu não sei sobre R, mas em python, por exemplo, a validação cruzada é facilmente aparafusada no xgb fallback, também

e depois o R não tem bibliotecas próprias para o RL, todas elas estão em python, ou seja, tenho que colocar o R sobre python novamente... de qualquer forma, ainda não decidi o que preciso :)

 

Estamos a falar de árvores...

Não sei sobre alvos de uma barra, mas quando os alvos são realmente eventos que irão ocorrer após N barras (estou considerando especificamente a negociação de tendências, ou outros casos em que a posição é fechada por SL/TP, após N barras ou um período de tempo fixo), e seu resultado será considerado e classificado, é importante prestar atenção não à tabela de contingência para avaliar os resultados, mas para

1. A frequência de variação da classificação resulta em uma janela de N barras

2. Agrupamento de regras por N barras (densidade de regras)

No primeiro caso, é necessário um indicador para estimar a frequência de mudança do alvo previsto, se este for elevado, então o modelo é instável, embora possa pontuar uma grande percentagem de soluções correctas.

No segundo caso, precisamos aplicar uma regra por janela (N barras) uma regra repetida para estimar o reforço e a propagação desta regra através do modelo.

Assim, é necessário alterar estimativas quando se trata de treinar a qualidade do modelo, incluindo andaimes e outros modelos que requerem auto-análise dos seus resultados para fazer correcções.

O que você acha desses pensamentos?

 

Mais uma vez eu estava convencido de que R não é a minha coisa :) a sintaxe quase não é realçada, o código é ilegível, os erros quase não são realçados. O código em si e a linguagem não são esteticamente agradáveis

aqui podem estar os vossos contra-argumentos

Sim, você pode treinar um algoritmo em 3 linhas ao invés de 5 em python, só isso. A legibilidade em python seria melhor. Não vejo nenhuma vantagem nos pacotes de MO, é tudo a mesma coisa.

 
Maxim Dmitrievsky:

Mais uma vez eu estava convencido de que R não é a minha coisa :) a sintaxe quase não é realçada, o código é ilegível, os erros quase não são realçados. O código em si e a linguagem não são esteticamente agradáveis

aqui podem estar os vossos contra-argumentos

Sim, você pode treinar um algoritmo em 3 linhas ao invés de 5 em python, só isso. A legibilidade em python seria melhor. Não vejo nenhuma vantagem nos pacotes de MO, é tudo a mesma coisa.

Estou no meio de assistir a um curso de vídeo em russo na programação R :) A linguagem é certamente um inferno de sintaxe e suposições, por exemplo, a capacidade de declarar uma variável global em uma função pode distorcer o código, especialmente se a função for chamada mais de uma vez, após o que você tropeçará e procurará por erro, mas não será para o compilador.

Estou realmente chateado com o uso de memória em R - atualmente o arquivo csv de 187 megabytes está espalhado na memória como 1,5 Gbytes para trabalhar com árvore (enquanto em Rattle 7,5 Gbytes para construir floresta), multi-threading é implementado como processos separados lançados que não sabem como trabalhar com memória compartilhada, como resultado ao invés de carregar 6 núcleos de processador eu posso carregar apenas 4, sendo limitado por 8 Gbytes de memória disponível.

Como é que a Python lida com este caso?

 
Aleksey Vyazmikin:

Estou no meio de assistir a um curso de vídeo em russo sobre programação em R :) A linguagem é certamente a mais difícil em termos de sintaxe e suposições, por exemplo, a possibilidade de declarar uma variável global em função pode fazer uma grande confusão de código, especialmente se a função for chamada mais de uma vez, então você vai tropeçar e procurar por erro, mas não será para o compilador.

Estou realmente chateado com o uso de memória em R - atualmente o arquivo csv de 187 megabytes está espalhado na memória como 1,5 Gbytes para trabalhar com árvore (enquanto em Rattle 7,5 Gbytes para construir floresta), multi-threading é implementado como processos separados lançados que não podem funcionar com memória compartilhada, então ao invés de carregar 6 núcleos de processador eu posso carregar apenas 4, sendo limitado por 8 Gbytes de memória disponível.

Como está a Python neste caso?

Eu não olhei para a memória, pois nunca usei arquivos tão grandes :) Mas ouvi dizer que as primeiras versões de R tinham um problema com a memória e a sua limpeza

Python é uma linguagem mais avançada em todos os aspectos, já que é usada para uma grande variedade de tarefas.

Eu também não entendo o engraçado sobre a visualização do R plot - é feio comparado com python, Rstudio IDE também é um monstro da floresta, como é possível suportar em 2018

escrevi 100 linhas de código e fiquei confuso, tudo embaçado em uma confusão ilegível com sintaxe não iluminada :) então se você quiser tirar um buzz dele, use python nos cadernos vscode ou jupyter

Aatualização de árvores e florestas em si ocupa muita memória, dependendo do tamanho do conjunto e do número de árvores e sua profundidade. Por exemplo, o meu comité de 20 florestas com 50 árvores e um conjunto de 1000 exemplos leva ~40mb
 

Escreva disparates sobre R: não sei, não posso e não quero.

1. A velocidade e facilidade de depuração do código em R é surpreendente em comparação com os idiomas que têm compilador é vantagem do intérprete. Há muito pouco destaque a este respeito, pois não há nada a destacar - o código é quase imediatamente exequível. Código de capacidade extremamente alta. Escrever código "spoilery" é muito provavelmente o resultado de uma falta de conhecimento do próprio R e da funcionalidade dos pacotes. E se realmente acontece assim, uma boa tonelada de mauvais exige a sua divisão em funções, o OOP está presente.

2. O uso de variáveis globais em todos os idiomas deve ser cuidadoso. Em R a sua necessidade é muito duvidosa, porque os parâmetros de funções e retorno das mesmas podem ser "objeto", enquanto em R é qualquer coisa. Além disso, você pode controlar o espaço ao qual os nomes das variáveis estão ligados.

2. Os gráficos são um dos melhores do mundo - há de tudo, desde a trama mais simples aos desenhos animados, vários níveis de gráficos: desde os primitivos até aos brancos especializados para estatísticas.

3. É impossível comparar com python: eles são aproximadamente iguais em prevalência, mas python tem muitos usuários "alienígenas", principalmente desenvolvedores de sites, enquanto R é um sistema de estatísticas, nosso nativo, duplamente nativo, porque o MO está incluído nas estatísticas. Se falamos de pacotes para nós, devemos comparar com outros pacotes especializados (SAS...), mas eles são pagos.

4. R é o padrão algorítmico em estatística. Quase todas as publicações modernas contêm necessariamente código R.


Por último. R é parte da Microsoft, e python é um subdeluge, aqui em uma linha próxima muito hábil em programação as pessoas não poderiam concordar sobre a fonte da distribuição. Para mim, isso é um veredicto.


Na programação escolhe-se muitas vezes o que é mais conveniente em vez do que é útil, funcional, mas regar para fazer uma escolha extremamente questionável não é.

 
SanSanych Fomenko:

SanSanych, a única fonte de distribuição é o site python :)

Para estatísticas e extensão de aprendizagem de máquinas IPython e anaconda. Vá para a comunidade de opendatasciência em russo ou veja vídeos de Yandex. Eles não ouviram falar em R de todo. Então, o que conta como padrão? Experimente python para formar a sua própria opinião e comparar. Além disso, conhecer a pitão, como você disse, lhe permitirá fazer não apenas estatísticas, mas outras coisas, se necessário.

É também uma linguagem interpretada, mas é perfeitamente realçada e verifica a sintaxe na mosca, não só depois de executar o script, + dobras de código, blocos de notas e um monte de outras coisas

 
Maxim Dmitrievsky:

Eu não olhei para a memória, pois nunca usei arquivos tão grandes :) Mas ouvi dizer que as primeiras versões de R tinham um problema com a memória e a sua limpeza

Python é uma linguagem muito mais madura em todos os aspectos, já que é usada para uma grande variedade de fins.

Eu também não entendo o engraçado sobre a visualização da trama R - é miserável em comparação com python, Rstudio IDE também é um monstro da floresta, como é possível suportar em 2018

Eu escrevi 100 linhas de código e fiquei confuso, tudo ficou embaçado em uma confusão ilegível com sintaxe não iluminada :) em resumo, se você quiser tirar um buzz dele, use python nos cadernos vscode ou jupyter

Aatualização de árvores e da própria floresta ocupa muita memória, dependendo do tamanho do conjunto e do número de árvores e sua profundidade. Por exemplo, o meu comité de 20 florestas de 50 árvores e um conjunto de 1000 exemplos leva ~40mb

A minha sensação até agora é que o R é uma calculadora fixe. A ausência de ajuda na língua russa nas principais funções mata-me, bem, é muito importante para mim por causa da minha fraqueza na linguística.

Visualização - há algumas dificuldades, para mim as árvores de grande porte não são adequadas para visualização, só a conversão para PDF ajuda, isso já é bom.