Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1796

 

Mélanger les conditions booléennes et autres en une seule pile... OK. Si vous ne voulez pas écrire un bon code, ne l'écrivez pas. Je n'essaierai pas de vous persuader et d'argumenter avec vous.

MakarFX #:

Et si nous parlons de l'universalité de la fonction, eh bien...

Eh bien, c'est plus proche du bon sens que votre fonction précédente.

Il est vrai que la lisibilité laisse à désirer... Mais qui y pense jamais... ? :)

 
Nerd Trader #:
Celle qui, par convention, est vraie

non, "nom_ligne" se verra attribuer le nom de famille.

 
Mihail Matkovskij #:

Mélanger les conditions booléennes et autres en une seule pile... OK. Si vous ne voulez pas écrire un bon code, ne l'écrivez pas. Je ne vais pas vous persuader ou argumenter avec vous.

Ok, ok, je vais utiliser ton exemple.

 
Il n'est pas nécessaire de créer et de supprimer des lignes en permanence. Il y a des drapeaux de visibilité du volume sur les délais. Besoin de cacher et d'afficher.
 
Mihail Matkovskij #:

Mélanger les conditions booléennes et autres en une seule pile... OK. Si vous ne voulez pas écrire un bon code, ne l'écrivez pas. Je ne vais pas vous persuader et discuter avec vous.

Eh bien, c'est plus proche du bon sens que votre fonction précédente.

Il est vrai que la lisibilité laisse à désirer... Mais qui pense jamais à ça... ? :)

Plus précisément, qu'est-ce qui ne va pas ?

Et vous n'avez toujours pas répondu à ce que votre fonction retourne à "-1"...

 
MakarFX #:

non, "nom_ligne" se verra attribuer le nom de famille.

Ouais, pourquoi il y aurait un problème avec ça ? L'objet qui passe la condition sera de toute façon supprimé.
 
MakarFX #:

Plus précisément, qu'est-ce qui ne va pas ?

Et vous n'avez toujours pas répondu à la question de savoir ce que votre fonction va retourner à "-1".

il retournera false - j'ai déjà vérifié.
 
Nerd Trader #:
il retournera faux - j'ai déjà vérifié
Il devrait retourner vrai.
 
MakarFX #:
Il faut que ce soit vrai.
Avec le booléen NOT true :)
 
MakarFX #:

Plus précisément, qu'est-ce qui ne va pas ?

bool FindObject(string name, int win)
{
   if(ObjectFind(0, name) == win) 
     return(true);
   return(false);
}
Une version plus compacte :
bool FindObject(string name,int win) { return (ObjectFind(0,name) == win); } 

Mais je pensais que vous aviez dit que votre fonction prétendait être universelle... ? Alors vous avez oublié un détail très important :

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

L'option la plus universelle et la plus fiable.

Et vous n'avez jamais répondu à ce que votre fonction va retourner "-1".

Êtes-vous trop paresseux pour écrire un script simple pour vérifier ? Ok. Je l'ai fait pour toi :

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

Maintenant, regardez le résultat :

-10 est vrai.

-9 est vrai.

-8 est vrai.

-7 - vrai

-6 - vrai

-5 - vrai

-4 - vrai

-3 - vrai

-2 - vrai

-1 - vrai

0 - faux

1 - vrai

2 - vrai

3 - vrai

4 - vrai

5 - vrai

6 - vrai

7 - vrai

8 - vrai

9 - vrai

10 - vrai



Tous les nombres négatifs sont vrais. 0 est faux. C'est comme ça que ça marche... :)

Ainsi, votre fonction retournera vrai.

Le mien retournera faux

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

Comme il se doit avec des valeurs négatives.