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

 
Dr. Trader:

Um resumo das cem páginas anteriores :)

A neurônica e quase todos os outros modelos populares estão muito longe da inteligência artificial. Eles podem simplesmente encontrar tais combinações de valores preditores que atingem a precisão de aprendizagem desejada, e em previsões futuras eles interpolam (ou extrapolam) os resultados passados para obter uma nova previsão.

Isso significa que se tomarmos, por exemplo, Ma, Rci e Stochastic para preditores e treinarmos a rede neural usando reversões em ziguezague como objetivo de treinamento - diremos à rede neural que "esses três preditores podem prever reversões". E a própria rede neural não será capaz de descobrir se estes preditores realmente se encaixam. Ele se lembrará desses dados com precisão aceitável e na negociação esperamos que as mesmas combinações de Ma, Rci e Stochastic sejam salvas antes da reversão. Mas eles não vão, e isso vai falhar.

Um modelo treinado em preditores inúteis irá falhar mesmo que seja gbm, mesmo que seja rede neural, mesmo que seja regressão. Você pode até mesmo gerar séries aleatórias e usá-las como preditores, a neurônica encontrará combinações recorrentes entre elas e se lembrará delas.
É tarefa de um mineiro de dados humanos selecionar os preditores e a finalidade do treinamento, usando outras ferramentas. E treinar o modelo (o neurónio) é um pequeno penúltimo passo.

Os preditores devem manter a correlação com o alvo nos dados de treinamento, tanto no passado como no futuro. É por isso que SanSanych fala sobre testar o modelo em diferentes arquivos, apenas para garantir que as dependências encontradas não desapareçam com novos dados.
Isto é, estudamos e coletamos cuidadosamente os preditores e o alvo, treinamos o modelo e o testamos. Depois testamos em dados completamente novos para o modelo. Se a precisão da previsão em ambos os casos não coincidiu, os preditores ou o alvo não são adequados. Devíamos procurar outro.


Na minha opinião, a neurónica não é adequada para prever séries cronológicas não estacionárias. O comportamento dos preços está em constante mudança, os padrões encontrados param de funcionar depois do horário de trabalho, tudo é caótico. E depois alguém pega num neurónio, dá-lhe preços durante alguns meses e pede para encontrar as dependências que se repetem durante este tempo. Mas não há dependências repetidas e o que o neurônio pode encontrar e lembrar será apenas uma coincidência 100% aleatória.

Se tomarmos um neurônio, então podemos dar-lhe apenas preços processados (e não puro ohlc), como indicadores.


Porque é que tens uma mente tão estreita, todos escrevem aqui como se nunca tivessem visto nada mais doce do que uma cenoura )) Não se preocupe com os preditores, ensine o neurônio a encontrar esses preditores, ensine o neurônio a ensinar o neurônio, experimente :) Obviamente é muito burro pegar indicadores simples, alimentá-los com a entrada e saída em ziguezague, não sei porque todos estão discutindo isso :) E claro que isto não é IA, é apenas classificação, não é preciso um neurónio de todo! Você pode fazer com um classificador Bayesiano
 
Maxim Dmitrievsky:

Porquê pensar tão estreitamente, todos aqui escrevem como se nunca tivessem visto nada mais doce do que uma cenoura)) Fodam-se os preditores, ensinem o neurônio a encontrar esses preditores, ensinem o neurônio a ensinar o neurônio, experimentem :)
Acho que os neurónios devem colocar preditores inúteis a 0 - e não vão afectar a produção! A única diferença será na velocidade de cálculo entre todos os preditores e com metade dos mais importantes. Mas isto também é importante.
 
elibrarius:
Bem, também me parece que a neurônica deve considerar os preditores inúteis como 0 - e eles não afetarão a saída! A única diferença seria a velocidade computacional entre todos os preditores e metade dos preditores mais importantes.

É assim que a neurônica foi criada para tarefas de recursos intensivos, o único problema é que em mt5 ela é muito limitada. Você pode criar modelos muito complexos, originais e não óbvios, só então será divulgado o potencial de aplicação de NS, mas certamente não nessas técnicas, que são discutidas aqui, é como o básico para iniciantes :) Se não tens capacidade suficiente, há servidores para treinar NS... Qualquer coisa que possa ser treinada em 5-30 minutos em um PC normal não é, na minha opinião, neurônica e primitiva em absoluto :)
 
Maxim Dmitrievsky:

