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
Belo artigo. O gráfico de previsão nos dados de teste é decepcionante. Você poderia muito bem pular toda essa modelagem/treinamento de DNN e simplesmente usar uma previsão do próximo preço igual ao último preço conhecido. Aposto que a precisão da previsão desse modelo trivial será maior do que a do seu modelo DNN. Sugiro comparar essas duas precisões e mostrá-las aqui. Em geral, usar DNN para prever preços é uma má ideia. Eles são mais adequados para a classificação dos padrões de preços (por exemplo, comprar, vender, manter). Além disso, o número de pesos no seu DNN é astronômico. Ele deve estar se ajustando demais.
Obrigado , Vladimir.
Apenas para discussão, quando o tempo permitir, eu modificaria esse modelo para fazer a classificação para comparação.
Se tiver ideias, entre em contato comigo.
O tutorial fornece uma entrada de um lote SAMPLE_SIZE número de entradas próximas, você quer um lote de entradas input_count.
Além disso, seu modelo não usa floats como entradas, mas duplas,
Nota do moderador: Esta postagem está fora de sequência porque as postagens abaixo foram movidas de outro tópico. Consulte a postagem abaixo.
Olá comunidade MQL5, estou tentando seguir este tutorial sobre como usar o ONNX em seus EAs. No tutorial, uma rede neural foi o modelo escolhido, e eu usei uma árvore com gradiente aumentado.
Criei o modelo usando o pacote InterpretML Python e o exportei para o ONNX usando o ebm2onnx.
Farei um resumo do processo pelo qual o modelo foi treinado.
1) O modelo foi treinado com 5 entradas, OHLC e Altura, sendo que a Altura é calculada como ((H + L) / 2) - C.
2) O modelo é um classificador binário, com o objetivo de classificar o próximo candle como PARA CIMA (1) ou PARA BAIXO (0).
Os dados usados para treinar o modelo.
3) O modelo foi então exportado para o formato ONNX
Representação do modelo ONNX.
Para fazer o modelo funcionar, desviei-me do código do tutorial e continuei editando o código para tentar fazer o modelo ONNX funcionar, mas agora realmente não sei o que estou fazendo de errado. Continuo recebendo um erro informando que o identificador do modelo é inválido.
Anexei o código MQL5 abaixo.
Agora vou resumir as etapas que segui em meu código e que se desviam do que está no tutorial, e também explicarei por que me desviei do tutorial
1) LINHA 57: Definição da forma de entrada do modelo.
No tutorial, foram usadas 3 dimensões para definir a forma de entrada e saída, ou seja, {1,SAMPLE_SIZE,1}; no entanto, quando segui essa abordagem, continuei recebendo um erro, especificamente o erro 5808. Após o processo usual de tentativa e erro, percebi que se usasse apenas uma dimensão, o número de entradas, o erro desapareceria.
2) LINHA 68: Configuração da forma de saída do modelo.
A mesma lógica acima.
Os outros desvios que fiz não afetam o modelo, por exemplo, mantive o controle do tempo usando a lógica que achei mais intuitiva do que a lógica implementada no tutorial. Não precisei normalizar as entradas porque se trata de um modelo baseado em árvore.
Se você puder identificar outros erros que cometi, gostaria de receber sua opinião.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Discussão do artigo "Como usar modelos ONNX em MQL5"
Stian Andreassen, 2023.12.08 20:51
O tutorial fornece uma entrada de um lote SAMPLE_SIZE número de entradas próximas, você quer um lote de entradas input_count.
Além disso, seu modelo não usa floats como inputs, mas sim doubles,
Obrigado por compartilhar Sitan, apliquei o que você indicou, mas o erro ainda está lá
Um lote de entradas input_count.

