Discussão do artigo "Redes neurais em trading: Otimização de LSTM para fins de previsão de séries temporais multidimensionais (Conclusão)"

 

Novo artigo Redes neurais em trading: Otimização de LSTM para fins de previsão de séries temporais multidimensionais (Conclusão) foi publicado:

Continuamos a implementação do framework DA-CG-LSTM, que propõe métodos inovadores de análise e previsão de séries temporais. O uso de CG-LSTM e do mecanismo de atenção dupla permite identificar com maior precisão tanto dependências de longo prazo quanto de curto prazo nos dados, o que é especialmente útil para o trabalho com mercados financeiros.

Como já observado anteriormente, a base da arquitetura do framework DA-CG-LSTM é composta por dois componentes fundamentais: os módulos de atenção e o bloco recorrente CG-LSTM modificado. Esses elementos formam uma estrutura sólida do modelo, garantindo a ele a flexibilidade necessária, resistência aos ruídos de mercado e a capacidade de capturar dependências temporais complexas em múltiplos níveis. Em condições de alta volatilidade e caoticidade dos mercados financeiros, tais qualidades deixam de ser apenas desejáveis e se tornam criticamente necessárias para a construção de sistemas de trading confiáveis.

Na parte prática do artigo anterior, analisamos em detalhe o processo de criação do bloco CG-LSTM utilizando MQL5. O componente desenvolvido implementa com sucesso três funções fundamentais: a filtragem de características para eliminar ruído excessivo, o gerenciamento eficiente do estado interno do modelo para preservar informações de longo prazo e a agregação de dados em diferentes níveis temporais. A capacidade do bloco de suprimir ruído não estruturado e manter uma dinâmica estável de treinamento permite construir modelos que não perdem a qualidade das previsões em longos intervalos de dados históricos.

Redes neurais em trading: Otimização de LSTM para previsão de séries temporais multidimensionais (Conclusão)


Autor: Dmitriy Gizlyk

 
Quero compartilhar minha experiência e minhas emoções. Primeiro, um agradecimento especial e uma reverência ao autor. Há um ou dois meses, eu teria ficado com medo de um artigo como esse. Eu teria pensado que não teria condições de pagar por ele. Hoje tudo mudou de cabeça para baixo. As redes neurais são a mágica de nosso tempo. Eu mesmo não consigo acreditar, mas estou sentado aqui neste momento coletando dados para treinar essa rede neural. Ela está funcionando. Acabei de alimentar esses dois artigos e o guia original do ChatGPT o3, e ele está me guiando pelo curso. Eu também tinha uma ideia de indicador em uma longa gaveta há vários anos, que consegui formular apenas no Excel devido à minha falta de conhecimento de MQL. Em algumas semanas, eu a implementei com a ajuda do Grok e do ChatGPT em MQL5. E funciona! E ele negocia! E agora também posso conectar esse neurônio mágico diretamente ao meu indicador. Em resumo, estou muito emocionado com a rapidez com que se abriram caminhos ilimitados.
 
A propósito, quando realizo a Pesquisa com farms conectados, os farms infelizmente geram o binário (DACGLSTM.bd) apenas localmente. Ou seja, esse arquivo não é compartilhado de forma alguma, mas cada computador tem o seu próprio, localmente. A Neuronka me deu uma ideia, mas não me dei ao trabalho:

.

Como fazer com que todos os agentes de teste gravem um .bd em uma bola de rede - em 4 etapas

  1. Pasta compartilhada

    • No PC "principal", crie D:\DACShare .

    • PCM → "Access" → "Advanced" → compartilhamento DACGLSTM, permissões de leitura/gravação para todos.

    • Caminho final: \MAINPC\DACGLSTM .

  2. Conta para serviços

    • compmgmt.msc → "Usuários" → adicionar mqlagent (qualquer senha).

    • Em services.msc em cada MetaQuotes Tester Agent ... → guia "Login" → "This account" → MAINPC\mqlagent , digite a senha e reinicie o serviço.

  3. Editar código de pesquisa

    string de entrada SharedRoot = "\\\\MAINPC\\\DACGLSTM\\\"; string FileName = SharedRoot + "trajectories"; int handle = FileOpen(FileName + ".bd", FILE_WRITE|FILE_BIN|FILE_SHARE); // em vez de FILE_COMMON

    (mesma substituição de leitura). Compile o arquivo .ex5 e copie-o para todos os agentes.

  4. Verifique
    Execute a otimização; o registro de cada agente mostrará:
    Saved to: \MAINPC\DACGLSTM\DACGLSTM.bd size=...
    Abra o balão - o arquivo cresce após cada passagem.

