Permitir execução de apenas uma instância do EA

 

Olá,

alguém conhece alguma forma de permitir a execução de apenas uma instância do expert para um ativo e conta?

 

vc poderá criar o arquivo setando o ativo e conta e enviar para o cliente após isso? se sim fica facil é só ver um artigo sobre licenças que te explica como fazer

de mais detalhes de onde seria executado

 
Eduardo Oliveira:

vc poderá criar o arquivo setando o ativo e conta e enviar para o cliente após isso? se sim fica facil é só ver um artigo sobre licenças que te explica como fazer

de mais detalhes de onde seria executado

Mesmo setando o ativo e número da conta no arquivo ainda assim o cliente poderia rodar mais de uma instância do EA para esse mesmo ativo e conta, entende? A ideia é que ele só pudesse executar uma única instância para o mesmo ativo e conta.
 
TIAGO EMMANUEL PRAXEDES SILVA Praxedes:
Mesmo setando o ativo e número da conta no arquivo ainda assim o cliente poderia rodar mais de uma instância do EA para esse mesmo ativo e conta, entende? A ideia é que ele só pudesse executar uma única instância para o mesmo ativo e conta.

Bom, uma solução imediata é gravar um arquivo na pasta COMMON quando iniciar o EA.  A existência da pasta indica que EA está rodando e no registro indicar qual instância. 

 
Acredito que tu poderia fazer uma chamada web para algum servidor e dai liberar com isso o cliente. Mas, gostaria de lembrar que esse tipo de controle nao eh permitido em itens de mercado aqui no site.
 
Ricardo Rodrigues Lucca:
Acredito que tu poderia fazer uma chamada web para algum servidor e dai liberar com isso o cliente. Mas, gostaria de lembrar que esse tipo de controle nao eh permitido em itens de mercado aqui no site.
Você tem um link explicando esse procedimento? Agradeço!
 
Fabio Albano:
Você tem um link explicando esse procedimento? Agradeço!

Tipo o GET que tem aqui: https://www.mql5.com/en/docs/network/webrequest

Tu passa pro script via a conta, o broker que estao atrelados, dai lah tu configura para liberar por conta/broker e por ip que veio a requisicao. O problema disso eh que tu passa a ter que ter um GET de "login" para pedir autorizacao e ser considerado como rodando e de tempos em tempos precisa vir alguma coisa para saber que o cliente aindda esta executando...

Documentation on MQL5: Network Functions / WebRequest
Documentation on MQL5: Network Functions / WebRequest
  • www.mql5.com
WebRequest - Network Functions - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
Ricardo Rodrigues Lucca:

Tipo o GET que tem aqui: https://www.mql5.com/en/docs/network/webrequest

Tu passa pro script via a conta, o broker que estao atrelados, dai lah tu configura para liberar por conta/broker e por ip que veio a requisicao. O problema disso eh que tu passa a ter que ter um GET de "login" para pedir autorizacao e ser considerado como rodando e de tempos em tempos precisa vir alguma coisa para saber que o cliente aindda esta executando...

Entendi! Obrigado por responder!
 
TIAGO EMMANUEL PRAXEDES SILVA Praxedes:
Mesmo setando o ativo e número da conta no arquivo ainda assim o cliente poderia rodar mais de uma instância do EA para esse mesmo ativo e conta, entende? A ideia é que ele só pudesse executar uma única instância para o mesmo ativo e conta.

Outra saída é vc utilizar variavel global, essa variavel é dó mt5 e não do EA, é tipo um localStorage da web, vai resolver se for executado no mesmo MT5.

Senão vc faz alguma logica para criar um arquivo que seta alguma coisa quando o EA estiver ligado, e quando for criar um outro vc verifica se existe aquele arquivo e mais algum dado...sei lá, precisaria pensar em uma saida


https://www.mql5.com/pt/docs/globals

Documentação sobre MQL5: Variáveis Globais do Terminal
Documentação sobre MQL5: Variáveis Globais do Terminal
  • www.mql5.com
Variáveis Globais do Terminal - Referência MQL5 - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
 
Rogerio Giannetti Torres:

Bom, uma solução imediata é gravar um arquivo na pasta COMMON quando iniciar o EA.  A existência da pasta indica que EA está rodando e no registro indicar qual instância. 

Obrigado Rorgério, creio que essa seja a solução mais viável e mais segura.
Razão: