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

 
Реter Konow:
Na verdade, a condição acima é sempre verdadeira, como 2 = 2. É por isso que se (o operador da condição) não trabalhar aqui e o compilador gerar um aviso para este código.

Olá Peter! O compilador não gerou nenhum aviso.

Cumprimentos, Vladimir.

 
MrBrooklin:

Devo ter entendido mal alguma coisa, pois existe tal reação.

Escrevi a seguinte condição no script New6.mq5: "Para pedidos pendentes Buy Stop and Sell Stop, aplique a diretiva #define em vez de input. Ele nos permitirá especificar no código do script os tipos necessários de ordens pendentes, mas elas não serão exibidas nos parâmetros de entrada do script quando ele for executado. Vamos definir variáveis definindo os tipos de pedidos pendentesType1 e OrderType2. Vamos nomear estas variáveis "BUY_STOP" e "SELL_STOP".

Por favor, me informe o que fiz de errado na implementação desta condição.

Cumprimentos, Vladimir.

Tudo está em ordem. Não há essencialmente nenhuma condição, assim como não há nenhuma condição na expressão se (2 == 2). Há aqui alguma lógica comum e cotidiana no trabalho. :)
 
MrBrooklin:

Devo ter entendido mal alguma coisa, pois houve tal reação.

Atenciosamente, Vladimir.

O respeitado membro do fórumKoldun Zloy lhe deu uma resposta detalhada. Houve um erro na macro. Por que você começou a usar macros em primeiro lugar? Por que você precisa deles nesta tarefa? As macros são uma ferramenta poderosa com a qual você pode se matar facilmente. Mas a primeira coisa que você faz é começar a usar macros.

 
MrBrooklin:

Olá Peter! O compilador não gerou nenhum aviso.

Cumprimentos, Vladimir.

Supostamente, deveria ter gerado um aviso que o levasse a verificar a condição. (O triângulo amarelo na janela de compilação).
 
Реter Konow:
Tudo está bem. Na verdade, não há condição, pois não há condição na expressão if (2 == 2). Esta é uma lógica comum e cotidiana. :)

Entendo que para os especialistas em programação, meus bloopers parecem desajeitados. Talvez eu tenha feito uma condição errada de escrever código para mim mesmo?

Atenciosamente, Vladimir.

 
Vasiliy Sokolov:

Você, respeitado membro do fórumKoldun Zloy, deu uma resposta detalhada. O erro está na macro. Por que você começou a usar macros? Por que você precisa deles nesta tarefa? As macros são uma ferramenta poderosa com a qual você pode se matar facilmente. Mas a primeira coisa que você faz é começar a usar macros.

Portanto, eu ainda não descobri, e há algumas coisas para trabalhar.

Cumprimentos, Vladimir.

 
Реter Konow:
A idéia é dar um aviso alertando para verificar a condição. (O triângulo amarelo na janela de compilação).

Não deveria, há um valor à direita e uma substituição à esquerda, então isso é correto.

 
MrBrooklin:

Entendo que para os especialistas em programação, meus bloopers parecem desajeitados. Talvez eu tenha feito uma condição errada de escrever código para mim mesmo?

Atenciosamente, Vladimir.

Você começou seus estudos de uma maneira errada. Você entende tudo o que está escrito no código? Todos os operadores, palavras-chave?

Uma pergunta complementar sobre o código:

O que significam estas linhas?

if(!OrderSend(request,result))
      PrintFormat("OrderSend error %d",GetLastError());
 
Реter Konow:
Supostamente, deveria ter gerado um aviso que o levasse a verificar a condição. (O triângulo amarelo na janela de compilação).

Checado mais algumas vezes - o compilador não dá nada.

Cumprimentos, Vladimir.

 
MrBrooklin:

Entendo que para os especialistas em programação, meus bloopers parecem desajeitados. Talvez eu tenha feito uma condição errada de escrever código para mim mesmo?

Atenciosamente, Vladimir.

Esta condição não é de todo necessária ali. Que papel ele desempenha? Você pode explicar?