Saída: TotalBase.dat (dados binários da trajetória).
Saída: TotalBase.dat (dados binários da trajetória).
Então, como podemos executar a etapa 1 porque não temos o Encoder (Enc.nnw) e o Actor (Act.nnw) treinados anteriormente, portanto, não podemos executar o Research.mq5 e não temos o arquivo Signals\Signal1.csv, portanto, também não podemos executar o ResearchRealORL.mq5?
Dê uma olhada no novo artigo: Redes neurais no comércio: Modelos de espaço de estado.
Autor: Dmitriy Gizlyk
Pelo que entendi, em seu pipeline, na Etapa 1, precisamos executar o Research.mq5 ou o ResearchRealORL.mq5 com os detalhes a seguir:
Saída: TotalBase.dat (dados binários da trajetória).
Saída: TotalBase.dat (dados binários da trajetória).
Então, como podemos executar a etapa 1 porque não temos o Encoder (Enc.nnw) e o Actor (Act.nnw) treinados anteriormente, portanto, não podemos executar o Research.mq5 e não temos o arquivo Signals\Signal1.csv, portanto, também não podemos executar o ResearchRealORL.mq5?
Olá,
No Research.mq5, você pode encontrar
//--- carregar modelos float temp; //--- if(!Encoder.Load(FileName + "Enc.nnw", temp, temp, temp, dtStudied, true)) { CArrayObj *encoder = new CArrayObj(); if(!CreateEncoderDescriptions(encoder)) { delete encoder; return INIT_FAILED; } if(!Encoder.Create(encoder)) { delete encoder; return INIT_FAILED; } delete encoder; } if(!Actor.Load(FileName + "Act.nnw", temp, temp, temp, dtStudied, true)) { CArrayObj *actor = new CArrayObj(); CArrayObj *critic = new CArrayObj(); if(!CreateDescriptions(actor, critic)) { delete actor; delete critic; return INIT_FAILED; } if(!Actor.Create(actor)) { delete actor; delete critic; return INIT_FAILED; } delete actor; delete critic; } //---
Portanto, se você não tiver um modelo pré-treinado, o EA gerará modelos com parâmetros aleatórios. E você pode coletar dados de trajetórias aleatórias.
Sobre o ResearchRealORL.mq5, você pode ler mais no artigo.
- www.mql5.com
Um moderador corrigiu a formatação desta vez. Por favor, formate o código corretamente no futuro; postagens com código formatado incorretamente poderão ser removidas.
Em trajectory.mqh, camada 2-4 (por volta da linha 604) na pasta mamba
, acho que há um problema:
moveu new CLayerDescription() para dentro do loop do Mamba para que cada uma das 3 camadas receba sua própria alocação
é assim que eu escreveria.
for(int i = 2; i <= 4; i++) { if(!(descr = new CLayerDescription())) return false; descr.type = defNeuronMambaOCL; descr.window = BarDescr; //janela descr.window_out = 4 * BarDescr; //Dimensão interna prev_count = (int)(descr.count = HistoryBars); //Unidades descr.batch = 1 e4; descr.activation = None; descr.optimization = ADAM; if(!encoder.Add(descr)) { delete descr; return false; } }
Alguém pode me informar se estou certo ou errado.
em trajectory.mqh, camada 2-4 (por volta da linha 604) na pasta mamba
Acho que há um problema:
moveu new CLayerDescription() para dentro do loop do Mamba, de modo que cada uma das 3 camadas recebe sua própria alocação
.
Alguém pode me informar se estou certo ou errado.
Boa tarde, Seyedsoroush Abtahiforooshani.
Nesse caso, não formamos uma camada, mas fazemos apenas uma descrição de sua arquitetura. E o programa gera camadas de neurônios com base nessa descrição. Na variante inicial, quando descr = new CLayerDescription() é formado fora da matriz, formamos um objeto descr para camadas únicas e passamos seu ponteiro o número necessário de vezes. O objeto descr não é alterado ao formar as camadas do modelo. É por isso que as camadas de neurônios são formadas com arquitetura idêntica, mas cada uma delas recebe seus próprios parâmetros.
Quando você moveu a formação do objeto para um loop, nada muda para o modelo que está sendo criado. Apenas criamos duplicatas de descrição adicionais , que serão excluídas imediatamente após a formação do modelo. Isso adiciona algumas operações extras e consumo de memória ao formar o modelo. Não há impacto na operação do modelo.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Redes neurais em trading: Modelos de espaço de estados foi publicado:
A base de muitos dos modelos que examinamos anteriormente é a arquitetura Transformer. No entanto, eles podem ser ineficientes ao lidar com sequências longas. Neste artigo, proponho uma abordagem alternativa de previsão de séries temporais com base em modelos de espaço de estados.
Recentemente, tornou-se amplamente difundida a adaptação de grandes modelos previamente treinados em grandes conjuntos de dados brutos de diversas áreas, como texto, imagens, áudio, séries temporais, entre outros, para novas tarefas.
Embora esse conceito não dependa de uma arquitetura específica, a maioria dos modelos é baseada em um único tipo de arquitetura: Transformer e sua camada principal, Self-Attention. A eficiência do Self-Attention deve-se à sua capacidade de direcionar informações de forma densa para a janela de contexto, o que permite modelar dados complexos. No entanto, essa característica apresenta desvantagens fundamentais: a incapacidade de modelar qualquer coisa além da janela final e o escalonamento quadrático em relação ao comprimento da janela.
Nas tarefas de modelagem de sequências, uma solução alternativa pode ser o uso de modelos estruturados de sequências em espaço de estados (Space Sequence Models — SSM). Esses modelos podem ser interpretados como uma combinação de redes neurais recorrentes (RNN) e redes neurais convolucionais (CNN). Esta classe de modelos pode ser computada de maneira muito eficiente, com escalonamento linear ou quase linear em relação ao comprimento da sequência. Além disso, possui mecanismos fundamentais para modelar dependências de longo alcance em determinadas modalidades de dados.
Um dos algoritmos propostos no artigo "Mamba: Linear-Time Sequence Modeling with Selective State Spaces" permite o uso de modelos de espaço de estados para a previsão de séries temporais. Ele apresenta uma nova classe de modelos de espaço de estados seletivos.
Autor: Dmitriy Gizlyk