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

 
Mihail Marchukajtes:

Tenha em mente que qualquer redundância de dados irá atrasar a entrada do modelo em combate. Isto afecta directamente a qualidade dos sinais recebidos depois de 0 de Janeiro de 2010.

Pessoalmente, escolhi a seguinte metodologia. Inverti o modelo obtido utilizando sinais de Compra e testei-o na mesma parte do mercado, mas para sinais de Venda. Assim, eu não perco tempo precioso e estimar adequadamente as capacidades do modelo. IMHO

Eu quero tentar ensinar e testar o modelo usando o método clássico do trem|valid|teste. Se o modelo funcionar, então o teste será uma troca real, ou seja, eu uso o trem|valid em NS e faço uma troca real em configurações obtidas. Ou talvez um comboio seja suficiente? Para que a formação esteja próxima do momento da verdadeira negociação. Como último recurso, podemos validar os dados antes do plano do comboio.
 

A propósito, sim. A seção de controle também pode ser antes da seção do estagiário. Eu também faço isso, mas tenho classificação, não quer saber da ordem. Em caso de previsão ou regressão, a ordem dos dados é IMPORTANTE.

Mas no meu caso com separação em Compra e Venda é o mais importante, porque a seção de controle cai no mesmo período de mercado que a seção de aprendizado. É que os dados são diametralmente opostos, mas todas as leis e notícias que estão em vigor no momento são as mesmas tanto para as seções de treinamento como de controle. Neste caso, a negociação começa logo após a seção de trem, o que potencialmente aumenta o tempo do TS.

 
Mihail Marchukajtes:

Pessoalmente, eu escolhi a seguinte metodologia. Inverti o modelo obtido utilizando sinais de Compra e testei-o na mesma parte do mercado, mas para sinais de Venda. Assim, eu não perco tempo precioso e estimar adequadamente as capacidades do modelo. IMHO

Por que não ensinar um único modelo com valores de saída de Compra e Venda, por exemplo de 1.0 a -1.0, e tudo em torno de 0.0 é plano?

 
elibrarius:
Quero tentar treinar e testar o modelo usando a metodologia clássica com o train|valid|test. Se o modelo funcionar, então o teste será uma troca real, ou seja, eu alimento o trem|valido para NS e faço uma troca real nas configurações recebidas. Ou talvez um comboio seja suficiente? Para que a formação esteja próxima do momento da verdadeira negociação. Como último recurso, podemos validar os dados pré-trem.
Eles discutem aqui sobre o número e a sequência do treinamento, teste, validação, mas não falam sobre validação cruzada, provavelmente todos a usam por padrão ou ninguém a usa...
 
Ivan Negreshniy:
Eles discutem sobre o número e a sequência do treinamento, testes, seções de validação, mas não falam sobre validação cruzada, provavelmente todos a usam por padrão ou ninguém a usa...

Eu li que a validação cruzada é usada quando há poucos dados e você precisa de pelo menos algo para validar. Em forex há muitos dados - milhões de barras de minutos durante vários anos. Acho que ninguém a usa.

 
elibrarius:

Na validação cruzada chiall que é usado quando os dados são escassos e você precisa de algo para cair de volta. Em forex, há muitos dados, milhões de barras de minutos ao longo de vários anos. Acho que ninguém a usa.

Na minha opinião, esta é a forma correcta de compensar o efeito de embaralhar e combinar manualmente os dados de entrada.
 
Ivan Negreshniy:

Porque não ensinar ao mesmo tempo o mesmo modelo com valores de Compra e Venda na saída, por exemplo de 1.0 a -1.0, e tudo perto de 0.0 - plano?


Isso não é... Não é o nosso método. Ao ensinar a comprar e vender de imediato a área de check.... desaparece

 
Ivan Negreshniy:

Boa ideia e útil biblioteca MT5, mas é bastante problemático sincronizá-la com um ficheiro de script Python IMHO.

Acho melhor sincronizar diretamente variáveis MQL com variáveis python através de um dicionário local e executar fragmentos de código Python diretamente das constantes de strings no código da EA.

Eu tentei o teste, compilando o bcc64 a partir da linha de comando e ele funciona bem em python 3.6:

Seria bom adicionar esta funcionalidade à sua biblioteca, eu estava prestes a escrever a minha própria, mas infelizmente por enquanto estou ocupado com a biblioteca P-net para python.

A propósito, eu escrevi sobre essa nova rede neural aqui em um ramo, por resultados preliminares de testes em exemplos com a íris de Fisher é treinada três ordens de magnitude mais rápido do que o DNN em TensorFlow, com resultados de testes iguais.


Vou pensar sobre isso. Da minha biblioteca, você pode executar qualquer script Python e executar qualquer função a partir dele. A biblioteca não é complicada. Acho que será suficiente para mim e para muitos outros.

 
Grigoriy Chaunin:

Vou pensar sobre isso. Da minha biblioteca, você pode executar qualquer script Python e executar qualquer função a partir dele. A biblioteca não é complicada. Acho que será o suficiente para mim e para muitos outros.

Sim, sua biblioteca é perfeitamente utilizável, mas acho que ela poderia usar algumas melhorias, porque o carregamento de scripts a partir de arquivos separados e a sincronização de argumentos e valores de suas funções através de variáveis globais na dll nem sempre é a melhor maneira.
 

Acho que sim. É muito provável que a biblioteca mude. Agora tenho a tarefa de dominar Python em um nível avançado e dominar a ciência dos dados. O tempo todo para isso. E quando um modelo exequível estiver pronto. Já vou pensar em como ligá-lo à MT.

Renat escreveu em um thread vizinho que eles vão adicionar Python, R e C#. Mas eu não entendo se será possível simplesmente trabalhar no MetaEditor ou integrar com o MQL. Trabalhar apenas no Metaeditor não é realmente expedito, os editores de código são suficientes. Acho que a integração é mais provável. Isso seria fixe. E o meu trabalho na integração do Python é uma solução temporária.