Erros, bugs, perguntas - página 2747
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
Boa tarde, o registo MT5 mostra esta mensagem: 2020.05.21 05:49:44.364 Alojamento Virtual não conseguiu obter a lista de anfitriões virtuais (www.mql5.com:443 enviar pedido falhou [12002])
Podem, por favor, dizer-me o que significa e o que fazer a esse respeito?
Obrigado!
O meu depurador recusa-se a trabalhar num dos meus projectos. Além disso, o seu comportamento é difícil de prever. Por vezes apenas se recusa a entrar nos pontos de pausa. Recusa-se também a entrar em algumas funções. No início pensei que a razão era a actualização (talvez algo tenha corrido mal com a depuração). Mas em outros programas mais simples tudo parece funcionar. No entanto, não o verifiquei muito, porque estou a trabalhar no meu projecto principal. É bastante complexo e inclui apenas 15 módulos da minha própria concepção (não contei o número de módulos padrão). O módulo principal contém até 2000 linhas. Pensei que talvez seja tudo sobre a complexidade do projecto. Além disso, em alguns lugares, utilizo macros para trechos repetitivos de código. Também utilizo elementos padrão da IU, tais como CAppDialog, CCheckGroup, CComboBox, CButton, etc. que reescrevi para a funcionalidade do meu programa. Talvez a depuração não funcione por causa deles... Por exemplo, o método CCheckGroup::itemCheckState(const string item) que escrevi especificamente não depura. O método encontra o item da caixa de verificação e verifica se está seleccionado (o seu Estado):
Este foi o tipo de IU com que acabei por ficar:
Alguns dos elementos da IU são classificados temporariamente. E aqui está um ramo onde descrevi como eu superei os métodos Show() e Hide() do elemento CAppDialog:https://www.mql5.com/ru/forum/338301 O compilador queixou-se nesse momento e ocorreu um erro crítico.
No final, o projecto compila normalmente, o compilador não gera quaisquer erros. Mas a depuração falha e simplesmente não mostra a execução de alguns fragmentos de código, funções, métodos e assim por diante.
Tanto quanto sei, pode haver várias razões para isso.
Informação sobre a construção e o sistema:
https://www.mql5.com/ru/forum/1111/page2746#comment_16481481
No CCheckGroup::itemCheckState method (no qual o depurador não consegue obter) coloquei algo como isto:
E recebi a seguinte mensagem:
2020.05.21 13:20:44.229 CCheckGroup::itemCheckState item: 39 state: 32
https://www.mql5.com/ru/forum/1111/page2746#comment_16481481
Sem o depurador a funcionar correctamente, o projecto pode ser atrasado por um longo período de tempo. Gostaria que os Desenvolvedores prestassem atenção a este bug muito provavelmente relacionado com o depurador.
É muito texto, ainda não o li todo.
Mas se algo funcionar em versão debug e não funcionar em versão debug, ou vice-versa, verificar se todas as variáveis e campos, especialmente em classe/estrutura, foram inicializados.
#define GETCURRENTTICK GetCurrentTick1(Tick)
#define GETCURRENTTICK GetCurrentTick2(Tick, !i)
#define GETCURRENTTICK GetCurrentTick3(Tick)
Sobre o tema de as funções SymbolInfo serem livres.
talvez o método esteja em linha, então o problema não é do depurador, mas do compilador para o modo de depuração
Exactamente, o projecto acabou por transbordar com macros, tanto meus como dos módulos padrão. Talvez seja por isso que o depurador nem sempre consegue fazer corresponder os comandos no ficheiro de depuração *.ex5 com linhas no ficheiro fonte *.mq5 e outros módulos...
As funções SymbolInfo são gratuitas.
por isso é o custo da função em si, não o custo de passar o fio por valor, não por referência!
A sua versão com a cache é uma solução e tanto, se a execução desta função demorar uma percentagem significativa do tempo de execução da EA (o que eu não acredito realmente)
Exactamente, o projecto acabou por transbordar com macros, tanto meus como dos módulos padrão. Talvez seja por isso que o depurador nem sempre consegue fazer corresponder os comandos no ficheiro de depuração *.ex5 com linhas no ficheiro fonte *.mq5 e outros módulos...
é o custo da função em si, não o custo de passar o fio por valor, não por referência!
Foi a isso que fui inicialmente levado.
Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos
Erros, bugs, perguntas
fxsaber, 2020.05.20 13:24
É melhor ter
No optimizador, estas funções são chamadas dezenas de milhares de milhões de vezes.
Além disso, a sua variante com a cache é uma solução e tanto, se a execução desta função levar uma percentagem significativa do tempo de execução de uma EA (o que eu não acredito realmente)
Numa determinada fase, não só a parte relativa do tempo tomado torna-se importante, mas também a parte absoluta.