É possível estabelecer um sistema de prioridades na MQL4, para que o código EA seja executado primeiro, e depois todos os outros EAs?
Tentei fazer um loop start(), talvez tenha feito algo errado, mas não consegui nada além da suspensão do terminal.
Para um profissional iniciante, eu preciso de alguma ajuda.
É possível. Por exemplo, acrescentando mais uma variável para o terminal, que só ele pode administrar, e para outros se tornará uma permissão para trabalhar.
Entendo que eu sugeri o que você já implementou. Aparentemente, isso é feito de forma incorreta.
Se o conselheiro administrativo não teve tempo de mudar a variável terminal, os escravos não devem ser autorizados a negociar.
Possível. Por exemplo, adicionando outra variável terminal que só ele pode controlar, e para outros, ela se tornará permissão para trabalhar.
Não há tempo para que o gerente da EA defina o valor desejado da variável global
O gerente da EA não tem tempo para definir o valor correto da variável global
Bem, não é preciso dar ao escravo o direito de respirar até que ele acorde.
Olhe para esta função. Esta é a única função na MQL4 que lida com o nível de kernel (fornece acesso atômico). Isso deve ajudar.
Obrigado, espero que ajude, de alguma forma senti falta. "pode ser usado para organização de semáforos quando vários Expert Advisors que trabalham simultaneamente interagem dentro de um único terminal do cliente" - dá esperança. Embora, se aGlobalVariableSetOnCondition for chamada desde o início() de minha EA na última vez, depois que as EA já tiverem entrado em acordos, não vejo que diferença isso fará .
Bem, não é preciso dar ao escravo o direito de respirar até que ele acorde.
Como você organiza isto? Permitir o comércio manual dos escravos não é uma opção.
Eu disse: se.
Certo. Não, não é roubado.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
A tarefa é: Em um terminal, há 9 pares diferentes, e 8 EAs trabalhando em cada um deles, e cada um está autorizado a negociar no 9º par, meu EA 'gerenciador', que monitora quantos pares e respectivamente cópias de EAs comerciais podem abrir ordens ao mesmo tempo. Todos os Expert Advisors obedecem a uma variável GLobal. Escrevi um loop simples que lê "números mágicos" de ordens já abertas e não permite a abertura de novas ordens de outros EAs definindo o valor da variável global de controle que proíbe a negociação.
É assim que deve ser "sob o cenário". Não é assim que realmente funciona. O problema é que até que minha EA "gerencial" tenha tempo para definir o valor da variável global que proíbe a negociação, as EA de trabalho têm tempo para abrir ordens em 6 pares ao invés das 2 permitidas. O algoritmo funciona corretamente, se eu primeiro iniciar o gerente da EA e depois deixar a negociação de EAs, então mais de 2 EAs (2 pares) não abrirão (proibido pela variável global definida pelo gerente da EA).
É possível estabelecer na MQL4 um sistema de prioridades, para que primeiro seja executado o código da EA, e depois todos os outros EAs?
Tentei fazer um loop start(), talvez tenha feito algo errado, mas o terminal desliga, mas nada acontece.
Ajuda para um profissional novato.