Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1796

 

Misturando booleano e outras condições em uma pilha... OK. Se você não quer escrever um bom código, não o escreva. Não vou tentar persuadi-lo e discutir com você.

MakarFX #:

E se estamos falando da universalidade da função, bem...

Bem, é mais próximo do senso comum do que sua função anterior.

É verdade, a legibilidade deixa muito a desejar... Mas quem já pensou sobre isso...? :)

 
Nerd Trader #:
Aquela que por convenção é verdadeira

não, "nome_da_linha" terá o sobrenome atribuído a ela.

 
Mihail Matkovskij #:

Misturando booleano e outras condições em uma pilha... OK. Se você não quer escrever um bom código, não o escreva. Não vou persuadir ou discutir com você.

Está bem, está bem, vou usar seu exemplo.

 
Não há necessidade de criar e apagar linhas o tempo todo. Há bandeiras de visibilidade de volume nos períodos de tempo. Necessidade de esconder e exibir.
 
Mihail Matkovskij #:

Misturando booleano e outras condições em uma pilha... OK. Se você não quer escrever um bom código, não o escreva. Não vou persuadi-lo e discutir com você.

Bem, é mais próximo do senso comum do que sua função anterior.

É verdade, a legibilidade deixa muito a desejar... Mas quem já pensou nisso...? :)

Especificamente, o que está errado?

E você ainda não respondeu o que sua função retorna em "-1"...

 
MakarFX #:

não, "nome_da_linha" terá o sobrenome atribuído a ela.

Sim, por que haveria um problema com isso? O objeto que passar a condição será apagado de qualquer forma.
 
MakarFX #:

Especificamente, o que está errado?

E você ainda não respondeu qual será a sua função de retorno em "-1".

retornará falso - eu já verifiquei.
 
Nerd Trader #:
retornará falso - eu já verifiquei
Deve voltar a ser verdade.
 
MakarFX #:
Tem que ser verdade.
Com booleano NÃO é verdade :)
 
MakarFX #:

Especificamente, o que está errado?

bool FindObject(string name, int win)
{
   if(ObjectFind(0, name) == win) 
     return(true);
   return(false);
}
Uma versão mais compacta:
bool FindObject(string name,int win) { return (ObjectFind(0,name) == win); } 

Mas eu pensei que você disse que sua função dizia ser universal...? Então você esqueceu um detalhe muito importante:

bool FindObject(const long chart_id, const string name, const int win) { return (ObjectFind(chart_id, name) == win); } 

A opção mais universal e confiável.

E você nunca respondeu qual será a sua função de retorno "-1".

Você é preguiçoso demais para escrever um simples roteiro para verificar? Certo. Eu o fiz por você:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() {
  for (int i = -10; i <= 10; i++) 
    if (i)
      printf("%d - true", i);
    else
      printf("%d - false", i);
}
//+------------------------------------------------------------------+

E agora olhe para o resultado:

-10 é verdade.

-9 é verdade.

-8 é verdade.

-7 - verdadeiro

-6 - verdadeiro

-5 - verdadeiro

-4 - verdadeiro

-3 - verdadeiro

-2 - verdadeiro

-1 - verdadeiro

0 - falso

1 - verdadeiro

2 - verdadeiro

3 - verdadeiro

4 - verdadeiro

5 - verdadeiro

6 - verdadeiro

7 - verdadeiro

8 - verdadeiro

9 - verdadeiro

10 - verdadeiro



Todos os números negativos são verdadeiros. 0 é falso. É assim que funciona. :)

Assim, sua função voltará a ser verdadeira.

O meu retornará falso

bool objectExist(const long _chartID, const string _name) { return(ObjectFind(_chartID, _name) >= 0); } // чётко определим условие существования объекта!

Como deve ser com valores negativos.