Discussão do artigo "Conectando NeuroSolutions Neuronets" - página 2

 
Buter:
E estou executando de forma terrivelmente lenta.
Observe o código do adaptador dll. Lá, a rede é lida e reinicializada toda vez que é acessada!
 
jedy:
Observe o código do adaptador dll. A rede é lida e reinicializada toda vez que é acessada! Há muito espaço para otimizações

Sim, e algumas otimizações podem ser feitas por meio do terminal e do MQL, se a estratégia de negociação permitir.

Por exemplo, para a estratégia descrita no artigo, não importa se a rede deve ser chamada a cada tick ou somente no início de uma barra. Porque, nesse caso, as entradas da rede (e, portanto, a previsão de preço) mudam somente quando a barra muda.

Essa estratégia pode ser executada no testador no modo "Somente preços de abertura". Você também pode criar um filtro diretamente no Expert Advisor para que a rede seja usada somente quando uma nova barra aparecer.

Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 
ds2:

Sim. E algumas otimizações podem ser feitas por meio do terminal e do MQL, se a estratégia de negociação permitir.

Por exemplo, na estratégia descrita no artigo, não importa se a rede é chamada em cada tick ou somente no início da barra. Porque, no caso dela, a entrada da rede (e, portanto, a previsão de preço) mudou apenas com a mudança da barra.

O testador pode ser uma estratégia para conduzir o "Somente o preço de abertura". E, você pode incorporar diretamente no filtro EA para que a rede seja usada somente quando uma nova barra.

Mas por que é tão lento que não consigo terminar um mês de testes?
[Excluído]  
NFTrader:
Mas por que é tão lento que não consigo terminar um mês de testes?
E agora tente imaginar se uma ideia seria complicada. :)
 

Obrigado pelo artigo interessante! Tudo está bem descrito e compreensível.

Mas tenho uma pergunta: o arquivo adaptador para comunicação entre a rede neural DDL e o MT EA funcionará no MetaTrader 4?

Obrigado ao autor!

Alexey

 
alexey_mosc:

Obrigado pelo artigo interessante! Tudo está bem descrito e compreensível.

Mas tenho uma pergunta: o arquivo adaptador para a comunicação entre a rede neural DDL e o MT EA funcionará no MetaTrader 4?

Obrigado ao autor!

Muito obrigado.

Para o MT4, o adaptador provavelmente deve ser um pouco simplificado: no MT4, creio eu, as cadeias de caracteres na DLL não são transmitidas em unicode, mas sim em cadeias comuns, portanto, não é necessário recodificá-las dentro da DLL. Todo o resto deve funcionar.

 
ds2:

Obrigado.

Para o MT4, o adaptador provavelmente deve ser um pouco simplificado: no MT4, creio eu, as cadeias de caracteres na DLL não são passadas em unicode, mas sim em cadeias comuns, de modo que você não precisa recodificá-las dentro da DLL. Todo o resto deve funcionar.

Muito obrigado por sua resposta!
 

Você poderia me dizer qual é o problema?

Não consigo criar a dll. Ele diz: .dll creation failed. Li no mesmo programa quais podem ser os motivos da falha. Entendi apenas que o visual c++ 6 pode estar configurado incorretamente. Alguém já encontrou esse problema com o NeuroSolutions? O que posso tentar mudar antes de tudo? O Visual C++ 6 deve ser instalado na variante de instalação Standard? Preciso configurá-lo de alguma forma? Tenho uma licença do Win 7 de 64 bits. O Visual C++ 6 está instalado como padrão, eu tentei e ele inicia.

Quando se trata do assistente de solução personalizada, ele pergunta se deseja converter o projeto ativo ou o salvo em uma dll. Escolhi o ativo. Ele oferece para salvá-lo primeiro, eu o salvo em uma pasta separada e, em seguida, tento criar uma dll, mas ele falha.

Atenciosamente,

Alexey

 

alexeymosc:

Não é possível criar a dll. Ele diz: .dll creation failed. Li no mesmo programa quais podem ser os motivos da falha. Tudo o que entendi é que o visual c++ 6 pode estar configurado incorretamente. Alguém já encontrou esse problema com o NeuroSolutions? O que posso tentar mudar antes de tudo? O Visual C++ 6 deve ser instalado na variante de instalação Standard? Tenho uma licença do Windows 7 de 64 bits. O Visual C++ 6 está instalado como padrão, eu tentei e ele inicia.

Gerei a DLL no Win XP de 32 bits. Tudo funcionou lá sem nenhuma configuração.

Você também pode tentar o VC++ de alguma versão mais recente. Eles certamente serão melhores amigos dos sistemas operacionais modernos (se esse for o problema).

E se você conhece o VC++, recomendo que dê uma olhada no arquivo build.bat (ele aparece na pasta em que a DLL deve aparecer). Ele contém tudo o que você precisa para a compilação "manual", com a possibilidade de ver todos os erros que ocorrem e experimentar as configurações.

A propósito, usando as informações do build.bat, você pode até tentar compilar manualmente a DLL usando as versões do VC++ Express (elas não são oficialmente suportadas pela NeuroSolutions).

alexeymosc:

Quando se trata do assistente de solução personalizada, ele pergunta se deseja converter em dll o projeto ativo ou o salvo. Escolhi o ativo. Ele me pede para salvá-lo primeiro, eu o salvo em uma pasta separada e, em seguida, tento criar a dll, mas ele falha.

O artigo mostra que é criada uma pasta separada para as DLLs. Eu também gerei a DLL com sucesso na pasta com o projeto. Ou seja, você pode salvá-la em qualquer pasta.

 
ds2:

Gerei a DLL no Win XP 32 bits. Tudo funcionou lá sem nenhuma configuração.

Você também pode tentar o VC++ de alguma versão mais recente. Eles certamente serão melhores amigos dos sistemas operacionais modernos (se esse for o problema).

E se você conhece o VC++, recomendo que dê uma olhada no arquivo build.bat (ele aparece na pasta onde a DLL deve aparecer). Ele contém tudo o que você precisa para a compilação "manual", com a possibilidade de ver todos os erros que ocorrem e experimentar as configurações.

A propósito, usando as informações do build.bat, você pode até tentar compilar a DLL manualmente usando as versões do VC++ Express (elas não são oficialmente suportadas pela NeuroSolutions).

O artigo mostra que uma pasta separada é criada para a DLL. Eu também gerei a DLL com sucesso na pasta do projeto. Ou seja, ela pode estar em qualquer pasta.

Obrigado!

Tentarei uma versão mais recente do VC++ (a propósito, quando instalei a versão 6, recebi uma janela informando que essa versão tem problemas de compatibilidade conhecidos com o vin 7).

Além disso, lembrei-me de que não reiniciei meu computador após instalar o VC. Talvez, trivialmente, esse tenha sido o motivo.

Vou fazer uma mágica :)

Muito obrigado por sua ajuda! Em geral, a ideia do artigo é muito legal. Se você quiser criar várias redes para diferentes ferramentas e atualizá-las (retreinar) regularmente, a geração automática de dll parece muito mais atraente do que a criação manual de dll ou a criação de uma rede em MQL.