Logique d'apprentissage - page 3

 

Je voudrais ajouter quelque chose à propos de la section critiquée par gip:

bool showEUR, showUSD, showGBP, showCHF, showJPY, showRAVI;
   if ( StringFind(Symbol(), "EUR", 0) != -1) showEUR = TRUE;
   if ( StringFind(Symbol(), "USD", 0) != -1) showUSD = TRUE;
   if ( StringFind(Symbol(), "GBP", 0) != -1) showGBP = TRUE;
   if ( StringFind(Symbol(), "CHF", 0) != -1) showCHF = TRUE;
   if ( StringFind(Symbol(), "JPY", 0) != -1) showJPY = TRUE;

Fondamentalement, pour optimiser les calculs, il serait plus logique de terminer chaque bloc if() par un break check - sinon, il s'avère que les cinq opérateurs if() seront passés indépendamment des résultats de la vérification.

Comme l'opérateur break ne peut pas être utilisé ici directement, ce bloc peut être facilement intégré dans une boucle. Voici, par exemple, une variante "boucle" :

bool showEUR, showUSD, showGBP, showCHF, showJPY, showRAVI;
   while( true )
   {
      if (  StringFind(Symbol(), "EUR", 0) != -1) ) 
      {  
         showEUR = TRUE;         break; 
      }   
      if (  StringFind(Symbol(), "USD", 0) != -1) )
      {
         showUSD = TRUE;         break;
      }   
      if (  StringFind(Symbol(), "GBP", 0) != -1) )
      {
         showGBP = TRUE;         break;
      }   
      if (  StringFind(Symbol(), "CHF", 0) != -1) )
      {
         showCHF = TRUE;         break;
      }   
      if (  StringFind(Symbol(), "JPY", 0) != -1) )
      {
         showJPY = TRUE;         break;
      }   
   }   
   

Bien sûr, l'initialisation des variables logiques est souhaitable, c'est vrai.

Et ce serait assez bref, si vous écrivez ces noms de chaînes de devises dans un tableau-constant et que vous le parcourez dans une boucle naturelle.

P.S. J'ai maintenant compris mon erreur : je devrais au moins passer au moins deux if()'s :) Néanmoins, il est également possible de l'optimiser en interrompant les contrôles après avoir trouvé deux devises dans une paire.

 
age_nt:

Merci Dimitri pour votre attention... Je respecte vos connaissances.... et votre humour bien sûr.

Impossible de l'apprécier - pas de MSoffffffis installé


Voici http://www.twirpx.com/file/86887/?rand=1440166 un manuel de logique formelle au format djvu. "Kirillov V.I., Starchenko A.A. Logic" est un manuel de logique pour les juristes. Ce livre sera meilleur. J'ai moi-même commencé à le faire une fois.
 
Logiquement, nous ne devrions pas tous être ici.
 
Vous n'avez pas à parler pour tout le monde. Je suis cohérent et logique ici :) Peter et Victor aussi, je suppose. Je ne sais pas pour les autres.
 
denis_orlov:
Logiquement, nous ne devrions pas tous être ici.


==++

Tout le monde n'est pas logiquement capable de commencer depuis le début. Depuis le premier message. Comme les Tchouktches - ce que je vois, ce que je chante...

 
nikost:


==++

Tout le monde ne peut pas logiquement commencer par le début, par le premier message. Comme le Tchouktche - ce que je vois, ce que je chante...

Vous êtes le Chukcha !)

Le topicstarter devrait commencer, mais il l'a annoncé et a disparu, donc le public s'impatiente...

 
drknn:

Voici http://www.twirpx.com/file/86887/?rand=1440166 un manuel de logique formelle au format djvu. "Kirillov V.I., Starchenko A.A. Logic" est un manuel de logique pour les juristes. Ce livre sera meilleur. J'ai moi-même commencé à le faire une fois.

Merci Vladimir !
 

Messieurs, veuillez ne pas vous attaquer les uns aux autres, ou je supprimerai tous les messages inutiles. Et ne soyez pas émotive. Un fil est un fil.

 
Une branche est comme une branche. Seulement déjà modéré :)
 

Demain, je vais essayer de refaire cet indicateur https://www.mql5.com/ru/code/9751.

Le facteur pertinent sera le temps de calcul. Plus c'est rapide, mieux c'est. Mais le rendu doit être maintenu. On peut appeler cela un travail à domicile (pour trouver des variantes permettant de réduire le temps de calcul).

L'indicateur s'est avéré être le dernier dans CodeBase, donc je m'excuse auprès de l'auteur.