Discussão do artigo "Redes neurais em trading: Previsão probabilística de séries temporais (Conclusão)"
Estou tendo alguns problemas com o VAE.mqh e descobri que o seguinte funciona muito bem para contornar o problema.
bool CVAE::calcInputGradients(CNeuronBaseOCL *NeuronOCL) { if(!OpenCL || !NeuronOCL) return false; //--- if(!OpenCL.SetArgumentBuffer(def_k_VAECalcHiddenGradient, def_k_vaehg_input, NeuronOCL.getOutput().GetIndex())) return false; if(!OpenCL.SetArgumentBuffer(def_k_VAECalcHiddenGradient, def_k_vaehg_inp_grad, NeuronOCL.getGradient().GetIndex())) return false; if(!OpenCL.SetArgumentBuffer(def_k_VAECalcHiddenGradient, def_k_vaehg_random, m_cRandom.GetIndex())) return false; if(!OpenCL.SetArgumentBuffer(def_k_VAECalcHiddenGradient, def_k_vaehg_gradient, Gradient.GetIndex())) return false; if(!OpenCL.SetArgument(def_k_VAECalcHiddenGradient, def_k_vaehg_kld_mult, m_fKLD_Mult)) return false; // Calcular tamanhos de trabalho adequados uint neurons_count = (uint)Neurons(); uint local_size = 64; // ou 32, 128, 256, dependendo de sua GPU // Arredondar o tamanho global para que seja divisível pelo tamanho local uint global_size = ((neurons_count + local_size - 1) / local_size) * local_size; uint work_offset[] = {0}; uint work_size[] = {global_size}; uint local_work_size[] = {local_size}; if(!OpenCL.Execute(def_k_VAECalcHiddenGradient, 1, work_offset, work_size, local_work_size)) return false; //--- return true; }
Eu também tentei o mesmo método de teste. Primeiro, usei o Study para aprender com dados históricos 1.000.000 vezes, gerando os arquivos nnw relevantes. Depois, usei o StudyOnline para aprender com dados de um ano (durante esse período, não houve receita; a conta de US$ 10.000 ficou sem dinheiro rapidamente e, após o término da simulação, atualizei parte dos arquivos nnw). Por fim, os resultados do teste foram basicamente os mesmos do StudyOnline (sem lucro).
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
Novo artigo Redes neurais em trading: Previsão probabilística de séries temporais (Conclusão) foi publicado:
Como já mencionamos, o treinamento do modelo é realizado em duas etapas sequenciais. Primeiro, realizamos o treinamento offline com 15 anos de histórico do par EURUSD no timeframe H1. Esse conjunto de dados abrange todos os tipos de situações de mercado: de longos períodos laterais a tendências bruscas, de fases tranquilas a picos de volatilidade. Graças a isso, o modelo conseguiu aprender a diversidade do comportamento do mercado. O Encoder aprendeu a destacar os principais padrões e a transformar o estado do mercado em uma representação compacta, porém informativa, que se tornou a base para a tomada de decisões pelo Agente. Já o Actor, utilizando o feedback do Critic e do Director, formou uma estratégia robusta, capaz de operar com eficiência em diferentes condições.
Em seguida, veio a segunda etapa: o treinamento online com dados de 2024, organizado no testador de estratégias do MetaTrader 5. Aqui, o modelo operou em um regime próximo ao tempo real, analisando o mercado vela a vela. Ele enfrentou ruídos, flutuações aleatórias e distorções características do mercado real. Essa abordagem permitiu não apenas continuar o treinamento do modelo, mas também adaptar seu comportamento à dinâmica real, aprimorar a estratégia e aumentar a robustez em condições de incerteza.
Após a conclusão do treinamento, realizamos o teste com novos dados, as cotações de janeiro a março de 2025, mantendo todos os parâmetros usados durante o treinamento. Os resultados do teste são apresentados abaixo.
Os resultados do teste mostram que o modelo apresentou lucro positivo no período histórico selecionado. O lucro líquido total foi de $821.90 com um depósito inicial de $100.0, o que indica crescimento do capital. Ao mesmo tempo, cabe observar que o Profit Factor ficou em 1.06, o que indica uma ligeira superioridade dos lucros sobre as perdas.
Autor: Dmitriy Gizlyk