![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
O gráfico acabou de ser 'actualizado'. E é novamente a mesma coisa:
O gráfico acabou de ser 'actualizado'. E é novamente a mesma coisa:
Escreva para Servicedesk com urgência e mantenha o terminal aberto
Apenas verificado no terminal - o gráfico EURUSD M1 está completamente presente no local especificado, sem lacunas.
Tente dar o comando "Actualizar" a partir do menu de contexto do gráfico.
Apenas verificado no terminal - o gráfico EURUSD M1 está completamente presente no local especificado, sem lacunas.
Tente dar o comando "Actualizar" a partir do menu de contexto do gráfico.
Apenas verificado no terminal - o gráfico EURUSD M1 está completamente presente no local especificado, sem lacunas.
Tente dar o comando "Actualizar" a partir do menu de contexto do gráfico.
Foi actualizado manualmente, obrigado. Uma vez que praticamente não trabalho com gráficos, tenho uma pergunta: como actualizar a base de minutos numa situação destas? O terminal só funciona com a base que possui. Preciso de integrar a função de verificação da sincronização?
Memorizei a hora da perda e retoma da comunicação no temporizador.
Tendo esta informação, pode tentar descarregar o histórico para o período (pode também verificar a sincronização com o servidor, se isso fizer sentido).
Cavalheiros desenvolvedores, estou sem palavras. Enfrentei um problema difícil de apanhar com variáveis locais "limpando" o método do objecto após chamada interna do mesmo método a partir de outro objecto. Pode estar relacionado com alguma optimização em chamadas de funções aninhadas de objectos, mas pelo menos não há erros no registo e não há fugas de memória. Não posso citar um código grande, mas o significado será claro a partir dos exemplos em princípio:
variante 1
variante 2
Emteoria, o código deve funcionar exactamente damesma maneira. Mas... as variantes funcionam de forma diferente.
Assim. A variante 1 não funciona correctamente. Corri um registo no ficheiro de depuração e descobri que a variável d1 definida na função operar é sobregravada com o valor da variável d1 numa chamada interna da mesma função operar, mas noutro objecto do mesmo tipo. Isto é, em suma, após a chamadabool d2 = s2.process();
A variável d1 altera o seu valor para o que ocorreu na chamada de operação interna dentro do processo s2.process. Este comportamento é o mesmo que quando se altera o valor de uma variável estática para objectos do mesmo tipo. Mas aqui a variável tem claramente um âmbito local.
A questão das variáveis estáticas foi levantada neste fio e tudo está claro. Mas o que fazer com a incerteza dos valores variáveis locais?
"...a variável d1 definida na função operar é sobrescrita pelo valor da variável d1 na chamada interna da mesma função operar, mas num outro objecto do mesmo tipo. Ou seja, em suma, após chamada
bool d2 = s2.process();
variável d1 altera o seu valor para o que ocorreu na chamada de operação interna dentro do s2.process".
Parece ou uma repetição oculta, com o habitual conjunto de efeitos secundários, ou ...
Em teoria, o código deve funcionar exactamente damesma maneira. Mas... as variantes funcionam de forma diferente.
Não. Não é idêntica.
No primeiro caso, s1.process e s2.process são chamados incondicionalmente
Na segunda variante, o s1.process só será chamado se o s2.process voltar a ser verdadeiro. A isto chama-se "avaliação do estado abreviada".