Discussão do artigo "Redes Neurais de Terceira Geração: Redes Profundas" - página 8

 
Vladimir Perervenko:

O indicador com Send to server - false inicia normalmente?

Você colocou o modelo onde ele deveria estar?

Leia as "imagens" salvas pelo Expert Advisor e pelo indicador no Rstudio (defina a variável swr = true). Eu gostaria de vê-las.

Os diretórios foram criados normalmente? Você descobriu o que está onde?

Boa sorte.

Defini a variável swr=true, mas somente quando o Expert Advisor é iniciado, obtenho o arquivo de imagem. Por algum motivo, o indicador é iniciado por 15 a 20 minutos, e somente após esse tempo posso pressionar o botão OK.
Arquivos anexados:
 
donvald:
Defino a variável swr=true, mas somente quando o Expert Advisor é iniciado, o arquivo de imagem é recebido. Por algum motivo, o indicador é iniciado por 15 a 20 minutos, e somente após esse tempo posso pressionar o botão OK.

O Expert Advisor funcionou normalmente. Tudo o que é necessário para seu funcionamento está na imagem. Mas ele não recebeu dados do indicador (dt, X). Verifiquei no R3.2.0. O problema é com o pacote "svSocet". Algo mudou e a transferência do indicador para o Expert Advisor está bloqueada. É por isso que o indicador trava e não consegue transmitir dados. Embora ele se conecte ao servidor normalmente. Não analisei o motivo. Para verificar ou depurar, crie uma imagem do Expert Advisor e execute-o no Rstudio. Em seguida, crie uma imagem do indicador (send = false) e execute-a no Rgui. No Rstudio, execute as linhas

library('svSocket', quietly = T) 
s <- startSocketServer()

e, em seguida, no Rgui, onde a imagem do indicador está sendo executada, execute as linhas

library("svSocket", quietly=T);
con <- socketConnection(host = 'localhost', port = 8888, blocking = FALSE);

O indicador (cliente) e o Expert Advisor (servidor) estão conectados. Tente enviar/receber dados entre eles.

Isso deve ser simplificado. Transfira para o Expert Advisor a parte do indicador que coleta e prepara os dados (incluindo, é claro, todas as funções). Tente você mesmo. Se não funcionar, eu escolherei o tempo e o refarei.

Infelizmente, estou muito ocupado e não posso responder rapidamente.

Boa sorte

 

Oi Vladimir

Antes de mais nada, muito obrigado por fornecer tanto conhecimento. Esse material é realmente interessante. Você não apenas forneceu os dois lados (arquivos mt4 e R), mas também explicou tudo em detalhes. Isso é realmente generoso.

Mas, como Apollo disse antes, nunca consegui fazer o EA funcionar, ou melhor, que o EA como servidor recebesse dados do indicador. É claro que estou tentando encontrar o erro do meu lado. No R-Studio, tudo funciona bem. No entanto, tenho algumas perguntas.

No e_SAE, consigo encontrar o parâmetro "flag". Não o encontro em nenhum outro lugar. Talvez isso não tenha significado. Mas, como Apollo, identifiquei a função GetRes de i_SAE_fun para causar o problema. O SAE-Indicator funciona quando a opção "send to server" é definida como falsa. Se ela for verdadeira, nada acontece. Quando, depois de algumas vezes, paro o indicador e paro o RTerm no gerenciador de tarefas, posso ver o seguinte no dbgview:

00000127 108.28663635 [9960] <0> GetOutput: Error: R não está em execução (mais): source('C:/RData/i_SAE.r')

00000128 108.28672791 [9960] <0> GetOutput: Error: R não está em execução (mais): source('C:/RData/i_SAE.r')

00000129 108.28672791 [9960] Lade nötiges Paket: zoo

00000130 108.28672791 [9960]

00000131 108.28672791 [9960] Attache Paket: 'zoo'

00000132 108.28672791 [9960]

00000133 108.28672791 [9960] Os seguintes objetos são mascarados de 'package:base':

00000134 108.28672791 [9960]

00000135 108.28672791 [9960] as.Date, as.Date.numeric

00000136 108.28672791 [9960]

00000137 108.29270935 [9960] RDeinit: RHandle = 539E61C (87680540)

(Isso não é um erro) ....

mas posso ver no RStudio que essa mensagem é exibida quando o arquivo i_SAE.r é fornecido. Talvez haja um problema com o parâmetro "serv" (?).

Se eu depurar a situação com o metatrader, posso ver que o ea nunca calcula nada.

Após "return(INIT_SUCCEEDED);", ele salta para

102 void OnTimer()

110 sig = GetRes(); depois para

130 int GetRes()

onde ele vai para

if(Rgb("alert1"))

{

Alert("Nenhum resultado de cálculo!" + Symbol());

sig = 0;

return(0);

} .

depois de mais algumas etapas, ele volta para o void OnTimer

Portanto, nada é calculado e nunca será.

Onde está o erro?

Espero que você tenha uma dica, pois depois de uma semana de análise intensiva, não tenho mais nenhuma ideia.

Muito obrigado por sua ajuda

Atenciosamente

rbliuom

(desculpe-me por meu inglês)

 
rbliuom:

