Auto-aprendizagem da linguagem MQL5 a partir do zero - página 31

 
Valeriy Yastremskiy:

Exatamente lógico, e não cordel, pois há uma I.)))) no meio.

Portanto, não entendi completamente sua pergunta. Perdi o ponto quando você perguntou "... que tipo de variável é esta...". Estou aprendendo. Obrigado pela dica!

Cumprimentos, Vladimir.

 
Igor Makanu:

esta é uma condição completamente diferente da acima, e não se trata da diferença visual

Trata-se da execução simultânea da parte esquerda do "AND" e da parte direita do "AND".

Olá, Igor! Eu já entendi qual foi o erro. Obrigado pela dica!

Cumprimentos, Vladimir.

 
MrBrooklin:

Olá, Igor! Já descobrimos qual foi o erro. Obrigado pela dica!

Cumprimentos, Vladimir.

Ontem Vasily Sokolov deu recomendações sobre como estudar o idioma, e a principal ênfase foi na compreensão das funções

isto é correto e prático - acelera o desenvolvimento, permite dividir a tarefa em blocos, permite a reutilização do código....

Mas, imho, você precisa aprender como processar as condições lógicas primeiro, é apenas uma questão de tempo para encontrar uma função pronta e definida pelo usuário ou usar as funções padrão da MQL

Mas criar corretamente condições lógicas, bem como formalizar o problema, que é um e o mesmo, é mais importante.


Erros lógicos são os piores - tudo funcionará, mas quando e onde dará errado... você não vai encontrá-lo ))))


bem e sobre sabotagem, se sobre condições, escreva a condição de interseção de 2 MA, embora todos os fóruns temáticos sejam preenchidos com esta pergunta e resposta, mas muitas vezes acontece que uma pergunta tão simples para um homem, pode não ser tão fácil de ser formalizada na forma de condições lógicas ;)


UPD: Olá!

 

Mais uma vez, gostaria de agradecer à Valery e ao Igor por me ajudarem a entender como funciona o tipo de dados bool usando um exemplo tão simples.

Cumprimentos, Vladimir.

 
Igor Makanu:
... Bem e sobre o assunto, se sobre condições, escreva a condição de intersecção de 2 MA, embora todos os fóruns temáticos estejam cheios desta pergunta e resposta, mas acontece com freqüência que uma pergunta tão simples para uma pessoa pode não ser tão fácil de ser formalizada na forma de condições lógicas ;)...

Com certeza vou tentar, mas um pouco mais tarde. Estou de quarentena com a gripe e sinto que minha cabeça não digere muito bem as novas informações.

Cumprimentos, Vladimir.

 
Aliaksandr Hryshyn:
Pergunta de teste:
"tempo suficiente" - que tipo de variável pode ser para que não haja avisos de compilação?

Rapazes, não brinquem com isso. Não deixe o Brooklyn de lado. Não se concentre nos tipos.

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
string a="достаточно времени";
string b="достаточно терпения";
//---
   if(a!=b)
     {
      Print("я выучу язык MQL 5");
     }
  }

O código funciona bem. Porque no nível do núcleo, uma função de comparação de cordas é definida que retorna verdadeiro se as cordas forem iguais, e falso se não for assim. Quando escrevemos a != b, a função comparando as duas cordas através do literal != é chamada. A propósito, cabe ao usuário definir uma função de comparação para seus próprios tipos de usuários, e então eles trabalharão de forma semelhante. Portanto, não se trata de tipos, mas de funções novamente.

Mas, apesar de ser executado corretamente, o código é internamente inconsistente. Na realidade, o autor quis expressar que "se eu tiver tempo suficiente" e "paciência suficiente", o resultado será "eu vou aprender MQL5". Na verdade, o resultado é que um valor não deve ser igual a outro para aprender o idioma.

 
Vasiliy Sokolov:

Rapazes, não brinquem com isso. Não tome o Brooklyn de lado. Não se concentre nos tipos.

O código funciona muito bem. Porque no nível do núcleo, uma função de comparação de cordas é definida que retorna verdadeiro se as cordas forem iguais e falsas de outra forma. Quando escrevemos a != b, a função comparando duas cordas através do literal != é chamada. A propósito, cabe ao usuário definir uma função de comparação para seus próprios tipos de usuários, e então eles trabalharão de maneira semelhante. Portanto, não se trata de tipos, mas de funções novamente.

Mas, apesar de ser executado corretamente, o código é internamente inconsistente. Na realidade, o autor quis expressar que "se eu tiver tempo suficiente" e "paciência suficiente", o resultado será "eu vou aprender MQL5". Na verdade, o resultado é que um valor não deve necessariamente ser igual a outro para aprender o idioma.

Olá Vasily! Obrigado por seu apoio e esclarecimento! De qualquer forma, obrigado a todos vocês por compartilharem seus conhecimentos comigo. Eles são muito importantes para mim, especialmente nesta fase!

Atenciosamente, Vladimir.

 
MrBrooklin:

Olá Vasily! Obrigado por seu apoio e pelo esclarecimento! De qualquer forma, obrigado a todos que compartilharam seus conhecimentos comigo. Eles são muito importantes para mim, especialmente nesta fase!

Sinta-se melhor agora. Continuaremos depois.

 
Vasiliy Sokolov:

Fique bem. Continuaremos depois.

Obrigado!

Atenciosamente, Vladimir.

 
Vasiliy Sokolov:
"... Entretanto, o código, embora executado corretamente, é internamente inconsistente. Na realidade, o autor quis expressar que "se eu tiver tempo suficiente" e "paciência suficiente" o resultado será "eu aprenderei MQL5". Na verdade, o resultado é que um valor não deve ser igual a outro para aprender o idioma".

Primeiro houve esta versão do roteiro:

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
string a="достаточно времени";
string b="достаточно терпения";
//---
   if(a!=b && b!=a)
     {
      Print("я выучу язык MQL 5");
     }
  }
//+------------------------------------------------------------------+

no qual usei um "E" lógico. Depois olhei que na condição seria suficiente para imprimir a expressão "I'll learn MQL5" a!=b. Em resumo, eu não cheguei ao cerne da questão, o que me foi sugerido por Valery e Igor.

Cumprimentos, Vladimir.