Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 336
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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/
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
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
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
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?
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.
alguém tentou programação genética como um método ML?
Como o Chaos Hunter?
É 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 ))