Definir a entrada como double
Mensagem de erro.
Hello MQL5 community, I've been trying to follow this tutorial on how to use ONNX in your EA's. In the tutorial a neural network was the model of choice, I've used a gradient boosted tree.
Criei o modelo usando o pacote InterpretML Python e o exportei para o ONNX usando o ebm2onnx.
Farei um resumo do processo pelo qual o modelo foi treinado.
1) O modelo foi treinado com 5 entradas, OHLC e Altura, sendo que a Altura é calculada como ((H + L) / 2) - C.
2) O modelo é um classificador binário, com o objetivo de classificar o próximo candle como PARA CIMA (1) ou PARA BAIXO (0).
Os dados usados para treinar o modelo.
3) O modelo foi então exportado para o formato ONNX
Representação do modelo ONNX.
Para fazer o modelo funcionar, desviei-me do código do tutorial e continuei editando o código para tentar fazer o modelo ONNX funcionar, mas agora realmente não sei o que estou fazendo de errado. Continuo recebendo um erro informando que o identificador do modelo é inválido.
Anexei o código MQL5 abaixo.
Agora vou resumir as etapas que segui em meu código e que se desviam do que está no tutorial, e também explicarei por que me desviei do tutorial
1) LINHA 57: Definição da forma de entrada do modelo.
No tutorial, foram usadas 3 dimensões para definir a forma de entrada e saída, ou seja, {1,SAMPLE_SIZE,1}; no entanto, quando segui essa abordagem, continuei recebendo um erro, especificamente o erro 5808. Após o processo usual de tentativa e erro, percebi que se usasse apenas uma dimensão, o número de entradas, o erro desapareceria.
2) LINHA 68: Configuração da forma de saída do modelo.
A mesma lógica acima.
Os outros desvios que fiz não afetam o modelo, por exemplo, mantive o controle do tempo usando a lógica que achei mais intuitiva do que a lógica implementada no tutorial. Não precisei normalizar as entradas porque se trata de um modelo baseado em árvore.
Se você puder identificar outros erros que cometi, gostaria de receber sua opinião.
Obrigado por compartilhar Sitan, apliquei o que você indicou, mas o erro ainda está lá
Um lote de inputs input_count.
Definir a entrada como dupla
Mensagem de erro.
Parece que a MQL5 (ou melhor, o ONNXMLTools) ainda não é compatível com o ONNX do EBM:
https://www.mql5.com/pt/docs/onnx/onnx_conversion
Se você consultar os anexos do ONNX (especialmente model.eurusd.D1.10.class.onnx, que usa 4 entradas) em https://www.mql5.com/pt/articles/12484 e usar o Netron(versão da Web) para visualizar os arquivos onnx, verá as diferenças.
Acredito que os dois artigos a seguir também o ajudariam a entender melhor:
Modelos de regressão da biblioteca Scikit-learn e sua exportação para o ONNX
Modelos de classificação na biblioteca Scikit-Learn e sua exportação para o ONNX
Olá a todos,
Estamos tentando usar uma rede neural do keras com 11 preditores em um determinado momento (tamanho de lote 32) para fazer previsões no XauUsd (em que a saída é um número singular entre 0 e 1). Primeiro, carregamos a partir do OnnxCreatefrombuffer (porque o próprio OnnxCreate não funciona para nós), depois sempre recebemos um erro no estágio OnnxRun, onde anexei os dois erros abaixo. Qualquer ajuda sobre a dimensão a ser remodelada para a entrada, em que formato colocar nosso vetor de previsão (se é que ele deve ser um vetor?) ou qualquer ajuda ou sugestão de sintaxe para ajudar a resolver esses erros seria incrível. Tentamos remodelar para todos os tipos de combinações de vetores 32,1,11 e não tivemos sorte e realmente não temos ideia das próximas etapas. Muito obrigado a todos que puderem ajudar! Ben.
' erro 5808'
' ONNX: parâmetro de entrada #0 tensor tem dimensão errada [0], tente usar OnnxSetInputShape'
'ONNX: tamanho inválido do parâmetro de entrada n.º 0, tamanho esperado de 1408 bytes em vez de 480'
Olá, tentei usar o script de arquivo
OnnxModelInfo.mq5mas não consigo fazer com que funcione. O que estou fazendo de errado? Isso não pode ser tão complicado!
Copiei e colei o script OnnxModelInfo e salvei na pasta Files
Tenho um modelo Onnx (em anexo)
e quando compilo o script, aparecem 21 erros.
Alguém pode me ajudar com isso? Por favor
Novo artigo Uso de modelos ONNX em MQL5 foi publicado:
Autor: MetaQuotes
Olá senhores.
Alguém pode me ajudar, pois no final do processo em python, sai o seguinte erro: AttributeError: 'Sequential' object has no attribute 'output_names'. Não sei muito de python, nem de programação. Portanto qualquer ajuda será bem vinda! Obrigado.
Olá, Alberto, por favor, poste o trecho do seu código [utilizando o botão do CÓDIGO (Alt -S)] onde está ocorrendo o erro que alguém que conheça Python (MetaTrader para Python | Modelos ONNX) poderá apontar a solução...