
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Ao contrário do MT4, o MT5 não registra os parâmetros de entrada dos Expert Advisors quando eles são iniciados ou alterados. Portanto, é impossível determinar, a partir do registro, o que foi iniciado no Terminal.
Uma função semelhante pode corrigir essa situação.
Aplicativo
Resultado
Infelizmente, isso não funciona para scripts. O MT4 produz parâmetros de entrada de scripts por si só, mas o MT5 não.
Não consigo executar um EA que usa DLLs usando essa biblioteca. Nos registros, o carregamento de DLLs não é permitido. Há algo que possa ser feito a respeito?
Está funcionando.
Algo que me deixa apreensivo é o princípio de usar uma constante como o nome de um modelo temporário em uma cadeia de caracteres:
contém um possível bug relacionado a multithreading. Se um mesmo programa em execução em diferentes gráficos tentar usar a biblioteca, poderá haver uma colisão com o arquivo de modelo - um erro de acesso ou duas cópias idênticas do modelo serão iniciadas silenciosamente, embora tenham sido usadas cópias diferentes.
Você deve gerar um nome temporário, de preferência no formato (era __FILE__, "strike" não funciona em html aqui) MQL-program-name + timestamp + random.
Também é desejável excluir os arquivos antigos automaticamente por tempo limite em qualquer próxima chamada, por exemplo, em 1 dia (analisando parte do carimbo de data/hora), para que eles não sujem as pastas.
PS. O caso é ainda pior, pois __FILE__ é um arquivo de origem e é sempre igual a Expert.mqh - em todos os programas que o utilizam! Corrigida a frase pelo nome.Isso foi feito de forma consciente, pesando todos os prós e contras.
Faz sentido excluir imediatamente após a criação de um modelo, e não uma vez por dia. No entanto, é conveniente ter sempre o último modelo salvo para analisar melhor o que está acontecendo.
Isso foi feito deliberadamente, pesando os prós e os contras.
Faz sentido excluir imediatamente após a criação de um modelo, e não uma vez por dia. No entanto, é conveniente ter sempre o último modelo salvo para analisar melhor o que está acontecendo.
Não posso citar nenhuma vantagem do método atual. Na minha opinião, sugeri um método mais correto.
Faz sentido excluir de uma vez se Sync = true (que é o padrão), mas não é implementado dessa forma agora - o arquivo permanece.
Não consigo pensar em um único "pró" para o método atual. Na minha opinião, sugeri um método mais correto.
Os prós são a aplicação prática. Lancei o Terminal com os Expert Advisors lançados anteriormente, que, no início, entraram imediatamente em seus modelos. Eles funcionaram perfeitamente. Tenho certeza de que é possível reproduzir a colisão teórica. Mas, no meu caso, isso está longe de ser uma prática. Se você decidir criar uma solução universal, compartilhe-a aqui. Eu atualizarei a Bíblia. Não estou pronto para fazer isso sozinho.
Faz sentido excluir de uma vez se Sync = true (que é o padrão), mas não é implementado dessa forma agora - o arquivo permanece.
Sim, eu não o excluo de propósito.
Para - este é um aplicativo prático. Lancei o Terminal com os Expert Advisors lançados anteriormente, que, no início, entraram imediatamente em seus modelos. Eles funcionaram perfeitamente. Tenho certeza de que é possível reproduzir a colisão teórica. Mas, no meu caso, isso está longe de ser uma prática. Se você decidir criar uma solução universal, compartilhe-a aqui. Eu atualizarei a Bíblia. Não estou pronto para fazer isso sozinho.
Sim, não estou excluindo-o de propósito.
Ainda não entendo por que o nome constante Expert.mqh.tpl é mais "prático" (prático?) do que os modelos com o nome do programa que os gera? Digamos que haja um programa A.mq5 e um B.mq5 que usam bibla. Se eles gerassem modelos com seus próprios nomes, seria mais prático, em primeiro lugar, ter a última "impressão digital" das ações de cada programa, em vez de substituir uma pela outra. Em segundo lugar, você poderia ver imediatamente quem é o gerador pelo nome (especialmente útil se os programas forem estrangeiros). Agora não é possível saber isso pelo arquivo Expert.mqh.tpl até que você entre nele. A solução universal que forneci é usar o nome do programa MQL+carimbo de data/hora+aleatório. E não vejo a necessidade de deixar o arquivo em sync=true. Acho que tudo já foi testado e depurado há muito tempo. No caso de erros e da necessidade de depuração, há uma opção sync=false. Nesse caso, o arquivo deve ser deixado. Acho que tudo é lógico. E as edições são simples.
Concordo que, na prática, a colisão pode ocorrer raramente, a menos que alguém use a biblio em paralelo em vários programas. Não o tenho, mas dei uma rápida olhada no código e meu olhar foi atraído pelo Expert.mqh.tpl na pasta Files. Tudo é puramente imho.