ativar e desativar a classe do Telegram em ativos diferentes

 

Bom dia!!

Eu escrevi meu código e agora estou avisando pelo telegram como a operação está, Se deu entrada, valor da operação, se já teve algum gain na data , fechar a operação entrar em uma operação, seguindo a estratégia após do EA essas coisas.

Tudo funciona perfeitamente, no momento criei apenas um token, como estou testando no forex, toda vez que que o telegram está em mais de um ativo ele me da um erro indicando que existe mais de um EA usando o mesmo canal. o que eu não queria é criar varios canais um para cada ativo.

2022.09.22 10:09:40.842 EA_Entrada_RSIXXX(EURGBP,M15) {"ok":false,"error_code":409,"description":"Conflict: terminated by other getUpdates request; make sure that only one bot instance is running"}

Ao invés de criar vários tokens, pensei em Limitar a quantidade de entradas simultâneas e criar essa quantidade de canais Ex: 3 ou 4 tokens, com isso cada operação que entrar ativa um token "Ex:    bot.Token(Token);......" e assim que sair da operação libera o Token que estava usando para que se outra operação rolar ele possa pegar.. e assim sucessivamente...

Mas não sei como desativar a classe do telegram depois que inicou no EA. Alguém poderia me ajudar?

 
Será que pedi algo que não tem com ser feito?
 
MZ2020 Zinatti #:
Será que pedi algo que não tem com ser feito?
Olá. Acho que com as informações que você postou não deu para o pessoal entender...

Qual classe do telegram? É da codebase? Qual o link?


 
MZ2020 Zinatti:

Bom dia!!

Eu escrevi meu código e agora estou avisando pelo telegram como a operação está, Se deu entrada, valor da operação, se já teve algum gain na data , fechar a operação entrar em uma operação, seguindo a estratégia após do EA essas coisas.

Tudo funciona perfeitamente, no momento criei apenas um token, como estou testando no forex, toda vez que que o telegram está em mais de um ativo ele me da um erro indicando que existe mais de um EA usando o mesmo canal. o que eu não queria é criar varios canais um para cada ativo.

2022.09.22 10:09:40.842 EA_Entrada_RSIXXX(EURGBP,M15) {"ok":false,"error_code":409,"description":"Conflict: terminated by other getUpdates request; make sure that only one bot instance is running"}

Ao invés de criar vários tokens, pensei em Limitar a quantidade de entradas simultâneas e criar essa quantidade de canais Ex: 3 ou 4 tokens, com isso cada operação que entrar ativa um token "Ex:    bot.Token(Token);......" e assim que sair da operação libera o Token que estava usando para que se outra operação rolar ele possa pegar.. e assim sucessivamente...

Mas não sei como desativar a classe do telegram depois que inicou no EA. Alguém poderia me ajudar?

Bom dia Zinatti, tudo bem?

Cara que legal, só para entender melhor, voce desenvolveu uma ferramenta que a cada operação do mt5 voce recebe uma notificação no telegram?

ideia é que possa deixar o robo trabalhando e acompanhar quando não estiver visualizando a plataforma?

 

Cara, a questão, como o Ricardo colocou, é que você uma classe pronta do telegram, que você pegou em algum lugar, e que verifica se outra EA está enviando mensagens ao mesmo tempo. A solução, ao meu ver, é reescrever toda a classe ou conversar com que a fez.

Você pode tentar, e é apenas uma tentativa, executar duas instancias diferentes do mql5 com a mesma conta e rodar a EA simultaneamente em cada uma delas.

Grande abraço

 
MZ2020 Zinatti:

Bom dia!!

Eu escrevi meu código e agora estou avisando pelo telegram como a operação está, Se deu entrada, valor da operação, se já teve algum gain na data , fechar a operação entrar em uma operação, seguindo a estratégia após do EA essas coisas.

Tudo funciona perfeitamente, no momento criei apenas um token, como estou testando no forex, toda vez que que o telegram está em mais de um ativo ele me da um erro indicando que existe mais de um EA usando o mesmo canal. o que eu não queria é criar varios canais um para cada ativo.

2022.09.22 10:09:40.842 EA_Entrada_RSIXXX(EURGBP,M15) {"ok":false,"error_code":409,"description":"Conflict: terminated by other getUpdates request; make sure that only one bot instance is running"}

Ao invés de criar vários tokens, pensei em Limitar a quantidade de entradas simultâneas e criar essa quantidade de canais Ex: 3 ou 4 tokens, com isso cada operação que entrar ativa um token "Ex:    bot.Token(Token);......" e assim que sair da operação libera o Token que estava usando para que se outra operação rolar ele possa pegar.. e assim sucessivamente...

Mas não sei como desativar a classe do telegram depois que inicou no EA. Alguém poderia me ajudar?

Acredito que essa "classe" do telegram tem a opção de ficar monitorando um canal e envio de mensagens. Para um bot enviar mensagens, ele não precisa estar monitorando o canal. Simplesmente, vá e chame sendMessage ou alguma função equivalente. A opção de monitoramento do canal serve apenas para quando o bot vai interagir com alguem no qual ele pode receber comandos que não parece ser o caso.
 
Ricardo Branco #:
Olá. Acho que com as informações que você postou não deu para o pessoal entender...

Qual classe do telegram? É da codebase? Qual o link?


Peço desculpa, Ricardo, pois acredito que vc tenha mesmo razão.

Eu segui  o post do  Andriy Voitenko

https://www.mql5.com/pt/articles/2355.

Mas algo que não tinha me atentado, e o nobre amigo " Ricardo Rodrigues Lucca" colocou, pois ele está sim em ontime a cada1s monitorando se o canal x ou y recebeu nova msg. 

void OnTimer()
  {
//--- Monitoro se há msg no canal do Telegram
//--- mensagens de leitura
   bot.GetUpdates();
//--- processando mensagem
   bot.ProcessMessages();
  }

Posso agora fazer como  pensado à cima. Colocando em uma Variável global qual o ativo está operando naquele momento e qual token está sendo usado para que possa utilizar o próximo. Quando sair da operação apagaria a VG deixando de monitorar o canal no ontime.

Acredito que isso resolveria o problema.

 
MZ2020 Zinatti #:

Peço desculpa, Ricardo, pois acredito que vc tenha mesmo razão.

Eu segui  o post do  Andriy Voitenko

https://www.mql5.com/pt/articles/2355.

Mas algo que não tinha me atentado, e o nobre amigo " Ricardo Rodrigues Lucca" colocou, pois ele está sim em ontime a cada1s monitorando se o canal x ou y recebeu nova msg. 

Posso agora fazer como  pensado à cima. Colocando em uma Variável global qual o ativo está operando naquele momento e qual token está sendo usado para que possa utilizar o próximo. Quando sair da operação apagaria a VG deixando de monitorar o canal no ontime.

Acredito que isso resolveria o problema.

Show de bola. Que bom que encontrou a solução.

Sucesso e bons trades!