Foi assim que a neurônica foi criada para tarefas de uso intensivo de recursos, o único problema é que em mt5 ela é muito pobre neste momento. Você pode criar modelos muito complexos, originais e não óbvios, só então o potencial da aplicação de NS será revelado, mas certamente não nessas técnicas, que são discutidas aqui, é como o básico para iniciantes :)

Por quê? Estou planejando usar neurônicos em MQL puro para otimização (para escolher parâmetros de indicadores) e executá-lo em uma rede ou na nuvem. 20000 agentes podem contar - é impossível comparar com qualquer R no que diz respeito à velocidade. Embora pareça que R também tem distribuição de tarefas para a nuvem Azure

 
elibrarius:

Bem, por quê? Estou planejando usar neurônicos em MQL puro para otimização (para escolher parâmetros para indicadores) e executá-lo na rede ou na nuvem. 20000 agentes podem contar - nenhum R pode se comparar com qualquer outro em termos de velocidade


Quero dizer que os neurónios no mt5 não são suficientes, apenas um :)
 
Maxim Dmitrievsky:

Eu quis dizer que os neurónios no mt5 são poucos, apenas um :)
Bem, o mais importante ainda é a qualidade dos dados de entrada, se você os tiver, então até 1 neurônio vai resolver o problema
 
elibrarius:
Bem, o mais importante ainda são os dados de entrada qualitativa, se você os tiver, então 1 neurônio vai resolver o problema.

Não, não vai. Se você aumentar a amostra, seu neurônio encolherá devido ao estresse e estourará :) Não será capaz de se aproximar de uma amostra deste tipo e produzirá permanentemente 0,5
 
Maxim Dmitrievsky:

Não, não vai. Se aumentar a amostra, o seu neion encolherá devido ao stress e rebentará :) Ele não será capaz de aproximar tal amostra e irá gerar constantemente 0,5 na saída

0,5 será 0,5 se todos os inputs tiverem um multiplicador de 1. Mas se a rede aprender e definir o multiplicador para inputs insignificantes como 0, e para os mais importantes como 1, então tudo estará bem. A saída não será 1, mas por exemplo, reage se a saída for >0.8

Mas infelizmente não há indicadores que se correlacionem com os resultados corretos. Portanto, os drawdowns certamente vão acontecer. Só precisas de dobrar a probabilidade para o teu lado.
 
elibrarius:

0,5 será se todos os inputs tiverem multiplicador = 1. E se a rede aprender e definir as entradas insignificantes como 0 e as entradas mais importantes como 1, então tudo estará bem. Na saída, claro, não será 1, mas por exemplo, reaja se a saída for >0,8

Mas infelizmente não há indicadores que se correlacionem com os resultados corretos. É por isso que as drawdowns estão destinadas a acontecer. Você só precisa dobrar a probabilidade a seu favor.

Não é que eles não estejam correlacionados, eles se contradizem quando a amostra aumenta, sim, no final ou a saída é sempre 0 ou 1, ou 0,5... além disso para 1 neurônio. Então, se >0,5 vender e <0,5 comprar. Você define preditores corretos (na sua opinião) e respostas corretas, ou seja, se psi é sobre-vendido e o mercado cresce nas próximas n-bars, então produza 0, e se psi é sobre-comprado e o mercado desce, então produza 0. Mas haverá muitos casos em que será ao contrário e se embotar, misturar os sinais e entrar em transe. Como resultado, a produção será sempre em torno de 0,5 com desvios muito pequenos numa direcção ou noutra... e acontecerá com todos os osciladores, porque não são de todo preditores, são derivados do preço :)
 
Dr. Trader:

Assim, se tomarmos, por exemplo, Ma, Rci e Stochastic para preditores, e treinamos a rede neural usando reversões em ziguezague como um alvo de treinamento - dizemos à rede neural que "esses três preditores podem prever reversões". E a própria rede neural não saberá se estes preditores realmente se encaixam. Ele se lembrará desses dados com precisão aceitável e na negociação esperamos que as mesmas combinações de Ma, Rci e Stochastic sejam salvas antes da reversão. Mas eles não vão, e isso vai falhar.

IMHO é mais correto pensar em classificação e regressão como diferentes tipos de pontos médios em N-d, nas proximidades de algum kernel, como acontece por exemplo no kNN que é dito ser um aproximador "ideal", mas lento e não prático. Na classificação apenas as respostas são calculadas como média, em fichas de regressão e as respostas são calculadas como média. Obviamente, se esta média misturar pontos contraditórios, então o resultado será ruidoso, não pronunciado.