Erros, bugs, perguntas - página 2722
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Em princípio, não deveria existir tal caso - a questão deveria ter sido resolvida a nível do compilador (como em C++). E neste caso é meio possível e como consequência, a discussão em várias páginas
Definitivamente um insecto... Mas tem de ser! )))
imho, as expressões constantes devem ser conhecidas no momento da compilação e as expressões estáticas devem ser conhecidas durante a inicialização da aplicação na sequência de descrição.
e este esquema em MQL, onde há uma espécie de controlo constante, mas posso atribuir constantes em tempo de execução, e posso usar uma chamada de função como uma inicialização, como esta
e esta "constante" pode estar na visibilidade local.... em que momento se torna uma expressão constante e como é que ajuda.... não sei, não o entendo sem manuais, não há descrição do modelo de memória - não há nenhum ponto nele, bem, no máximo, usar como deve ser - inicializar com constante em todos os construtores, então o compilador ajudará a avisar se você acidentalmente decidir modificar este campo no futuro
Mas este esquema em MQL, onde existe uma espécie de controlo sobre constantes, mas eu próprio posso atribuir constantes em modo aleatório
Quantas vezes se pode envergonhar com a ignorância básica dos princípios básicos de C++?
este exemplo é de todo confuso:
2020.04.23 21:40:04.474 tst (EURUSD,H1) a = 1.07892
2020.04.23 21:40:04.546 tst (EURUSD,H1) a = 1.07893
2020.04.23 21:40:04.585 tst (EURUSD,H1) a = 1.07893
2020.04.23 21:40:05.254 tst (EURUSD,H1) a = 1.07893
2020.04.23 21:40:05.305 tst (EURUSD,H1) a = 1.07893
2020.04.23 21:40:05.306 tst (EURUSD,H1) a = 1.07892
Há dois programas a trabalhar no mesmo ficheiro ao mesmo tempo. A que escreve utiliza as bandeiras FILE_READ|FILE_WRITE|FILE_BIN|FILE_SHARE_READ. A que lê - FILE_READ|FILE_BIN|FILE_SHARE_WRITE|FILE_SHARE_READ. Embora o primeiro programa salve periodicamente o ficheiro com FileFlush, o segundo programa só vê o comprimento do ficheiro quando este é aberto. Tentei fazer FileSeek para a frente e para trás - não ajuda.
Pergunta: como faço para que o programa que lê o ficheiro recolha os dados que estão a ser reescritos?
Isto parece ser um bug, foi relatado há algum tempo no fórum inglês. Não tive tempo de o relatar aqui.
Os programadores não lêem o fórum inglês?![](https://c.mql5.com/3/316/bigsmile-fixed__5.png)
Há dois programas a trabalhar no mesmo ficheiro ao mesmo tempo. A que escreve utiliza as bandeirasFILE_READ|FILE_WRITE|FILE_BIN|FILE_SHARE_READ. A que diz - FILE_READ|FILE_BIN|FILE_SHARE_WRITE|FILE_SHARE_READ. Embora o primeiro programa salve periodicamente o ficheiro com FileFlush, o segundo programa só vê o comprimento do ficheiro quando este é aberto. Tentei fazer FileSeek para a frente e para trás - não ajuda.
Pergunta: como faço para que o programa que lê o ficheiro apanhe os dados a serem sobregravados?
Os dois programas estão no mesmo terminal ou em dois diferentes?
Os métodos de objectos de uma matriz de objectos passados por referência não funcionam.
Exemplo:
Será que estes dois programas estão no mesmo terminal ou em dois diferentes?
Num terminal. O perito escreve os dados, o indicador lê os dados. Pendurado em gráficos diferentes, mas obviamente poderia estar no mesmo (se isso importar). Construir 2380.
VS2019
x = 12345
a.a = 12345
hmm, tudo funciona como na MQL5
OK, retiro o que disse, não se compila em Sharp
Bem, também tem um construtor. Depende de si, claro, mas as estruturas são entidades C, o modelo lá é diferente - entidades passivas com lógica externa (funções).
Não necessariamente. Porquê C? E quanto a C#? - Todas as conversas sobre estruturas passivas são noções arcaicas, imho. Creio que pelo menos todos os tipos devem ter um construtor. Os campos não inicializados são maus e devem ser evitados.
fxsaber
No seu caso, precisa de fazer um método de fábrica para criar um conjunto de estruturas, ou seja, algo como isto:
E já existe uma das formas anteriormente sugeridas para preencher os elementos da matriz.
Deparei-me com o seguinte problema. O indicador desenha velas
Está traçado na tabela. Há também um Consultor Especialista que lê buffers do indicador
Assim, registei e folheei as etapas e descobri que o indicador desenha frequentemente velas com um atraso.
Significa que há vários tiquetaques atrás (até alguns minutos exactamente) já calculou e actualizou os amortecedores e o Conselheiro Especialista está a ler dados dos mesmos
(tanto as corujas como o indicador escrevem-no no registo). Mas vemos a velha imagem na tabela. Por exemplo, a captura de ecrã foi feita no momento em que a barra vermelha rompeu o ponto mais baixo da barra anterior. Mas no gráfico vemos apenas o vermelho anterior e o verde subtraído (de facto, é maior por duas barras).
E aqui está o quadro real, foi desenhado mais tarde. Vemos a avaria, iniciou a captura da imagem do ecrã. De acordo com os registos, tudo é claro.
Quem me dirá qual é o problema e como acelerar a actualização dos gráficos? Chamo à funçãoChartRedraw da EA, mas ainda tem um atraso de alguns minutos.
Dois minutos é um pouco demais, não consigo sequer imaginar a razão. Os cálculos não são tão cósmicos para abrandar tanto.