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
Sergei!
É para isso que servem os códigos de retorno do servidor comercial.
Exemplo: Você verificou a disponibilidade de fundos livres e recebeu um resultado afirmativo.
Você enviou uma ordem, mas ela não foi aceita (como você disse: "O que pode acontecer"),
então o servidor de negociação lhe dará o erro "Insufficient funds" (Fundos insuficientes) no código de retorno.
Mikhail, você realmente acha que eu não entendo isso? :)
Ok, vou traduzir minha frase e o pensamento do artigo: primeiro fazemos uma verificação preliminar e depois verificamos o resultado. Não me preocupo com a negociação (para isso, sim, esses são códigos de retorno do servidor de negociação), pois pode ser qualquer coisa:
1) Por exemplo, um arquivo: primeiro, verifique se esse arquivo existe; se não existir, crie e grave dados nele. Depois, verifique qual é o resultado
2) Por exemplo, um objeto gráfico: primeiro verifique se esse objeto existe. Se não existir, ele foi criado, caso contrário, foi movido (se as coordenadas tiverem mudado). Em seguida, verificamos o que obtivemos.
etc. Quase tudo que depende de outra coisa e pode falhar.
Portanto, vamos continuar definindo/resumindo. Sua principal reclamação é que os códigos de retorno de erro do servidor de negociação e as possíveis reações do programa a eles não são considerados?
Sobre o primeiro ponto - tudo isso está na documentação.
Sobre o segundo ponto - parece-me que, se você ler o artigo, as possíveis reações se tornarão óbvias.
Mas se você discordar de mim, a solução mais fácil é escrever um artigo inteiro sobre isso. Pessoalmente, não acho que seja necessário escrever sobre isso. Se isso for tão importante para você, faça isso. Tenho certeza de que você fará melhor do que eu, pois tem um claro interesse no assunto.
P.S. Tenho certeza de que a MQL4/5 não se trata apenas de Expert Advisors. Obviamente, para você, trata-se principalmente deles. Mas, por exemplo, nos últimos dois meses, criei duas vezes mais indicadores do que EAs. Portanto, tudo é muito subjetivo.
Sergey!
Não tenho nenhuma reclamação sobre seu artigo.
Hi,
Obrigado por seu artigo!
Tenho permissão para usar sua classe CLogger em meus próprios projetos?
BTW: A que tipo de licença pertencem os artigos/código-fonte do mql5.com?
Com os melhores cumprimentos,
Alex
Eu utilizo MT5.
Quando utilizei seu exemplo em backtest, o "mylog" é escrito na pasta C:\Program Files\MetaTrader 5 Terminal\Tester\Agent-127.0.0.1-3000\MQL5\Files.
Para facilitar, pensei em colocar em uma pasta de uso pessoal: "C:\\MT5Pessoal\\Logs\\mylog", por exemplo.
Porém ocorre sempre o erro 5002, e o tamanho do nome não excede 255 bytes.
O que pode estar errado?
Obrigado.
Sobre a eficiência do registrador... A linguagem Java também criou primeiro um registrador e depois teve que sofrer por um longo tempo.
Em java, esse problema foi resolvido com o uso de var args, que não estão disponíveis em MQL4/5. Qual é o problema? - Primeiro chamamos error.toString(), depois concatenamos todas as strings em `CLogger::log(string1 + string2 + string3...); ` e somente no final verificamos se a string obtida deve ser impressa.
O que eu sugeriria em vez disso? - Nada de novo, o que de fato se tornou um padrão no mesmo java:
`if(CLogger::isLevel(LOG_LEVEL_INFO))
CLogger::log(string1 + string2 + string3);`
É claro que, nesse caso, você precisa ter diferentes registradores para registrar em arquivo, printf e outros.
Tudo isso está em um único arquivo. E se você precisar manter dois? E se algo só precisar ser impresso e algo precisar ser gravado em um arquivo? Não há flexibilidade. É necessário não fazer uma chamada por meio do defyne, mas por meio da criação de um objeto.
Por exemplo, quero imprimir e gravar em um arquivo. Ou quero enviar um push e enviar um e-mail ao mesmo tempo.
Que tesouro! Obrigado por sua contribuição!
Abraços, Zarik