Oi Vladimir

Antes de mais nada, muito obrigado por fornecer tanto conhecimento. Esse material é realmente interessante. Você não apenas forneceu os dois lados (arquivos mt4 e R), mas também explicou tudo em detalhes. Isso é realmente generoso.

Mas, como Apollo disse antes, nunca consegui fazer o EA funcionar, ou melhor, que o EA como servidor recebesse dados do indicador. É claro que estou tentando encontrar o erro do meu lado. No R-Studio, tudo funciona bem. No entanto, tenho algumas perguntas.

No e_SAE, consigo encontrar o parâmetro "flag". Não o encontro em nenhum outro lugar. Talvez isso não tenha significado. Mas, como Apollo, identifiquei a função GetRes de i_SAE_fun para causar o problema. O SAE-Indicator funciona quando a opção "send to server" é definida como falsa. Se ela for verdadeira, nada acontece. Quando, depois de algumas vezes, paro o indicador e paro o RTerm no gerenciador de tarefas, posso ver o seguinte no dbgview:

00000127 108.28663635 [9960] <0> GetOutput: Error: R não está em execução (mais): source('C:/RData/i_SAE.r')

00000128 108.28672791 [9960] <0> GetOutput: Error: R não está em execução (mais): source('C:/RData/i_SAE.r')

00000129 108.28672791 [9960] Lade nötiges Paket: zoo

00000130 108.28672791 [9960]

00000131 108.28672791 [9960] Attache Paket: 'zoo'

00000132 108.28672791 [9960]

00000133 108.28672791 [9960] Os seguintes objetos são mascarados de 'package:base':

00000134 108.28672791 [9960]

00000135 108.28672791 [9960] as.Date, as.Date.numeric

00000136 108.28672791 [9960]

00000137 108.29270935 [9960] RDeinit: RHandle = 539E61C (87680540)

(Isso não é um erro) ....

mas posso ver no RStudio que essa mensagem é exibida quando o arquivo i_SAE.r é fornecido. Talvez haja um problema com o parâmetro "serv" (?).

Se eu depurar a situação com o metatrader, posso ver que o ea nunca calcula nada.

Após "return(INIT_SUCCEEDED);", ele salta para

102 void OnTimer()

110 sig = GetRes(); depois para

130 int GetRes()

onde ele vai para

if(Rgb("alert1"))

{

Alert("Nenhum resultado de cálculo!" + Symbol());

sig = 0;

return(0);

} .

depois de mais algumas etapas, ele volta para o void OnTimer

Portanto, nada é calculado e nunca será.

Onde está o erro?

Espero que você tenha uma dica, pois depois de uma semana de análise intensiva, não tenho mais nenhuma ideia.

Muito obrigado por sua ajuda

Atenciosamente

rbliuom

(desculpe-me por meu inglês)

Oi rbliuom, APoLLo_MQL

Neste fim de semana, verifiquei todos os scripts. O problema estava no pacote "svSocket".Não sei os motivos, mas os dados não são transmitidos do indicador para o servidor. Vou reescrever o expert. Simplificarei. Tudo o que transferimos para o especialista. Agora há muito tempo, mas tentarei terminar no fim de semana.

Com os melhores cumprimentos

Vladimir

 
Vladimir Perervenko:

Oi rbliuom, APoLLo_MQL

Neste fim de semana, verifiquei todos os scripts. O problema estava no pacote "svSocket".Não sei os motivos, mas os dados não são transmitidos do indicador para o servidor. Vou reescrever o expert. Simplificarei. Tudo o que transferimos para o especialista. Agora há muito tempo, mas tentarei terminar no fim de semana.

Atenciosamente

Vladimir

Obrigado, Vladimir, seu esforço é muito apreciado :)
 
Não me esqueci de minha promessa, mas o tempo é sempre curto. Farei isso em breve.
 
Não me esqueci de sua promessa, mas como o tempo é sempre curto. Feito em um futuro próximo .
 
Vladimir Perervenko:
Não me esqueci de sua promessa, mas como o tempo é sempre curto. Feito em um futuro próximo .

Oi Vladimir

Leve o tempo que precisar. Para mim, não há tempo a perder. E há muito know-how em todas essas seções, nas quais devo aprimorar meus conhecimentos, e, além disso, o verão está no auge. Portanto, relaxe e divirta-se.

 
Vladimir Perervenko:

É necessário simplificar. Transfira para o Expert Advisor a parte do indicador que coleta e prepara os dados (incluindo, é claro, todas as funções). Experimente você mesmo. Se não funcionar, eu escolherei o tempo e o refarei.

Infelizmente, estou muito ocupado e não posso responder rapidamente.

Vladimir, será possível refazer o Expert Advisor para testar seu funcionamento? O tópico é interessante, mas infelizmente não poderei refazer o Expert Advisor e o indicador para fazê-lo funcionar.
 
donvald:
Vladimir, será possível refazer o Expert Advisor para tentar fazê-lo funcionar? O tópico é interessante, mas infelizmente não poderei refazer o Expert Advisor e o indicador para que tudo funcione.
Farei isso com certeza. Não tenho tempo para fazer isso no verão.