Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 427
![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
E leia quantas vezes uma variável estática é inicializada. E a questão em si desaparecerá por seu absurdo ;)
Então como entender isto: As variáveis locais declaradas com a palavra-chave estática retêm seus valores durante a vida útil da função. Cada vez que a função é chamada novamente, estas variáveis locais contêm os valores que elas tinham na chamada anterior. Uma variável declarada em uma função definida pelo usuário não é uma variável local?
Sobre a segunda pergunta,
se o primeiro tique não pegar, o segundo pegará.
Então como entender isto: As variáveis locais declaradas com a palavra-chave estática retêm seus valores durante a vida útil da função. Cada vez que a função é chamada novamente, estas variáveis locais contêm os valores que elas tinham na chamada anterior. Uma variável declarada em uma função definida pelo usuário não é uma variável local?
Retorna o tempo de abertura do bar. Será o mesmo em todo o bar.
Está bem aqui. Obrigado.
O modificador estático o torna estático e já está armazenado na memória para variáveis estáticas, não para variáveis locais.
É aqui que eu não entendo. Na minha opinião, não importa onde é armazenada, por código, redefinimos o valor da variável para zero toda vez que a função é acessada. Para quê?
É aqui que eu não entendo. Na minha opinião, não importa onde é armazenada, por código, redefinimos o valor da variável para zero toda vez que a função é acessada. Para quê?
Para o primeiro lançamento - em declaração. Além disso, você controla seu conteúdo por si mesmo.
Entretanto, na minha opinião, este não é o caso: o código é lido linha por linha toda vez e toda vez que chega a zero, e na primeira execução, mesmo que não haja inicialização, a variável tomaria um valor zero. Portanto, a seqüência de datas estática New_Time=0; força o programa a fazer um trabalho desnecessário.
Entretanto, na minha opinião, este não é o caso: o código é lido linha por linha toda vez e toda vez que chega a zero, e na primeira execução, mesmo que não haja inicialização, a variável tomaria um valor zero. Portanto, a seqüência de datas estática New_Time=0; força o programa a fazer um trabalho desnecessário.
Você diz não, você diz sim...
Não fique ofendido. Mas os programadores obviamente lêem o texto de forma diferente. Sempre considerei que se diz "igual a zero" no programa, o computador deve igualá-lo a zero independentemente de estar no lançamento ou na referência recorrente a uma linha de código. E não há necessidade de visitar nenhum diário para provar que a inicialização zero é desnecessária, basta removê-lo: data estática New_Time; produz absolutamente os mesmos resultados que a data estática New_Time=0; não sei quão mais rápido é o funcionamento do programa, admito que não é nada significativo, mas ainda assim remove "gesto desnecessário".