Agora todos os agentes locais e remotos gravam um único buffer de dados, e o Study.mq5 pode aprender em qualquer máquina, bastando abrir o mesmo .bd

 

Não tenho certeza de como o DACGLSTM.bd é atualizado

Executo a pesquisa em um intervalo de 1 mês. A otimização está completa. O parâmetro de otimização é Agente de 1 a 8. Então, no mês seguinte... mas o arquivo não é gravado. Vejo que a data do arquivo é atualizada apenas com o início de um novo teste e é isso, mas o tamanho permanece o mesmo.

 
Vladimir Sanin #:

Não está muito claro como o DACGLSTM.bd é atualizado

Executo a pesquisa em um intervalo de 1 mês. A otimização está completa. O parâmetro de otimização é Agente de 1 a 8. Então, no mês seguinte... mas o arquivo não é gravado. Vejo que a data do arquivo é atualizada apenas com o início de um novo teste e é isso, mas o tamanho permanece o mesmo.

Informe-me o tamanho do seu arquivo DACGLSTM.bd e o número de negociações por mês.

 
Andrey Yankin #:

Informe-me o tamanho de seu arquivo DACGLSTM.bd e o número de negociações por mês.

Consegui acumular 800 MB de trajetórias por tentativa e erro. Tentei períodos diferentes - 10 dias, um mês, 3-6-12 meses.... Após a última execução do segundo semestre de 2024, o tamanho aumentou de 200 para 800. Depois disso, executei outra segunda metade do ano de 2023, mas o arquivo não mudou de tamanho. Os negócios de meio ano acumulam cerca de 3.000 a 3.500, no período de 15 minutos que uso - todos os ticks. Em períodos de tempo menores, o processo começa a se arrastar por um tempo muito longo, e não estou disposto a esperar tanto tempo. Sim, a propósito, aumentei o MaxReplayBuffer para 1000000, que era 500.

 
Não está claro como executar o Study, em um único teste ou no modo de otimização.
 
Vladimir Sanin #:
Estudo

O Study é simplesmente colocado no gráfico. Depois de instalado, ele lê os arquivos de dados e começa a otimizar. Ele exibe o progresso e os resultados no gráfico, no canto superior esquerdo.

Em um período de 15 minutos, 3.000 negociações em meio ano.... Acontece que quase toda segunda vela abre uma negociação, e todas elas em Sell. Você pode ter certeza disso executando um único teste com visualização ou configurando-o em uma conta de demonstração. As negociações são abertas e fechadas no próximo candle.

 
Executou o Study em um único teste. Iteração 100000 (padrão), lote 128. Gráficos Intel UHD 730. Acho que o intervalo de datas não importa aqui? De qualquer forma, ele começou, um núcleo e o vídeo estão quentes, mas mesmo as porcentagens não estão em execução, apenas ocupadas. Não sei quanto tempo devo esperar. Estou testando em outro computador potente com uma boa placa de vídeo.....
 
Andrey Yankin #:

O Study apenas o coloca no gráfico. Depois de instalado, ele lê os arquivos de dados e começa a otimizar. Ele exibe o progresso e os resultados no gráfico no canto superior esquerdo.

Em um período de 15 minutos, 3.000 negociações em meio ano.... Acontece que quase a cada segundo a vela abre uma negociação, e tudo em Sell. Você pode ter certeza disso executando um único teste com visualização ou configurando-o em uma conta de demonstração. As negociações são abertas e fechadas no próximo candle.

Então, é necessário colocá-lo no gráfico e executar um teste com otimização? Não estamos falando da versão on-line, certo? Não está claro qual intervalo de datas deve ser usado para o estudo, certo? Executei o teste com visualização e vejo os dados mudando no canto superior esquerdo, mas o gráfico permanece no lugar. As porcentagens nos dados estão aumentando lentamente ao mesmo tempo e da mesma forma, mas o gráfico em si permanece parado.


 
Vladimir Sanin #:
Estudo
Estudar somente no gráfico.