Auto-aprendizagem da linguagem MQL5 a partir do zero - página 43
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
Você certamente deu um grande passo em frente no assunto principal - você dominou e começou a usar funções, e parabéns a você, é claro!)
Estou consolidando o material que aprendi até agora, assim como comecei a estudar para e enquanto fazia loops. Trailing, embora em futuro distante, mas é uma parte obrigatória do meu plano de auto-aprendizagem.
Cumprimentos, Vladimir.
...
De modo geral, o roteiro é escrito corretamente. Não leva em conta o valor nulo do Period_learning, mas de outra forma é bom.
Ok, Peter, vou pensar em como complicar o roteiro e aplicar a declaração de condição de if-else dentro da função.
Cumprimentos, Vladimir.
Bom dia e bom humor para todos!
Eu continuo estudando a linguagem de programação MQL5. Levando em conta as dicas de Peter Konov, estou colando o código finalizado do roteiro que é uma continuação de uma das tarefas dos participantes deste tópico. O roteiro foi testado em todos os modos. Nenhum problema detectado. Para começar, eu apliquei o número mínimo de parâmetros de entrada. O código do roteiro é escrito em inglês, os comentários ao código estão em russo, para facilitar o processo de aprendizagem. Como prometi anteriormente, tentei descrever o roteiro de uma forma compreensível para um aluno da escola de programação de 1ª série.
Com os melhores cumprimentos, Vladimir.
Bom dia e bom humor para todos!
Eu continuo estudando a linguagem de programação MQL5. Levando em conta as dicas de Peter Konov, estou colando o código finalizado do roteiro que é uma continuação de uma das tarefas dos participantes deste tópico. O roteiro foi testado em todos os modos. Nenhum problema detectado. Para começar, eu apliquei o número mínimo de parâmetros de entrada. O código do roteiro é escrito em inglês, os comentários ao código estão em russo, para facilitar o processo de aprendizagem. Como prometi anteriormente, tentei descrever o roteiro de uma forma compreensível para um aluno da escola de programação de 1ª série.
Cumprimentos, Vladimir.
Conserte um erro e ele será perfeito.
Com relação à função, presumo que é assim que o código deveria ter sido escrito:
Atenciosamente, Vladimir.Sobre a função, presumo que é assim que o código deveria ter sido escrito:
Atenciosamente, Vladimir.Basta corrigir um erro de imediato e ele será perfeito.
Objetos globais, são inicializados por padrão pelo construtor. Para os tipos primitivos (no nosso caso, todos, exceto string) é 0. Mas para a memória (ler variáveis) alocadas na pilha, elas não são inicializadas. É por isso que as variáveis globais podem não ser inicializadas, lembre-se que neste caso elas serão iguais a zero. Mas a ausência de inicialização (ao mesmo tempo, habitue-se a evitar imediatamente avisos gerados pelo compilador, a menos que você saiba exatamente o que está fazendo) é um problema sério, porque a leitura de uma variável não-inicializada leva a um comportamento indefinido. Por exemplo, este código se comporta de maneira diferente no release e no debug builds e ninguém pode garantir que quando você muda a versão do compilador ou as configurações de otimização, seu comportamento não mudará também:
Peter, a respeito das variáveis globais, ainda não encontrei na literatura que as variáveis globais precisam ser predefinidas. Você tem um link com a fonte para melhorar seus conhecimentos sobre este assunto? A Referência MQL5 não contém uma referência explícita à inicialização:
O tipo bool é projetado para armazenar os valores lógicos verdadeiro ou falso, cuja representação numérica é 1 ou 0, respectivamente .
Exemplos:
bool a =verdadeiro;
bool b =falso;
bool c =1;
A representação interna é um número inteiro de 1-byte. Deve-se notar que em expressões booleanas, é aceitável usar outros tipos inteiros ou reais ou expressões destes tipos em vez de bool, e o compilador não irá gerar um erro. Neste caso, zero será interpretado como falso e todos os outros valores como verdadeiros.
Objetos globais, são inicializados com o construtor padrão. Para os tipos primitivos (no nosso caso, todos, exceto string), é 0. Mas para a memória (ler variáveis) alocadas na pilha, elas não são inicializadas. É por isso que as variáveis globais podem não ser inicializadas, lembre-se que neste caso elas serão iguais a zero. Mas a ausência de inicialização (ao mesmo tempo, habitue-se a evitar imediatamente avisos gerados pelo compilador, a menos que você saiba exatamente o que está fazendo) é um problema sério, porque a leitura de uma variável não-inicializada leva a um comportamento indefinido. Por exemplo, este código se comporta de maneira diferente no release e no debug builds e ninguém pode garantir que quando você muda a versão do compilador ou as configurações de otimização, seu comportamento não mudará também: