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

 
Yuriy Asaulenko:


Na verdade, eles dizem que há muita neurônica na internet e em C++. Mas eu não os procurei.


http://www.opennn.net/

https://www.neuraldesigner.com/

OpenNN | Open Neural Networks Library
  • www.opennn.net
The main advantage of OpenNN is its high performance. It is developed in C++ for better memory management and higher processing speed, and implements CPU parallelization by means of OpenMP and GPU acceleration with CUDA.
 
E ainda assim, pelo que entendi, não há resultados comerciais satisfatórios, nem mesmo na demonstração!
 
elibrarius:

Estou a começar a explorar as redes neurais.

Estou olhando para opções que podem ser implementadas diretamente no MT5.

Estou interessado na variante que utiliza ALGLIB (https://www.mql5.com/ru/articles/2279), mas da descrição da rede resulta que se trata de uma rede sequencial sem feedbacks. E a desvantagem é que ele só pode ser treinado por um fio de processador (que processa o Expert Advisor com uma rede neural).

Eu acho que não seria muito difícil adicionar 2 camadas sequenciais ocultas à rede neural a partir do artigo https://www.mql5.com/ru/articles/497 e depois treiná-la por força bruta total ou genética no testador. Mas neste caso você pode usar muito mais tópicos computacionais (núcleos do seu processador, na rede e na nuvem). Estou a perceber bem?

Como adicionar instruções manuais para respostas corretas (compra e venda de locais) no treinamento de uma rede desse tipo?

Talvez já exista uma biblioteca para uma rede sequencial de várias camadas em algum lugar?

E também, eu não entendo muito bem a utilidade de usar camadas internas, para fins de negociação forex/exchange. Faz sentido adicioná-los? Porquê?


O MLP não é bom para previsão de mercado, veja os vídeos acima, ele precisa de RNN, ou seja, rede com memória.

https://nplus1.ru/material/2016/11/04/recurrent-networks

Азбука ИИ: «Рекуррентные нейросети»
Азбука ИИ: «Рекуррентные нейросети»
  • 2016.11.04
  • Тарас Молотилин
  • nplus1.ru
N+1 совместно с МФТИ продолжает знакомить читателя с наиболее яркими аспектами современных исследований в области искусственного интеллекта. В прошлый раз мы писали об общих принципах машинного обучения и конкретно о методе обратного распространения ошибки для обучения нейросетей. Сегодня наш собеседник — Валентин Малых, младший научный...
 
Renat Akhtyamov:
E mesmo assim não há resultados comerciais satisfatórios, mesmo na demonstração!

É uma questão de optimização, ainda não vale a pena definir todas as versões, vou testá-la quando tiver implementado tudo completamente
 
Yuriy Asaulenko:

Uma experiência para treinar uma rede neural (NS) para atravessar dois MAs falhou. Foi treinado para reconhecer apenas o crossover ascendente.

Para a experiência, o NS - 3,3,3,1 foi selecionado e testado para treinamento e reconhecimento de padrões criados artificialmente. No entanto, depois de aprender a reconhecer os MA, não foi reconhecido um único crossover. A razão - o NS precisa de mais imagens de contraste, e não se importa com todas as diferenças de 0,01-0,1 entre os inputs.

Para uma dada estrutura de NS é bastante possível obter um reconhecimento confiável com uma diferença de sinal não inferior a 0,2-0,3.


MLP você o tempo todo e vai dar tal bagunça, eu já experimentei com eles, não há como pegar as camadas - depois reciclar, depois reciclar não camadas suficientes, depois a quantidade deles
 
Renat Akhtyamov:
Não consigo ver resultados satisfatórios mesmo em demonstração!

Ninguém vai passar meses a desenvolver uma estratégia e depois vai gabar-se dela numa conta de demonstração. Tais coisas são negociadas no real, e o histórico de transações é escondido de todos. Até li no fórum como as pessoas negociam propositadamente em dois corretores, revezando-se perdendo em um e compensando as perdas no outro, de modo que até o corretor não sabe quais negociações foram feitas usando a estratégia e quais foram falsas.

Há resultados. Às vezes, boas combinações de preditores e o modelo trazem lucro por um par de meses, mais frequentemente - menos. Mas eles são substituídos por outros.


Minha opinião pessoal - neurônica, floresta, regressões - tudo isso é muito fraco para forex. A razão é que o comportamento dos preços está sempre a mudar, as regras que hoje são lucrativas podem não ter sido lucrativas há uma semana atrás. E a abordagem padrão - tomar indicadores e preço por um par de meses e treinar a neurônica - significa que ela deve encontrar as mesmas regras de comportamento de preço para todos os dois meses. E não existem tais regras e ninguém sabe o que vai encontrar, mas estará errado 99% do tempo. Às vezes o modelo pode ter sorte e cair nesse 1%, mas está muito longe do graal e esses Expert Advisors geralmente negociam bem até a primeira parada de perda e depois podem ser jogados fora.

Estou estudando modelos de reconhecimento de padrões que observam o comportamento dos preços após padrões similares na história e uso essas estatísticas para negociação.
Ainda não vi um pacote em R que faça tudo o que eu preciso, tenho um modelo montado em peças de outros, mais as minhas próprias motos. O mais próximo que eu vi de uma descrição de modelo está em outro fio, eu aconselharia começar a construir seu graal com isso (citação abaixo). Novos problemas surgirão no processo, você terá que pensar e experimentar sobre eles.

Fórum sobre negociação, sistemas de negociação automatizados e testes estratégicos

Analisar as características ESTATÍSTICAS mais importantes de um padrão e escolher um método de negociação com base nele.

Vladimir, 2017.04.06 06:20

Procura no indicador do meu vizinho mais próximo na base de código. O método é bastante simples. Definir o comprimento do padrão atual, encontrar padrões similares da história (por exemplo, usar correlação como distância entre padrões), prever o comportamento futuro dos preços a partir de padrões passados, ponderando suas previsões individuais. Isto é essencialmente o mesmo que clustering, ou RBF, ou SVM, ou GRNN. Tudo depende de como você mede a distância do padrão atual para padrões passados similares. Leia sobre o GRNN e Bayes. Aí a teoria da previsão é descrita em termos de distribuições estatísticas. Há muito escrito sobre o GRNN e os métodos de previsão acima mencionados e tudo se resume a uma simples fórmula:


prediction y = SUM y[k]*exp(-d[k]/2s^2) / SUM exp(-d[k]/2s^2)


onde y[k] é o k-ésimo padrão passado, d[k] é a distância do k-ésimo padrão até o padrão atual. Se as distâncias têm distribuição gaussiana então d[k] = (x - x[k])^2. Para uma distribuição arbitrária (super gaussiana), d[k] = |x - x[k]|^p, onde você escolhe p dependendo se você quer dar mais peso aos vizinhos mais próximos (p grande), ou dar a todos os vizinhos quase o mesmo peso (p pequeno) como no socialismo. Com p=0, temos o socialismo total.

Depois de conhecer os vizinhos mais próximos e o GRNN, surge a próxima questão óbvia. Como medir a distância entre o padrão atual e os padrões passados se você levar em conta as distorções do eixo temporal (ou seja, padrões passados podem parecer padrões atuais, mas esticados ou comprimidos no tempo). É aqui que reside o problema.


 

alguém tentou programação genética como um método ML?

Como o Chaos Hunter?

 
Maxim Dmitrievsky:


O MLP não é adequado para previsões de mercado, veja os vídeos acima, ele precisa do RNN, ou seja, rede com memória

https://nplus1.ru/material/2016/11/04/recurrent-networks

Se não estou enganado, o RNN será extremamente difícil de implementar na MT5, e bons resultados requerem ou a compra ou o desenvolvimento interno com custos de mão-de-obra enormes.

Se você enviar para o MLP além de informações sobre preço e indicadores na barra atual, todas as mesmas informações para 10-30 barras anteriores, será uma espécie de memória. Alguns dos neurónios irão processar o estado actual e outros irão processar o desenvolvimento da situação no passado mais próximo.

Quando negociamos manualmente, olhamos também para as últimas barras, e não apenas para o estado actual dos indicadores.

É claro que a quantidade de cálculos vai aumentar, por isso estava interessado na possibilidade de transferir cálculos de um núcleo para todos os núcleos do processador, rede ou nuvem. Como é que isto pode ser feito? Pelo menos para o MLP.

 
nowi:

alguém tentou programação genética como um método ML?

Como o Chaos Hunter?

Que tal como o Chaos Hunter's? Dá-me uma ligação específica.
 
elibrarius:

É claro que a quantidade de computação vai aumentar, e é por isso que eu estava interessado na possibilidade de transferir computação de um núcleo para todos os núcleos do processador, da rede ou da nuvem. Como é que isto pode ser feito? Pelo menos para o MLP.


No OpenCL, não se você não for preguiçoso ))